REST API reference

Companies

The organizations your customers belong to, with plan and spend data for routing and reports.

Companies group people: link a contact with POST /contacts/{id}/companies and every conversation shows the company’s plan and spend. Reads need companies:read; changes need companies:write.

The company object

Returned by every company endpoint.

Fields

object string
Always company.
id string
Unique id (UUID).
externalId string | null
Your product’s company id. Unique per workspace.
name string
Company name.
website string | null
Normalized to an https:// URL.
industry string | null
Free text.
size integer | null
Number of employees.
planName string | null
Their plan in your product.
monthlySpendCents integer | null
What they pay you per month, in cents.
userCount integer
People linked to the company.
lastSeenAt timestamp | null
Last activity of any of its people.
customAttributes object
Company data attributes by key.
tags array
Tags as { id, name }.
createdAt timestamp
Created.
updatedAt timestamp
Last change.
Example company
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "externalId": "cmp_1102",  "name": "Northwind Analytics",  "website": "https://northwind.example",  "industry": "Software",  "size": 180,  "planName": "Business",  "monthlySpendCents": 149000,  "userCount": 23,  "lastSeenAt": "2026-10-02T13:58:20.000Z",  "customAttributes": {    "region": "EMEA"  },  "tags": [    {      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP"    }  ],  "createdAt": "2025-03-08T10:00:00.000Z",  "updatedAt": "2026-10-02T16:40:03.000Z"}

List companies

GET /v1 /companies companies:read

Companies, newest first by default. externalId returns the exact match (one page). The first page includes total.

Query parameters

q string
Free text: name, website, company id or industry.
externalId string
Exact lookup by your company id.
segmentId string
A saved company segment.
sort enum
name, lastSeenAt, createdAt, userCount, monthlySpendCents, size. Default createdAt.
direction enum
asc or desc. Default desc.
limit integer
Items per page, 1–100. Default 25.
cursor string
The nextCursor of the previous page.
curl https://api.rabbitblaze.com/v1/companies?sort=monthlySpendCents&limit=10 \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/companies?sort=monthlySpendCents&limit=10", {  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.get(    "https://api.rabbitblaze.com/v1/companies",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    params={        "sort": "monthlySpendCents",        "limit": "10",    },)res.raise_for_status()data = res.json()
Response · 200 OK
{  "items": [    {      "object": "company",      "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",      "externalId": "cmp_1102",      "name": "Northwind Analytics",      "website": "https://northwind.example",      "industry": "Software",      "size": 180,      "planName": "Business",      "monthlySpendCents": 149000,      "userCount": 23,      "lastSeenAt": "2026-10-02T13:58:20.000Z",      "customAttributes": {        "region": "EMEA"      },      "tags": [        {          "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",          "name": "VIP"        }      ],      "createdAt": "2025-03-08T10:00:00.000Z",      "updatedAt": "2026-10-02T16:40:03.000Z"    }  ],  "nextCursor": "WyIyMDI2LTEwLTAyVDE0OjA1OjMxLjAwMFoiLCIwMTk5YzUyMC03ZThmIl0",  "total": 87}

Search companies

POST /v1 /companies/search companies:read

Rule-based filtering, like searching contacts, with company.* attribute paths.

Body

query string
Free text.
filter rule group
{ combinator, rules } on company.* paths.
segmentId string
Only companies in this segment.
sort enum
Same fields as listing.
direction enum
asc or desc.
limit integer
Items per page, 1–100. Default 25.
cursor string
The nextCursor of the previous page.
curl -X POST https://api.rabbitblaze.com/v1/companies/search \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "filter": {    "combinator": "and",    "rules": [      {        "attribute": "company.monthly_spend",        "operator": "gte",        "value": 100000      }    ]  }}'
const res = await fetch("https://api.rabbitblaze.com/v1/companies/search", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    filter: {      combinator: "and",      rules: [        {          attribute: "company.monthly_spend",          operator: "gte",          value: 100000,        },      ],    },  }),})const data = await res.json()
import osimport requests res = requests.post(    "https://api.rabbitblaze.com/v1/companies/search",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "filter": {            "combinator": "and",            "rules": [                {                    "attribute": "company.monthly_spend",                    "operator": "gte",                    "value": 100000,                },            ],        },    },)res.raise_for_status()data = res.json()
Response · 200 OK
{  "items": [    {      "object": "company",      "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",      "externalId": "cmp_1102",      "name": "Northwind Analytics",      "website": "https://northwind.example",      "industry": "Software",      "size": 180,      "planName": "Business",      "monthlySpendCents": 149000,      "userCount": 23,      "lastSeenAt": "2026-10-02T13:58:20.000Z",      "customAttributes": {        "region": "EMEA"      },      "tags": [        {          "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",          "name": "VIP"        }      ],      "createdAt": "2025-03-08T10:00:00.000Z",      "updatedAt": "2026-10-02T16:40:03.000Z"    }  ],  "nextCursor": null,  "total": 1}

