Skip to content

Changelog

Dated, newest first. Additions are non-breaking. Removals and changes of meaning are announced here with a deprecation period before they take effect.

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.

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
  • One response shape for every intake endpoint: {status, request_id, data} with status of completed (201), duplicate (200) or received (202). See Submissions & Troubleshooting.
  • One error shape with a stable error.code, mirrored top-level message, and request_id. See Errors.
  • X-Request-Id on every response.
  • Idempotency-Key documented 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.

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.

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.