Skip to content

Developers

Entrox API

Read and write your workspace's own data from your own tools: REST endpoints, keys narrowed by scope, and a bulk export for a warehouse or a BI tool.

This page is generated from the API itself. The endpoint table, the scopes and the export resources are served by GET /api/v1/public/reference, so what you read here is what the API answers — there is no second copy to drift.

Quick start

Base URL
https://app.entrox.ai/api/v1/public
Header
Authorization: Bearer entrox_pat_…

Every path carries the id of the workspace the key belongs to. Another workspace's id answers 404 rather than 403, so ids stay unguessable.

List conversations

curl -H "Authorization: Bearer entrox_pat_…" \
  "https://app.entrox.ai/api/v1/public/workspaces/WORKSPACE_ID/conversations"

Authenticating

A token addresses one workspace and acts as the person who minted it, with their role. Scopes only ever narrow that.

Scopes

A key carries one workspace and acts as the person who minted it, narrowed by scopes. Each scope is a resource and a level; a higher level implies the one below it.

  • workspaceworkspace:admin workspace:read workspace:write
  • contactscontacts:admin contacts:read contacts:write
  • catalogcatalog:admin catalog:read catalog:write
  • ordersorders:admin orders:read orders:write
  • bookingsbookings:admin bookings:read bookings:write
  • conversationsconversations:admin conversations:read conversations:write
  • knowledgeknowledge:admin knowledge:read knowledge:write
  • agentagent:admin agent:read agent:write
  • flowsflows:admin flows:read flows:write
  • storefrontstorefront:admin storefront:read storefront:write
  • analyticsanalytics:admin analytics:read analytics:write
  • erperp:admin erp:read erp:write
  • paymentspayments:admin payments:read payments:write
  • admin — DELETE, plus the irreversible actions listed below.
  • read — GET and HEAD.
  • write — POST, PATCH and PUT — create, update, send, resolve.

Endpoints

Everything the owner can do, mounted under the workspace. The path shown is relative to the base URL and the workspace id.

PathScope
/workspace
/agentagent
/analyticsanalytics
/auditanalytics
/automationsflows
/billingworkspace
/bookingsbookings
/catalogcatalog
/channelsworkspace
/contactscontacts
/conversationsconversations
/erperp
/flowsflows
/hoursworkspace
/integrationsworkspace
/invitationsworkspace
/logoworkspace
/membersworkspace
/notificationsworkspace
/onboardingworkspace
/ordersorders
/paymentspayments
/privacyworkspace
/saved-repliesconversations
/securityworkspace
/storefrontstorefront
/tagscontacts
/uploadsworkspace
/webchatworkspace
/webhooksworkspace

Actions that cost more than their method suggests

Some routes are not described by their HTTP method: refunding an order is a POST, and so is recording it as paid. These need the level shown, whichever kind of key you hold.

PathNeeds
POST /orders/*/statusaction → cancel=admin, refund=admin
POST /bookings/*/statusaction → cancel=admin
POST /payments/*/canceladmin
POST /privacy/exportsadmin
POST /privacy/deleteadmin
POST /privacy/delete/canceladmin
POST /privacy/customers/*/eraseadmin
PUT /privacy/retentionadmin
POST /agent/publishadmin
POST /agent/versions/*/restoreadmin
PUT /agent/usage/capsadmin
POST /flows/*/enableadmin
POST /automations/*/enableadmin
POST /storefront/publishadmin
POST /storefront/unpublishadmin
PUT /storefront/domainadmin
POST /storefront/domain/verifyadmin
POST /erp/enableadmin
PUT /erp/settingsadmin
POST /erp/sampleadmin
POST /erp/stocktakes/*/postadmin
POST /erp/purchase-orders/*/receiveadmin
POST /erp/purchase-orders/*/stateadmin
PUT /integrations/telegramadmin
PUT /integrations/google-calendaradmin
POST /channels/meta/connectadmin
POST /channels/*/disconnectadmin
POST /webhooks/*/rotate-secretadmin
POST /invitationsadmin
POST /invitations/*/resendadmin
PUT /securityadmin
POST /billing/checkoutadmin
POST /onboarding/publishadmin

Bulk export

A whole table, streamed as NDJSON or CSV, for a warehouse or a one-off analysis. Paged with a keyset cursor, so pages never overlap and two exports of the same data agree.

https://app.entrox.ai/api/v1/public/workspaces/WORKSPACE_ID/export/{resource}.ndjson or /export/{resource}.csv

?since=&until=&cursor=&limit=

Scope
the read scope of the resource being exported
Paging
A full page returns X-Next-Cursor; an empty one means the last page. Rows are ordered by (created_at, id) and never overlap.
Caveat
Concurrent writes and deletes are not isolated, so a row changed during an export may appear in either shape, and a row deleted during one may still appear.
  • contacts.ndjson
  • tags.ndjson
  • contact_tags.ndjson
  • contact_notes.ndjson
  • conversations.ndjson
  • messages.ndjson
  • orders.ndjson
  • order_items.ndjson
  • bookings.ndjson
  • payments.ndjson
  • products.ndjson
  • services.ndjson
  • staff.ndjson
  • audit_log.ndjson
# Page to the end: an empty page means no more pages, and a full one
# always carries X-Next-Cursor, so no rows are lost at a boundary.
curl -D - -H "Authorization: Bearer entrox_pat_…" \
  "https://app.entrox.ai/api/v1/public/workspaces/WORKSPACE_ID/export/conversations.ndjson?limit=1000"

Errors

CodeStatusMeaning
unauthenticated401No credential, or one that is unknown, revoked, expired or from a disallowed address.
not_found404Another workspace's id, or a resource that does not exist.
insufficient_scope403The token is real but too narrow for this route.
unknown_route403This route is not part of the public API.
rate_limited429Too many requests this minute for this token.
invalid_cursor400A cursor this API did not issue, or one from a different export.

Before you build on it

  • A key is as powerful as the role of the person who minted it and no more, and it is revoked with them.
  • Keys are not interactive sessions, so a workspace's two-factor policy does not cover them.
  • Rate limiting is per process and per minute, and the IP allowlist trusts the proxy's forwarding header.
  • An export is reproducible only against a table nobody is writing to: a row changed during one may appear in either shape.

Questions about integrating? Write to [email protected]