Skip to content

Companies

Companies represent clients, prospects, and partner organizations in the SM CRM.

Routes

GET /api/companies

List companies with pagination and filters.

Auth: Required
Query params:

ParamTypeDescription
typestringFilter by company_type (client, prospect, partner)
productstringFilter by product tag
statusstringFilter by status (active, inactive, churned)
sourcestringFilter by source
searchstringSearch name or domain
sortstringrevenue sorts by monthly_revenue DESC. Default: alphabetical
pagenumberPage number. Default: 1
limitnumberResults per page. Default: 25, max: 100

Response:

json
{
  "ok": true,
  "data": {
    "items": [...],
    "total": 42,
    "page": 1,
    "limit": 25,
    "hasMore": true
  }
}

GET /api/companies/:id

Get a single company with counts and related data.

Auth: Required
Path params: id — company ID

Response includes:

  • All company fields
  • contacts_count — number of linked contacts
  • deals_count — number of linked deals
  • engagements — active engagements (id, name, status, monthly_revenue, headcount)
  • recent_invoices — last 12 invoices (id, amount, status, issued_date)

POST /api/companies

Create a new company.

Auth: Required
Request body:

FieldTypeRequiredDescription
namestringyesCompany name
domainstringnoWebsite domain
industrystringnoIndustry
employee_countnumbernoHeadcount
revenue_rangestringnoe.g. $1M-$10M
company_typestringnoclient, prospect, partner. Default: prospect
statusstringnoDefault: active
productstringnoProduct tag
sourcestringnoDefault: manual
health_scorenumberno0–100. Default: 50
monthly_revenuenumbernoMRR in dollars
total_contract_valuenumbernoTCV
notesstringnoInternal notes

Response: 201 Created

json
{ "ok": true, "data": { "id": "co_a1b2c3d4", "name": "Acme Corp" } }

PATCH /api/companies/:id

Update company fields.

Auth: Required
Path params: id
Request body: Any subset of:

name, domain, industry, employee_count, revenue_range, company_type, status, product, source, health_score, engagement_score, contract_start, contract_end, contract_type, monthly_revenue, total_contract_value, payment_terms, margin_pct, cogs, profit, stripe_customer_id, qb_customer_id, enrichment_status, enrichment_data, apollo_id, linkedin_url, logo_url, close_id, close_url, notes, address, city, state, country, timezone, tags, icp_score, icp_tier, icp_product, slack_channel_url, pandadoc_id

Response:

json
{ "ok": true, "data": { "id": "co_a1b2c3d4", "updated": true } }

GET /api/companies/:id/score

Get the ICP score for a company.

Auth: Required
Response:

json
{
  "ok": true,
  "data": {
    "company_id": "co_a1b2c3d4",
    "icp_score": 82,
    "icp_tier": "A",
    "breakdown": { ... }
  }
}

POST /api/companies/score-batch

Batch-score multiple companies against an ICP profile.

Auth: Required
Request body:

json
{ "icp_profile_id": "icp_a1b2", "company_ids": ["co_1", "co_2"] }

Sprint Mode LLC — Internal Platform Documentation