Retrieve a company

GET /v1 /companies/{id} companies:read

One company by id.

Path parameters

id string required
The company id.
curl https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a", {  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.get(    "https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "externalId": "cmp_1102",  "name": "Northwind Analytics",  "website": "https://northwind.example",  "industry": "Software",  "size": 180,  "planName": "Business",  "monthlySpendCents": 149000,  "userCount": 23,  "lastSeenAt": "2026-10-02T13:58:20.000Z",  "customAttributes": {    "region": "EMEA"  },  "tags": [    {      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP"    }  ],  "createdAt": "2025-03-08T10:00:00.000Z",  "updatedAt": "2026-10-02T16:40:03.000Z"}

Create a company

POST /v1 /companies companies:write

Creates a company. An externalId that’s already used answers 409 conflict.

Body

name string required
Up to 200 characters.
externalId string | null
Your company id, up to 255 characters.
website string | null
A domain or URL; stored as https://….
industry string | null
Up to 120 characters.
size integer | null
Employees, 0–10,000,000.
planName string | null
Up to 120 characters.
monthlySpendCents integer | null
Monthly spend in cents.
customAttributes object
Values by company attribute key; null clears one.
curl -X POST https://api.rabbitblaze.com/v1/companies \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "name": "Northwind Analytics",  "externalId": "cmp_1102",  "website": "northwind.example",  "planName": "Business",  "monthlySpendCents": 149000}'
const res = await fetch("https://api.rabbitblaze.com/v1/companies", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    name: "Northwind Analytics",    externalId: "cmp_1102",    website: "northwind.example",    planName: "Business",    monthlySpendCents: 149000,  }),})const data = await res.json()
import osimport requests res = requests.post(    "https://api.rabbitblaze.com/v1/companies",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "name": "Northwind Analytics",        "externalId": "cmp_1102",        "website": "northwind.example",        "planName": "Business",        "monthlySpendCents": 149000,    },)res.raise_for_status()data = res.json()
Response · 201 Created
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "externalId": "cmp_1102",  "name": "Northwind Analytics",  "website": "https://northwind.example",  "industry": "Software",  "size": 180,  "planName": "Business",  "monthlySpendCents": 149000,  "userCount": 23,  "lastSeenAt": "2026-10-02T13:58:20.000Z",  "customAttributes": {    "region": "EMEA"  },  "tags": [    {      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP"    }  ],  "createdAt": "2025-03-08T10:00:00.000Z",  "updatedAt": "2026-10-02T16:40:03.000Z"}

Update a company

PATCH /v1 /companies/{id} companies:write

Changes only the fields you send.

Path parameters

id string required
The company id.

Body

name string
Up to 200 characters.
externalId string | null
Your company id, up to 255 characters.
website string | null
A domain or URL; stored as https://….
industry string | null
Up to 120 characters.
size integer | null
Employees, 0–10,000,000.
planName string | null
Up to 120 characters.
monthlySpendCents integer | null
Monthly spend in cents.
customAttributes object
Values by company attribute key; null clears one.
curl -X PATCH https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "planName": "Enterprise",  "monthlySpendCents": 490000}'
const res = await fetch("https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a", {  method: "PATCH",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    planName: "Enterprise",    monthlySpendCents: 490000,  }),})const data = await res.json()
import osimport requests res = requests.patch(    "https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "planName": "Enterprise",        "monthlySpendCents": 490000,    },)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "externalId": "cmp_1102",  "name": "Northwind Analytics",  "website": "https://northwind.example",  "industry": "Software",  "size": 180,  "planName": "Enterprise",  "monthlySpendCents": 490000,  "userCount": 23,  "lastSeenAt": "2026-10-02T13:58:20.000Z",  "customAttributes": {    "region": "EMEA"  },  "tags": [    {      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP"    }  ],  "createdAt": "2025-03-08T10:00:00.000Z",  "updatedAt": "2026-10-02T16:40:03.000Z"}

Delete a company

DELETE /v1 /companies/{id} companies:write

Deletes the company. Its people stay, unlinked.

Path parameters

id string required
The company id.
curl -X DELETE https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a", {  method: "DELETE",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.delete(    "https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "deleted": true}

