← Help Center
🔌Email & Integrations

Using the Public API

Connecting your own tools and scripts to Allsorts CRM, and building a Zapier-style integration.

What this is

A REST API for reading and creating your organization's data from your own tools, scripts, or an integration platform like Zapier or Make. Find it under Settings → API Keys.

Authenticating

Every request needs an API key, sent as a bearer token:

``` Authorization: Bearer ask_yourkeyhere ```

Create a key under Settings → API Keys. The plaintext key is shown once, at creation — store it somewhere safe. Only a hash is kept afterwards, so it can't be recovered if lost; create a new one instead.

What's available

ResourceListCreate
Contacts`GET /api/v1/contacts``POST /api/v1/contacts`
Companies`GET /api/v1/companies``POST /api/v1/companies`
Deals`GET /api/v1/deals``POST /api/v1/deals`
Leads`GET /api/v1/leads``POST /api/v1/leads`
Tasks`GET /api/v1/tasks``POST /api/v1/tasks`
Invoices & Quotes`GET /api/v1/documents`read-only

Invoices and quotes are deliberately read-only — creating one involves branding, numbering and tax rules the app itself owns, and a second way to build one would be two implementations of the same money.

A lead created through the API is treated exactly like one from your capture form — the same scoring, the same automatic assignment, the same automation rules. Where it came from doesn't change how it's handled.

Paging through results

Every list endpoint returns up to 200 records at once (50 by default) and a cursor for the next page:

```json { "contacts": [...], "pagination": { "limit": 50, "hasMore": true, "nextCursor": "abc123" } } ```

Pass that cursor back as `?cursor=abc123` to get the next page.

Building a Zapier-style integration

Most integration platforms poll on a schedule rather than reacting instantly, so the pattern that works well is:

  1. Poll a list endpoint every few minutes with `?updatedSince=<last poll time, ISO format>` — this returns only what changed since you last checked, not the whole list.
  2. Feed new or changed records into whatever the other tool does next.
  3. Remember the time of this poll for next time.

This is far lighter than re-pulling everything on every run, and it's what keeps a polling integration from timing out as your data grows.

Getting notified instead of polling

For anything that shouldn't wait for the next poll, use a webhook instead — it pushes to your endpoint the moment something happens, rather than you asking.

Rate and record limits

Creating contacts, deals and leads through the API counts against your plan's limits, exactly like creating them by hand — you'll get a 402 response with `upgradeRequired: true` if you're at the ceiling.

Using the Public API | Help | Allsorts CRM