Authentication
All Partner API requests require a Bearer token in theAuthorization header. Partner API keys are provisioned by the OpenCX team — they are separate from org-level API keys.
https://api.open.cx
IP allow list
Partner API endpoints support IP-level access control. When an allow list is configured on your partner account, requests from IPs not in the list are rejected with403 Forbidden — even with a valid API key.
All traffic passes through Cloudflare, which forwards the real client IP in the X-Forwarded-For header. The backend extracts and validates this IP on every request.
IP allow lists are configured by the OpenCX team during onboarding. Contact us to add, update, or remove IPs. When no allow list is set, requests are accepted from any IP (token-only authentication).
Security layers
Create Org
Create a new organization for one of your customers.Request body
Integrations
Pass credentials in theintegrations object to auto-connect supported third-party integrations during org creation. Credentials are validated against the live third-party API — invalid credentials cause the request to fail with a 400.
Each integration has its own shape under its own key. Some integrations accept either a single object (for one connection) or an array (for multiple connections — different locations, brands, or currencies). When passing an array, each entry should include a name that the AI uses in conversations to disambiguate between connections.
FareHarbor
Key:fareharbor
Single connection (object form):
Supported integration keys and their per-integration field shapes are documented above. This section will expand as more integrations become available via the provisioning API. For integrations not yet supported here, use the org-level dashboard or API after creation.
Response
201 Created
Error responses
Examples
List Orgs
List all organizations created by your partner account.Query parameters
Response
200 OK
Examples
Get Org by external_id
Look up a single org by theexternal_id you supplied at creation. Use this when you need to reverse-resolve from your internal identifier to the OpenCX org — for example, before creating an API key or generating a login link — without paginating through /orgs.
Path parameters
Response
200 OK
Error responses
Lookups are scoped to your partner account. If a different partner has an org with the same
external_id, you will not see it — you only ever resolve orgs you created.Examples
Create Org API Key
Create an API key for a specific org. The returned key authenticates requests to the OpenCX Public API (crawling, training, contacts, etc).Request body
Response
201 Created
Examples
Error responses
Revoke Org API Key
Permanently delete an org API key. Once revoked, the key can no longer authenticate requests to the OpenCX Public API.Path parameters
Revocation is org-scoped: any key under an org you own can be revoked, regardless of who created it (partner API or the org’s own dashboard).
Response
200 OK
Revocation propagates to all API servers within ~60 seconds. Each server caches API keys in-process with a 60-second TTL, so a revoked key may continue to authenticate on some servers until that TTL lapses.
Examples
Error responses
Create Login Link
Generate a short-lived, single-use URL that logs a user directly into the dashboard with the correct org context. No email, no forms, no org picker — the user lands in the dashboard immediately. Use this instead of invitations when you want frictionless access — for example, embedding a “Manage support” button in your own platform that takes the user straight into their dashboard.Request body
Response
201 Created
Security properties
Error responses
Examples
Idempotency
Useexternal_id to prevent duplicate orgs. If you call POST /partner/v1/orgs twice with the same external_id, the second call returns 409 Conflict. This makes it safe to retry org creation without risk of duplicates. Use GET /partner/v1/orgs/by-external-id/:externalId to resolve the existing org directly — no pagination required.
The
external_id uniqueness constraint is scoped to your partner account. Different partners can use the same external_id values.