Changelog
Dated, newest first. Additions are non-breaking. Removals and changes of meaning are announced here with a deprecation period before they take effect.
2026-09-09 — API v1 documented
Section titled “2026-09-09 — API v1 documented”The first public documentation of the integration API. The endpoints below have existed and been in use by the Zapier app, the WordPress plugin and provider webhooks; this release gives them a documented contract, a stable error format, and clean paths.
Documented endpoints
Section titled “Documented endpoints”Any integration key
| Method | Path | Purpose |
|---|---|---|
GET |
/api/integrations/ping |
Connection test — key, host and workspace line up |
POST |
/api/integrations/leads |
Create a lead (flat fields) |
POST |
/api/integrations/self-checkin |
Create a self check-in (flat fields) |
POST |
/api/integrations/submit |
Create either, via the {form_id, destination, data} envelope |
POST |
/api/integrations/ingest/{adapter} |
Provider receivers: canonical, form, typeform, jotform, tally-so |
POST |
/api/integrations/ingest/indiamart/{key} |
IndiaMART Push API receiver, key in the URL |
GET / POST |
/api/integrations/ingest/justdial/{key} |
Justdial receiver, key in the URL |
GET |
/api/integrations/custom-fields |
The workspace’s custom field definitions, for rendering forms |
Zapier-typed keys only
| Method | Path | Purpose |
|---|---|---|
GET |
/api/zapier/ping |
Connection test used by the Zapier app |
GET |
/api/zapier/triggers/jobs |
Most recent repairs |
GET |
/api/zapier/triggers/customers |
Most recent customers |
GET |
/api/zapier/triggers/leads |
Most recent leads |
GET |
/api/zapier/triggers/payments |
Most recent payments |
GET |
/api/zapier/triggers/job-status-changes |
Most recent repair status changes |
GET |
/api/zapier/triggers/outsourced-jobs |
Most recent outsourced repairs |
GET |
/api/zapier/search/customers |
Search customers by name, email or mobile |
Contract established in this release
Section titled “Contract established in this release”- One response shape for every intake endpoint:
{status, request_id, data}withstatusofcompleted(201),duplicate(200) orreceived(202). See Submissions & Troubleshooting. - One error shape with a stable
error.code, mirrored top-levelmessage, andrequest_id. See Errors. X-Request-Idon every response.Idempotency-Keydocumented on all intake endpoints, with automatic derivation on provider receivers. See Idempotency.- Self check-in responses now return a defined set of fields (
object: "self_checkin") rather than the whole stored record. - The connection test returns the workspace’s display name and the key’s provider type.
Legacy paths
Section titled “Legacy paths”The older path form with the workspace repeated in the path — /api/{workspace}/integrations/… and /api/{workspace}/zapier/… — continues to work for existing integrations (including the current WordPress plugin and Zapier app), but is not documented and should not be used for new work. The path segment was never read; the workspace is identified from the host. New integrations should use the paths above.
Responses on the legacy paths keep their previous shapes so that nothing already deployed changes behaviour.
Not in this release
Section titled “Not in this release”Outbound webhooks, cursor pagination and date filters on the read endpoints, and plan-based rate limit tiers. The limit is 60 requests per minute per key on every plan.