List a company’s people

GET /v1 /companies/{id}/contacts contacts:read

People linked to the company, newest first.

Path parameters

id string required
The company id.

Query parameters

limit integer
Items per page, 1–100. Default 25.
cursor string
The nextCursor of the previous page.
curl https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/contacts \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY"
const res = await fetch("https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/contacts", {  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,  },})const data = await res.json()
import osimport requests res = requests.get(    "https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/contacts",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},)res.raise_for_status()data = res.json()
Response · 200 OK
{  "items": [    {      "object": "contact",      "id": "0199c512-6a7b-7c8d-9e0f-1a2b3c4d5e6f",      "role": "user",      "externalId": "usr_48213",      "email": "[email protected]",      "phone": "+49 30 1234567",      "name": "Lena Fischer",      "avatarUrl": null,      "ownerId": "0199a8f2-2d3e-7f4a-9b5c-6d7e8f9a0b1c",      "location": {        "city": "Berlin",        "region": "Berlin",        "country": "Germany",        "countryCode": "DE",        "timezone": "Europe/Berlin"      },      "language": "de",      "browser": "Chrome",      "os": "macOS",      "lastSeenAt": "2026-10-02T13:58:20.000Z",      "lastContactedAt": "2026-10-02T14:11:08.000Z",      "lastRepliedAt": "2026-10-02T14:05:31.000Z",      "signedUpAt": "2025-03-08T10:00:00.000Z",      "sessionCount": 214,      "unsubscribedFromEmails": false,      "blocked": false,      "customAttributes": {        "plan": "business",        "seats": 12,        "mrr": 1490      },      "tags": [        {          "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",          "name": "VIP"        }      ],      "companies": [        {          "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",          "name": "Northwind Analytics"        }      ],      "createdAt": "2026-09-14T09:12:44.000Z",      "updatedAt": "2026-10-02T16:40:03.000Z"    }  ],  "nextCursor": "WyIyMDI2LTEwLTAyVDE0OjA1OjMxLjAwMFoiLCIwMTk5YzUyMC03ZThmIl0"}

Tag a company

POST /v1 /companies/{id}/tags companies:write

Adds a tag; remove it with DELETE /companies/{id}/tags/{tagId}. Both return the company.

Path parameters

id string required
The company id.

Body

tagId string required
A tag id.
curl -X POST https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/tags \  -H "Authorization: Bearer $RABBITBLAZE_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "tagId": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c"}'
const res = await fetch("https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/tags", {  method: "POST",  headers: {    Authorization: `Bearer ${process.env.RABBITBLAZE_API_KEY}`,    "Content-Type": "application/json",  },  body: JSON.stringify({    tagId: "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",  }),})const data = await res.json()
import osimport requests res = requests.post(    "https://api.rabbitblaze.com/v1/companies/0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a/tags",    headers={"Authorization": f"Bearer {os.environ['RABBITBLAZE_API_KEY']}"},    json={        "tagId": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",    },)res.raise_for_status()data = res.json()
Response · 200 OK
{  "object": "company",  "id": "0199c514-2b3c-7d4e-9f5a-6b7c8d9e0f1a",  "externalId": "cmp_1102",  "name": "Northwind Analytics",  "website": "https://northwind.example",  "industry": "Software",  "size": 180,  "planName": "Business",  "monthlySpendCents": 149000,  "userCount": 23,  "lastSeenAt": "2026-10-02T13:58:20.000Z",  "customAttributes": {    "region": "EMEA"  },  "tags": [    {      "id": "0199a8f3-5d6e-7f7a-8b8c-9d0e1f2a3b4c",      "name": "VIP"    }  ],  "createdAt": "2025-03-08T10:00:00.000Z",  "updatedAt": "2026-10-02T16:40:03.000Z"}