Run a Call has a public REST API at /api/v1. Use it to read and write customers, jobs, estimates, invoices, pricebook items, properties, memberships, voice calls, equipment, and communications.
Auth
| Detail | Value |
|---|---|
| Mechanism | Bearer tokens — generate API keys in Settings → Integrations → API |
| Header | Authorization: Bearer <key> |
| Who can generate | Owner only |
| Per-key controls | Scopes, rate limits, IP allowlists |
See Generating API keys.
Endpoints
The API exposes CRUD on the main entities. Examples:
| Method | Path | Description |
|---|---|---|
GET | /api/v1/customers | List customers |
GET | /api/v1/customers/{id} | Fetch one |
POST | /api/v1/customers | Create |
PATCH | /api/v1/customers/{id} | Update |
Similarly for jobs, estimates, invoices, pricebook-items, properties, memberships, voice-calls, equipment, communications.
Developer docs
Full API reference, request/response shapes, and a machine-readable OpenAPI spec live at docs.runacall.com. Use the spec with Postman, Insomnia, or to generate client libraries in your favorite language.
Versioning
| Rule | Detail |
|---|---|
| Current version | v1 |
| Future versions | Ship at /api/v2/, etc. |
| Additive changes | New optional fields, new endpoints — won't break clients |
| Breaking changes | Ship under a new version |
Rate limits
Per-key rate limits are configurable per key. Default rates are conservative; if you need higher throughput, set the per-minute limit when generating the key.
Webhooks
To get notified of events (instead of polling), subscribe to webhooks — see Subscribing to webhooks.
Common use cases
| Use case | What you'd do |
|---|---|
| CRM sync | Push leads from another system into Run a Call as customers |
| Reporting | Pull job data into your data warehouse |
| Zapier-style flows | See Connecting Run a Call to Zapier |
| Accounting tools | Pull invoice data into your accounting system (separate from the QBO integration) |