Changelog
All notable changes to the Salesly Developer API.
v1.1.0 — 2026-03-05
Breaking Changes
RESTful URL redesign — All endpoints have moved to RESTful patterns:
| Before | After |
|---|---|
POST /enterprise/create | POST /contacts |
POST /enterprise/list | GET /contacts |
GET /enterprise/read | GET /contacts/{identifier} |
PUT /enterprise/edit | PUT /contacts/{identifier} |
DELETE /enterprise/delete | DELETE /contacts/{identifier} |
POST /enterprise/multiple-create | POST /contacts/batch |
The same pattern applies to opportunities, orders, products, and product categories. See each resource's documentation for the updated URLs.
Response envelope — All responses now wrap data in a data key:
// Before
{ "id": 1, "name": "ACME" }
// After
{ "data": { "id": 1, "name": "ACME" } }Standardized error format — Errors now follow a consistent envelope:
{ "error": { "type": "not_found", "message": "Contact not found." } }Pagination — List endpoints changed from POST to GET with query parameters. The pagination format is now { "data": [...], "pagination": {...} }.
New Features
- Idempotency — Send
Idempotency-Keyheader on write requests to safely retry operations - Request tracing — All responses include
X-Request-IDheader - Per-key rate limiting — 120 req/min (read), 30 req/min (write)
- Webhook signatures — Webhook payloads are signed with HMAC-SHA256
- Audit logging — All API requests are logged for audit purposes
- OpenAPI spec — Machine-readable API specification at
/openapi/v1.yaml
Improvements
- ISO 8601 date format in all responses
- Consistent
201 Createdstatus for resource creation has_morefield in pagination for easier iteration- Better validation error messages with field-level details
v1.0.0 — 2025-03-01
Initial release of the Salesly Developer API.
- Contact CRUD + batch create
- Opportunity CRUD + batch create
- Order CRUD + batch create
- Product CRUD + batch create
- Product Category CRUD
- API key authentication
Deprecation Policy
- Deprecated features will be announced at least 90 days before removal
- Deprecated endpoints will include an
X-Deprecatedheader in responses - Breaking changes will only be introduced in new major versions