Signal REST API

Read and write your Signal CRM data from your own code, integrations and automation tools.

The Signal REST API gives your code the same records your team works with in Signal: Accounts, Contacts, Deals, prospect contacts, Prospect Companies, activities, calls, notes, pipelines, bookings, Decks, Campaigns and, for workspaces that use it, the Property module.

Use it to:

  • Push new prospect contacts into Signal from your website, forms or other tools.
  • Keep Accounts, Contacts and Deals in step with your billing, ERP or support systems.
  • Log calls and activities from your phone system or other apps.
  • Pull pipeline and portfolio figures into your own reports.
  • Connect Zapier, Make, n8n or your own scripts.

Pair it with webhooks when you want Signal to tell your systems that something changed.

Base URL#

All endpoints live under one versioned base URL:

https://crm.empiraa.app/api/v1

Every request is made over HTTPS, sends and receives JSON, and is authenticated with an API key. A request always acts on the workspace that owns the key.

Quickstart (5 minutes)#

1. Create an API key#

  1. In Signal, open Autopilot in the sidebar.
  2. Select the Webhooks & API tab, then API Keys.
  3. Select New Key, give the key a name (for example "Website integration") and tick the scopes it needs. For this quickstart, tick Read Accounts and Write Accounts.
  4. Select Create Key and copy the key. It starts with sk_live_. Signal shows the full key only once.

You need permission to manage integrations to create keys. Workspace admins have it by default. See Authentication for details.

2. Check the key with GET /me#

GET /me returns the workspace the key belongs to. It needs no scope, so it's a good first call.

curl https://crm.empiraa.app/api/v1/me \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:

JSON
{
  "data": {
    "id": "cm1a2b3c40000xy12z3a4b5c6",
    "name": "Northwind Sales",
    "slug": "northwind-sales",
    "email": "sales@northwind.example",
    "phone": "+1 415 555 0100",
    "website": "https://northwind.example",
    "timezone": "America/Los_Angeles",
    "currency": "USD",
    "logo_url": null,
    "created_at": "2026-03-02T18:21:07.000Z"
  },
  "meta": { "cursor": null },
  "error": null
}

3. Create an Account#

curl -X POST https://crm.empiraa.app/api/v1/accounts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Contoso Pharmaceuticals",
    "website": "https://contoso.example",
    "industry": "Healthcare",
    "employee_count": 250
  }'

Response (201 Created):

JSON
{
  "data": {
    "id": "3f6c2a1e-8b4d-4c2a-9f1e-2b7d5a9c4e10",
    "name": "Contoso Pharmaceuticals",
    "legal_name": null,
    "website": "https://contoso.example",
    "phone": null,
    "email": null,
    "industry": "Healthcare",
    "employee_count": 250,
    "health_score": 50,
    "status_id": null,
    "owner_id": null,
    "territory": null,
    "tier": null,
    "created_at": "2026-11-12T09:30:00.000Z",
    "updated_at": "2026-11-12T09:30:00.000Z"
  },
  "meta": { "cursor": null },
  "error": null
}

The Account now appears on the Accounts page in Signal.

4. Try it in Signal#

The Webhooks & API tab also has an API Playground for sending requests from your browser with one of your keys, and a Dev Reference and Examples for quick lookups.

  • Authentication: keys, header forms, scopes, rotation and the 401/403 responses.
  • Conventions: response shapes, IDs, dates, money, pagination, errors, idempotency and CORS.
  • Webhooks: get notified when records change.

API reference#

Page Covers
Accounts Accounts and Account spend records
Contacts Contacts at your Accounts
Deals Deals and their stages
Pipelines Deal pipelines and their stages
Prospect contacts People you're prospecting (/prospects)
Prospect Companies Companies you're prospecting
Prospect sources Where prospect contacts came from
Activities Calls, meetings, emails, Actions and other activities
Tasks The /tasks to-do list
Calls and call logs Logged phone calls
Notes Notes on prospect contacts
Bookings Meetings booked through the Scheduler
Decks Signal Decks
Users and me Your workspace and its people
Portfolio Pipeline and revenue summary figures
Marketing Campaigns Campaigns (Marketing plans)
Property Developments, plots, reservations and call-offs

An OpenAPI 3.1 description of the whole API is available for API explorers and code generators.