


REST API and automation tools
Use the Signal and GPS REST APIs and webhooks from your own code, Zapier, Make or n8n.
Use the REST APIs when you write the code, or when an automation tool such as Zapier, Make or n8n makes the calls for you. Pair them with webhooks when you want Signal or GPS to tell your systems that something changed.
The two APIs at a glance#
| Signal | GPS | |
|---|---|---|
| Base URL | https://crm.empiraa.app/api/v1 |
https://plan.empiraa.app/api/v1 |
| Sign-in | Authorization: Bearer with a workspace API key |
X-API-Key and X-API-Secret headers |
| Where to make a key | Autopilot › Webhooks & API › API Keys | Settings › Developer › Keys & Webhooks |
| Start here | Signal quickstart | GPS quickstart |
| Events | Signal webhooks | GPS webhooks |
Example: create an Account in Signal#
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
}'
const res = await fetch("https://crm.empiraa.app/api/v1/accounts", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Contoso Pharmaceuticals",
website: "https://contoso.example",
industry: "Healthcare",
employee_count: 250,
}),
});
Example: record a check-in in GPS#
Send an Objective's latest value. GPS works out the new progress from the Objective's target.
curl -X POST "https://plan.empiraa.app/api/v1/objectives/c7e9a1b3-4d5f-4a6b-9c8d-1e2f3a4b5c6d/progress" \
-H "X-API-Key: $GPS_API_KEY_ID" \
-H "X-API-Secret: $GPS_API_SECRET" \
-H "Content-Type: application/json" \
-d '{ "value": 60000, "notes": "Two new annual contracts signed" }'
const res = await fetch("https://plan.empiraa.app/api/v1/objectives/c7e9a1b3-4d5f-4a6b-9c8d-1e2f3a4b5c6d/progress", {
method: "POST",
headers: {
"X-API-Key": process.env.GPS_API_KEY_ID,
"X-API-Secret": process.env.GPS_API_SECRET,
"Content-Type": "application/json",
},
body: JSON.stringify({ value: 60000, notes: "Two new annual contracts signed" }),
});
Zapier, Make and n8n#
Each of these tools has a step that makes an HTTP request. Point it at a Signal or GPS endpoint and add the sign-in headers from the table above.
- Pick a trigger in your tool, such as a new form entry or a new row in a spreadsheet.
- Add an HTTP request step: Webhooks by Zapier, Make's HTTP module, or n8n's HTTP Request node.
- Set the method and URL from the reference page for the record you want, and add the sign-in headers.
- Map your trigger's fields into the JSON body, then test the step.
To go the other way, add a webhook in Signal or GPS that posts to your tool's catch-hook URL.
Patterns that work well#
- Website form to prospect contact. Create the prospect contact in Signal as the form is submitted. See Prospect contacts.
- Billing to CRM. Keep Accounts and Deals in step with your billing system. See Accounts and Deals.
- Weekly numbers into the plan. Post each KPI's latest value as a check-in. See Check-ins.
- Work synced both ways. Create and update Actions from your project tool. See GPS Actions.
Explore every endpoint#
Each API has an explorer built from its OpenAPI file: Signal API explorer and GPS API explorer.

