Quotes (CPQ) API
25 endpoints. All requests need an Authorization header — see Authentication. API keys additionally need the matching scope.
| Method | Path | Description |
|---|---|---|
GET |
/api/tenant/cpq/discount-rules |
List Discount Rules Query: is_active. |
POST |
/api/tenant/cpq/discount-rules |
Create Discount Rule Accepts a JSON body. |
GET |
/api/tenant/cpq/discount-rules/{rule_id} |
Get Discount Rule |
PATCH |
/api/tenant/cpq/discount-rules/{rule_id} |
Update Discount Rule Accepts a JSON body. |
DELETE |
/api/tenant/cpq/discount-rules/{rule_id} |
Delete Discount Rule |
GET |
/api/tenant/cpq/products |
List Products Query: search, category, is_active, limit, offset. |
POST |
/api/tenant/cpq/products |
Create Product Accepts a JSON body. |
GET |
/api/tenant/cpq/products/{product_id} |
Get Product |
PATCH |
/api/tenant/cpq/products/{product_id} |
Update Product Accepts a JSON body. |
DELETE |
/api/tenant/cpq/products/{product_id} |
Delete Product |
GET |
/api/tenant/cpq/quotes |
List Quotes Query: status, opportunity_id, limit, offset. |
POST |
/api/tenant/cpq/quotes |
Create Quote Accepts a JSON body. |
GET |
/api/tenant/cpq/quotes/{quote_id} |
Get Quote |
PATCH |
/api/tenant/cpq/quotes/{quote_id} |
Update Quote Accepts a JSON body. |
DELETE |
/api/tenant/cpq/quotes/{quote_id} |
Delete Quote |
POST |
/api/tenant/cpq/quotes/{quote_id}/approve |
Approve Quote |
GET |
/api/tenant/cpq/quotes/{quote_id}/billing-schedule |
Quote Billing Schedule |
POST |
/api/tenant/cpq/quotes/{quote_id}/calculate |
Calculate Quote |
GET |
/api/tenant/cpq/quotes/{quote_id}/certificate |
Download Certificate |
POST |
/api/tenant/cpq/quotes/{quote_id}/check-approvals |
Check Approvals |
POST |
/api/tenant/cpq/quotes/{quote_id}/clone |
Clone Quote |
GET |
/api/tenant/cpq/quotes/{quote_id}/pdf |
Generate Quote Pdf |
POST |
/api/tenant/cpq/quotes/{quote_id}/send |
Send Quote |
POST |
/api/tenant/cpq/quotes/{quote_id}/set-primary |
Set Primary Quote |
POST |
/api/tenant/cpq/quotes/{quote_id}/submit-approval |
Submit For Approval |
Try it
The full request/response schema for every endpoint is in the OpenAPI spec served by your own workspace.