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
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
}
]
}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"
}'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:
| Method | Route | Description |
|---|---|---|
| GET | /clients | List all clients. |
| GET | /clients/:id | Details of a client. |
| POST | /clients | Creation of a prospect (firstName, lastName, email). |
| PATCH | /clients/:id | Partial update of the client information. |
| DELETE | /clients/:id | Deletion of a client. |
5. Tasks
Manage follow-up and reminder tasks associated with your proposals and prospects:
| Method | Route | Description |
|---|---|---|
| GET | /tasks | List all tasks. |
| GET | /tasks/:id | Get task details. |
| POST | /tasks | Create a task (title, dueDate required). |
| PATCH | /tasks/:id | Modify an existing task. |
| DELETE | /tasks/:id | Delete 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:
| Method | Route | Description |
|---|---|---|
| GET | /templates | List all templates. |
| GET | /templates/:id | Details and sections of a template. |
7. Products Catalog
Synchronize your item library or pricing grids with your invoicing tools:
| Method | Route | Description |
|---|---|---|
| GET | /products | List all products. |
| GET | /products/:id | Product details. |
| POST | /products | Create a product (name, price required). |
| PATCH | /products/:id | Update a product. |
| DELETE | /products/:id | Delete a product. |
8. Employees (Team)
Manage team member accounts for your sales organization:
| Method | Route | Description |
|---|---|---|
| GET | /employees | List the team. |
| GET | /employees/:id | Employee details. |
| POST | /employees | Add a member (firstName, lastName, email required). |
| PATCH | /employees/:id | Update a member. |
| DELETE | /employees/:id | Remove a member. |
9. Reporting
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.createdproposal.sentproposal.signedproposal.paidnew_client
Actions (Zapier acts inside Propulxia):
create_proposalcreate_clientsend_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
| Code | Meaning / Cause |
|---|---|
| 400 | Bad request or missing mandatory fields. |
| 401 | Missing authentication or invalid API key. |
| 403 | Your plan does not include API access or insufficient rights on the resource. |
| 404 | Resource 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).