Skip to main content

Companies

The account object — create, search and link companies, the domain uniqueness rule, and how contacts attach to them.

Overview

A company (an account) is the organisation a contact belongs to. It is the spine the rest of the CRM hangs off: deals point at a company, notes and tasks attach to one, and the timeline rolls up its activity.

Contacts link to a company through the contact's own company_id.

Authentication

Authorization: Bearer cm_your_api_key
OperationScope
List, getcompanies:read
Create, update, deletecompanies:write

The company object

{
  "id": "5c6d…",
  "tenant_id": "a0b1…",
  "name": "Acme Retail",
  "domain": "acme.com",
  "phone": "+919876543210",
  "website": "https://acme.com",
  "industry": "Retail",
  "size": "51-200",
  "notes": "Two brands, one WABA.",
  "external_ids": { "shopify": "gid://shopify/Customer/991" },
  "metadata": null,
  "created_at": "2026-08-04T10:00:00Z",
  "updated_at": "2026-08-16T09:00:00Z"
}
FieldTypeNotes
domainstring | nullThe company's primary email/web domain. Unique per tenant when set
external_idsobject | nullYour own foreign keys into other systems. Free-form JSON
metadataobject | nullFree-form JSON attached by the platform

GET /api/v1/companies

Newest first.

ParameterTypeRequiredConstraints
qstringNoAt most 255 characters. Case-insensitive substring match against name or domain
limitintegerNo1 <= limit <= 200, default 50
offsetintegerNo0 <= offset <= 100000, default 0
curl "https://api.callmissed.com/api/v1/companies?q=acme&limit=50" \
  -H "Authorization: Bearer cm_your_api_key"

POST /api/v1/companies

FieldTypeRequiredConstraints
namestringYes1–255 characters, not blank
domainstringNoAt most 255 characters. Unique per tenant
phonestringNoAt most 32 characters
websitestringNoAt most 512 characters
industrystringNoAt most 128 characters
sizestringNoAt most 32 characters
notesstringNoAt most 10,000 characters
external_idsobjectNoFree-form JSON
curl -X POST https://api.callmissed.com/api/v1/companies \
  -H "Authorization: Bearer cm_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme Retail", "domain": "acme.com", "industry": "Retail" }'

Returns 201.

domain is the natural key. Reusing one returns 409 A company with this domain already exists — that is what stops two syncs from creating the same account twice. Look the domain up with ?q= before creating, or use duplicate detection and merge to clean up after the fact.

GET / PATCH / DELETE /api/v1/companies/{company_id}

PATCH accepts the same fields, all optional, with the same bounds. DELETE returns 204.

404 Company not found for an unknown or another tenant's id.

Errors

StatusWhen
403Key is missing companies:read / companies:write
404Company not in your tenant
409A company with this domain already exists
422name must not be blank, or a field over its length limit

Nothing on this page consumes credits.