REST API v1

API Documentation Propulxia

Integrate Propulxia's power directly into your CRM, internal tools, or apps. Create proposals, manage prospects, and receive real-time updates via our webhooks.

Introduction

The Propulxia API is REST-based, using JSON responses and secured via API key.

  • Base URL : https://app.propulxia.com/api/v1
  • Format : JSON (Content-Type: application/json)
  • Authentication : Clé API
  • Availability : Forfait Entreprise (pro)

1. Authentication

All requests to the API require an API key passed in the Authorization HTTP request header:

Authorization: Bearer plx_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Get an API key

Keys are generated from your dashboard in Settings → API Access. You can name multiple keys for different environments or revoke them at any time. The key is only displayed once during creation: store it securely.

2. Conventions

  • Identifiers (id) are opaque string structures.
  • Amounts are expressed in the main currency unit (e.g. 1500.00 for $1500.00).
  • Dates (createdAt, etc.) are Unix timestamps in milliseconds.
  • Any error returns a body format {"error": "message"} with the corresponding HTTP code.

3. Proposals

GET/proposals

Lists the proposals of your account.

curl https://app.propulxia.com/api/v1/proposals?status=sent&limit=10 \
  -H "Authorization: Bearer plx_live_..."
{
  "proposals": [
    {
      "id": "abc123",
      "title": "Refonte site web — Acme inc.",
      "status": "sent",
      "clientId": "cl_789",
      "companyId": "co_456",
      "totalAmount": 4500,
      "currency": "CAD",
      "shareUrl": "https://app.propulxia.com/share/a1b2c3...",
      "createdAt": 1737331200000
    }
  ]
}
POST/proposals

Creates a new proposal.

curl -X POST https://app.propulxia.com/api/v1/proposals \
  -H "Authorization: Bearer plx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Refonte site web",
    "clientId": "cl_789",
    "companyId": "co_456",
    "totalAmount": 4500,
    "currency": "CAD"
  }'
POST/proposals/:id/send

Sends the proposal by email and updates its status to sent.

curl -X POST https://app.propulxia.com/api/v1/proposals/abc123/send \
  -H "Authorization: Bearer plx_live_..." \
  -H "Content-Type: application/json" \
  -d '{"to": "client@example.com"}'

4. Clients

Manage your sales clients (contacts within your target companies) via these endpoints:

MethodRouteDescription
GET/clientsList all clients.
GET/clients/:idDetails of a client.
POST/clientsCreation of a prospect (firstName, lastName, email).
PATCH/clients/:idPartial update of the client information.
DELETE/clients/:idDeletion of a client.

5. Tasks

Manage follow-up and reminder tasks associated with your proposals and prospects:

MethodRouteDescription
GET/tasksList all tasks.
GET/tasks/:idGet task details.
POST/tasksCreate a task (title, dueDate required).
PATCH/tasks/:idModify an existing task.
DELETE/tasks/:idDelete a task.

Exemple de création de tâche :

curl -X POST https://app.propulxia.com/api/v1/tasks \
  -H "Authorization: Bearer plx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Relancer le client Acme",
    "dueDate": 1789958156314,
    "proposalId": "abc123",
    "status": "todo"
  }'

6. Templates

Retrieve in read-only mode the structured proposal templates built in your account:

MethodRouteDescription
GET/templatesList all templates.
GET/templates/:idDetails and sections of a template.

7. Products Catalog

Synchronize your item library or pricing grids with your invoicing tools:

MethodRouteDescription
GET/productsList all products.
GET/products/:idProduct details.
POST/productsCreate a product (name, price required).
PATCH/products/:idUpdate a product.
DELETE/products/:idDelete a product.

8. Employees (Team)

Manage team member accounts for your sales organization:

MethodRouteDescription
GET/employeesList the team.
GET/employees/:idEmployee details.
POST/employeesAdd a member (firstName, lastName, email required).
PATCH/employees/:idUpdate a member.
DELETE/employees/:idRemove a member.

9. Reporting

GET/reports/summary

Retrieves KPIs about your sales performance.

{
  "totalProposals": 42,
  "byStatus": { "backlog": 5, "in_progress": 3, "sent": 10, "won": 20, "lost": 4 },
  "totalValue": 187500,
  "wonValue": 92000,
  "winRate": 0.8333
}

10. Webhooks

Subscribe a HTTPS URL to receive real-time notifications.

Available events:

  • proposal.created: Proposal created via the API.
  • proposal.sent: Proposal sent.
  • proposal.paid: Deposit or balance payment confirmed.
  • proposal.signed: Proposal signed electronically by the client.

Subscription:

curl -X POST https://app.propulxia.com/api/v1/webhooks \
  -H "Authorization: Bearer plx_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://votre-service.com/webhooks/propulxia",
    "events": ["proposal.sent", "proposal.paid"]
  }'

11. Integrations (Zapier)

Connect Propulxia to 6,000+ apps through Zapier, no code required. The official integration is built on this API and its webhooks.

Triggers (when something happens in Propulxia):

  • proposal.created
  • proposal.sent
  • proposal.signed
  • proposal.paid
  • new_client

Actions (Zapier acts inside Propulxia):

  • create_proposal
  • create_client
  • send_proposal

Search:

  • find_client

Connecting

In Zapier, search for “Propulxia”, then paste an API key generated under Settings → API Access. Each Zap acts on your account only.

12. Error Codes

CodeMeaning / Cause
400Bad request or missing mandatory fields.
401Missing authentication or invalid API key.
403Your plan does not include API access or insufficient rights on the resource.
404Resource not found.

13. Limits

There are no strict rate limits in this version, subject to reasonable usage. The default pagination limits lists to 25 results (max 100).