Developers
REST API soon
Everything the app does, over HTTP. The same permission model as the app itself, so a key can never reach further than the person who made it.
Everything on this page is designed and specified, and none of it is running in production today. It is written down ahead of the build so the behaviour is agreed before the code exists.
Authentication
A bearer token, created under Settings, then Developers. Keys are scoped to one workspace and carry an access level, the same three levels the MCP connection uses.
curl https://api.salesmontana.com/v1/calls?campaign_id=cmp_9f2&limit=25 \
-H "Authorization: Bearer sm_live_..."
Resources
| Resource | What you can do |
|---|---|
/companies | List, read, create, update. The account and its fields. |
/contacts | People at an account. |
/calls | List and read. Includes transcript, summary and score where the call was reviewed. |
/campaigns | List, read, create. Enrol and remove leads. |
/deals | Full pipeline access. |
/tasks | Follow-ups and callbacks. |
/analytics | The funnel, filtered the same way the reports screen filters it. |
/numbers | List your numbers and what they are assigned to. |
Shape
JSON in, JSON out. Cursor pagination through a next field rather than page
numbers, because a list that changes while you walk it will otherwise repeat or skip rows.
Timestamps are ISO 8601 in UTC. Errors carry a stable code alongside a message
meant for a human.
Rate limits
Per key, per minute, returned on every response in the RateLimit headers.
A 429 tells you when to come back in Retry-After. Bulk work belongs on the
bulk endpoints rather than in a loop over the single-item ones.