Skip to content
Beta

Resources Changelog

Changelog

Changes to the Totem API, newest first, each under the date it shipped.

Each entry is dated, and an entry that asks you to change your integration or to run a full resync starts with Action required. Conventions explains what can change during the Beta.

1.0a: Beta updates (2026-10-18)

  • GET /v1/calls, GET /v1/conversations and GET /v1/bookings take an optional lead filter: one lead's calls, conversations or bookings, without paging the whole list.
  • POST /v1/leads/search by phone also finds the number stored in the layouts phone libraries write (+1 202-555-0123, (202) 555-0123 and 2025550123), as older imports stored it.
  • The Spanish docs show each error's title in Spanish. The title of a problem body stays in English.
  • Totem stops exporting teams in a sensitive business sector, such as health care, until it changes its sector policy. Such a team can no longer be added to an integration, and a key that covers one gets 403 sector_restricted for it. Skip the team. The changes feed delivers nothing for it, removals included, so keep what you already have only as long as your retention policy allows, then delete your copy.
  • Activities whose first capture failed are now captured later, so a lead can receive activities older than ones you already hold.
  • transferred_to.lead now documents that it is also null when the transfer landed on an existing lead-ads lead or another lead with a fixed id.
  • The docs now say that the API is reachable over IPv4 only, so an IPv6 entry in an IP allowlist never matches.
  • Calls that Totem reconciled or imported from its AI voice provider now report their real outcome, instead of unknown. A call still in progress reports duration_seconds as null.
  • A lead whose status this version does not know now reads record_kind: "lead" with status: null, instead of client.
  • A lead's attribution.original_capture.origin.kind is always conversation or call, and original_capture.source uses the same values as the lead's source. A LinkedIn submission the person withdrew is no longer reported as the latest submission.
  • Action required. A one-team key stops reading its team, with 404 team_not_accessible, once the team joins, leaves or changes organization. Revoke it and create a new one.
  • The per-key rate limit charges every request it counts at least one item, including a search with no match and a 404. Rate limits lists what is not charged.
  • A tampered cursor on GET /v1/sync/changes gets 400 invalid_request, instead of a 500.
  • Failed attempts with a revoked or expired key no longer count toward a lockout, and a locked key keeps working for the holder of its real secret.
  • limit documents its default of 25. The docs now explain what deleting a lead, call or conversation in Totem sends through the changes feed, and what the firewall answers outside /v1/.
  • TypeScript SDK 0.1.0-beta.2: typed error actions and codes, deadline-aware retries, open enum types and Node.js 22.12 support.

1.0a: Beta (2026-10-18)

Public Beta. Eligible team and organization administrators can create integrations in Settings → Developers without an invitation.

  • The first version of the API: read-only, and in beta.
  • Endpoints for the integration and its teams, boards, members, bookable services, leads (with their attribution, response and activities), calls, conversations and bookings.
  • The changes feed, GET /v1/sync/changes, with removals and full resync.
  • Secret keys with roll, revoke and an optional IP allowlist, managed in Settings → Developers.
  • No webhooks: poll the changes feed every 1 to 5 minutes.

API version 1.0a