Boni
Boni
Browse documentation
CRM·api-reference·Version 2

Boni CRM API

Tenant-scoped REST access to organizations, contacts, leads, opportunities, activities, and workspace settings.

Base and scoping

CRM resources are served from the Boni platform API under /v1/crm/. Every request resolves to exactly one organization and workspace; a credential issued for one workspace cannot read or write another, and the scope is enforced on the server rather than taken from the request body.

Access uses a Boni One service account or a delegated signed-in user, with read and write capability separated:

CapabilityRequired
Read any CRM resourceCRM read
Create or change any CRM resourceCRM write
Change workspace settingsCRM write, plus an administrator or manager seat

Integration producer endpoints—the lanes by which connected Boni products project their own events into CRM—are internal contracts bound to their specific product credential and are not part of this public surface.

Resources

ResourceEndpoints
Organizations`GET
Contacts`GET
Leads`GET
Opportunities`GET
Activities`GET
SearchGET /v1/crm/search across organizations, contacts, leads, and opportunities
Settings`GET
Reference dataGET /v1/crm/dial-codes

Behaviour worth knowing before you integrate

  • Writes are upserts on a stable key. Sending the same record twice updates it instead of creating a duplicate, which makes retries and replays safe.
  • Contact identity is resolved for you. A write carrying a phone number links to the existing person rather than creating a second copy; see contacts and companies for the matching rules.
  • Bulk and producer writes can opt out of that resolution when they already carry their own record ids.
  • Validation fails closed. An unknown enum value, a malformed identifier, or an out-of-range selection is rejected whole; nothing is partially applied.

Errors

StatusMeaning
400The request was understood but a value is invalid
401Missing or invalid credentials
403Authenticated, but not permitted for this organization, workspace, or capability
404No such record in the caller's tenant, including records that exist elsewhere
409The request conflicts with the record's current state—a confirmation value that does not match, a record that changed mid-operation, or an operation the record's origin does not allow

A 404 is deliberately returned rather than a 403 when a record belongs to another tenant, so an identifier cannot be probed for existence across workspaces.

Permanent deletion is restricted by origin: records created by hand can be deleted with an explicit confirmation value and a stated reason, while records projected from a connected source are archived instead, so a source-backed history cannot be silently destroyed from the API.

See the developer overview for documentation formats, versioning, and credential handling.

Boni CRM API | Documentation | Boni