Requests and responses
API v3 uses resource-oriented URLs, standard HTTP methods, and JSON request and response bodies.
Request conventions
| Convention | Value |
|---|---|
| Authentication | Authorization: Bearer YOUR_API_KEY |
| Request content type | Content-Type: application/json |
| Response content type | application/json |
| API prefix | /api/v3 |
Resource identifiers are UUID strings and appear in the URL when operating on one record.
Resource objects
Successful retrieve, create, and update operations return the resource object directly. The object field identifies its type:
{
"id": "709d2a43-12a9-4d85-a9d9-cb16e66cef53",
"object": "customer",
"customer_number": 527,
"name": "Example Customer"
}API v3 does not wrap successful resources in generic status, success, or data properties.
List objects
List endpoints return an object value of list. Records are contained in data, while pagination metadata is contained in pagination:
{
"object": "list",
"url": "/api/v3/customers",
"has_more": true,
"data": [],
"pagination": {
"page": 1,
"per_page": 20,
"total_pages": 3,
"total_records": 58
}
}See pagination for parameter details.
HTTP status codes
| Status | Meaning |
|---|---|
200 OK | A retrieve, list, update, or delete request succeeded. |
201 Created | A resource was created. |
400 Bad Request | The request could not be processed. |
401 Unauthorized | A valid API credential was not provided. |
403 Forbidden | The user permissions or key scopes deny the action. |
404 Not Found | The requested resource is unavailable. |
409 Conflict | The request conflicts with an idempotency operation. |
429 Too Many Requests | The API key has exhausted its current request allowance. |
422 Unprocessable Content | One or more fields failed validation. |
500 Internal Server Error | An unexpected API error occurred. |
Timestamps
Response timestamps use ISO 8601 strings, including a timezone offset:
2026-07-17T22:42:19+00:00Request IDs
Every API response includes a Request-Id header:
Request-Id: req_1d352b4e6502b1edda090f4b210a8cfcRecord this value with integration errors. It identifies the request in SalesBinder's API logs without requiring you to share an API key or sensitive request data.
See request IDs for recommended integration logging practices.
Rate-limit headers
Authenticated responses include the API key's current request allowance:
RateLimit-Limit: 120
RateLimit-Remaining: 119
RateLimit-Reset: 42RateLimit-Reset is the number of seconds until a new allowance window begins. When the allowance is exhausted, the API returns 429 Too Many Requests and includes Retry-After with the same number of seconds.
See rate limits for retry guidance.