The Totem API lets your server read the CRM data of your Totem teams: leads with their place in the pipeline, their origin and their contact permissions, what happened to each lead, calls, conversations and bookings. With it you can:
- Export your CRM to another CRM, or to files and tables you control.
- Sync a BI tool or a data warehouse, and report on leads, calls and bookings next to the rest of your business.
- Automate follow-up in your own systems, for example when a lead reaches a stage, while honoring each lead's contact permissions.
The Quickstart takes you from a new key to your first leads in four steps.
What version 1.0a is
- Read-only. No endpoint creates or changes anything in Totem.
- Beta. Available to eligible Totem customers. Create a key in Settings → Developers; no invitation is needed. Conventions explains what can change during the Beta.
- Contact details, no content. The API returns contact details, such as names, email addresses and phone numbers, and the metadata of the CRM: stages, calls, conversations and bookings. It never returns message text, call transcripts, summaries, recordings, notes, free-text answers or custom form fields. Treat every response as personal data.
- Polling, no webhooks. You keep a copy current by reading the changes feed every 1 to 5 minutes. The changelog announces any new capability.
- Administrator-level access. A key reads everything an administrator of its teams can read, including channels and records marked Private. The administrator who creates the key confirms this.
What you can read
Every request goes to https://api.totemstudio.ai/v1 over HTTPS, and the API answers in JSON.
| Data | Endpoints |
|---|---|
| Your integration and its teams | GET /v1/me, GET /v1/teams, GET /v1/teams/{id} |
| Team members | GET /v1/members |
| Boards, with their stages | GET /v1/boards |
| Leads, with their attribution and response | GET /v1/leads, GET /v1/leads/{id}, POST /v1/leads/search |
| What happened to a lead | GET /v1/leads/{id}/activities |
| Calls | GET /v1/calls, GET /v1/calls/{id} |
| Conversations, without their messages | GET /v1/conversations, GET /v1/conversations/{id} |
| Bookable services | GET /v1/booking_services |
| Bookings | GET /v1/bookings, GET /v1/bookings/{id} |
| Every change, team by team | GET /v1/sync/changes |
| Whether the API is up | GET /v1/health |
Before you build
- Keep the key on your server. Never put it in a browser, a mobile app or a public repository. Authentication explains where a key may live.
- Apply contact permissions first. Copy each lead's
contact_permissionsbefore any of your systems contacts that person. - Apply removals. When the changes feed removes a record, delete it from every system you copied it to, as soon as you can.
- Protect what you copy. Security and personal data explains what Totem protects and what to do with the personal data you receive.
- Test with fictitious data. Testing and go-live explains how.
Next steps
- Quickstart: make your first requests.
- Keep a copy in sync: copy a team with the changes feed and keep the copy current, with a tested receiver to start from.
- Authentication: keys, teams and the
Totem-Teamheader. - Errors: what every error code means and what to do about it.
- Conventions: the rules every response follows, before the endpoint reference.
- Security and personal data: keys, activity records, where the API runs and how to handle the data you copy.