Skip to content

Authentication ​

The Beeving API uses Bearer tokens. Each token belongs to one workspace, and every request made with it is scoped to that workspace's data.

Create a token ​

  1. Log in to app.beeving.com
  2. Go to Settings → API Tokens
  3. Click New token
  4. Give it a name, choose its permissions and, optionally, an expiry date
  5. Copy the token. It is shown only once: Beeving stores only a SHA-256 hash of it.

You can also create tokens through the API with POST /api-tokens.

A token is a 48-character alphanumeric string with no prefix.

Use the token ​

Send it in the Authorization header with every request:

bash
curl https://app.beeving.com/api/v1/workspace \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN"

Permissions ​

Each route requires one specific permission. Permissions are checked exactly as they are written:

  • there are no wildcards;
  • write does not imply read.

To create and then read contacts, a token needs both contacts:write and contacts:read.

PermissionGrants
contacts:readContacts, companies, deals, tasks and pipeline (read)
contacts:writeContacts, companies, deals, tasks and pipeline (write)
companies:read / companies:writeCRM companies
contacts:importPOST /contacts/import
contacts:exportGET /contacts/export
lists:read / lists:writeLists and their members
tags:read / tags:writeTags and their contacts
segments:read / segments:writeSegments
templates:read / templates:writeEmail templates and the marketplace
email_accounts:read / email_accounts:writeSending accounts (SMTP / OAuth)
campaigns:read / campaigns:writeCampaigns, steps and enrolled contacts
campaigns:sendStart, pause and resume campaigns
analytics:readAnalytics endpoints
webhooks:read / webhooks:writeWebhooks
workspace:read / workspace:writeWorkspace, members and invitations
api_tokens:read / api_tokens:writeAPI tokens
blacklist:read / blacklist:writeBlacklist

GET /api-tokens/permissions returns the up-to-date list.

Least privilege

Create a separate token for each integration, with only the permissions it needs. Give api_tokens:write and workspace:write only to tokens you fully trust: a token holding api_tokens:write can create other tokens.

Expiry and revocation ​

  • A token with an expires_at date stops working after that date.
  • To revoke a token immediately, delete it in Settings → API Tokens or call DELETE /api-tokens/{id}.
  • last_used_at is updated on every call. Use it to find tokens nobody uses any more.

Authentication errors ​

StatusmessageCause
401API token requiredThe Authorization header is missing
401Invalid API tokenThe token is unknown or was revoked
401API token has expiredexpires_at has passed
403Missing required permission: contacts:writeThe token lacks the permission this route requires
json
{
  "error": "Forbidden",
  "message": "Missing required permission: contacts:write"
}

API v1.0