Ajoxi
  • Pillar
    CLOUD PHONE

    Cloud phone, messaging, video, fax, chat — the full UCaaS stack.

    • Business PhoneCalling, SMS, video, one login
    • Customer EngagementEvery channel, one thread
    • Personal AIAI sidekick for every rep
    • SMS & MMSText from the main business line
    • Team ChatInternal chat, tied to customers
    • Video MeetingsRooms with AI notes + recap
    • Online FaxFax without the fax machine
    • Website ChatbotAuto-resolves order status & returns
    • Phone SystemModern PBX with AI built in
    Featured
    Everything included.
    Cloud phone, AI contact center, AI Receptionist, SMS, video, 300+ integrations.
    See plans & pricing
  • Core Capabilities
    • AI Receptionist24/7 first answer · 32 languages
    • AI SentimentRoutes upset callers automatically
    • AI Agent AssistWhisper scripts + next-best-action
    • Conversation IntelligenceTranscripts, sentiment, objections
    • Call RecordingFull fidelity + keyword search
    • Auto-attendantDrag-and-drop visual IVR builder
    • Supervisor ToolsListen · whisper · barge · audit log
    • Toll-free Numbers800, 888, 877 — provisioned fast
    New
    AI Sentiment · live scoring.
    Routes upset customers to senior agents the moment sentiment dips. On every paid plan.
    See AI Sentiment
  • By Industry & Team
    • FinanceSOC 2 · FINRA-ready audit trails
    • RetailOmnichannel + cart-recovery SMS
    • SaaSAPIs + Personal AI on every seat
    • LogisticsMulti-site dispatch routing
    • Sales TeamsPower dialer + live AI coaching
    • Support TeamsShared memory across 8 channels
    • Remote TeamsSame number on every device
    • SMBAI receptionist as your front desk
    • Enterprise ITSSO, SCIM, multi-site governance
    Most adopted
    A calling stack compliance trusts.
    Call recording, STIR/SHAKEN, sentiment routing. SOC 2, PCI, and FINRA-ready audit trails.
    See finance
  • Native Sync
    • HubSpotTwo-way sync · lifecycle triggers
    • ZohoCRM · Desk · Books · Bigin
    Coming soon
    Salesforce. Pipedrive. Freshsales.
    All three native two-way syncs in Q3 2026. Want a heads-up on launch?
    Email me on launch
  • Pricing
  • Learn
    • BlogEngineering & product notes
    • Customer storiesReal outcomes, real numbers
    • GuidesStep-by-step playbooks
    • WebinarsLive every Thursday · on-demand
    • Contact UsTalk to sales or get support
    Build
    • DocsHow everything works
    • API referenceREST + webhooks
    • SDKsNode, Python, Go, Ruby
    • ChangelogEvery ship, in one place
    Trust
    • Status pageLive uptime + incidents
    • Security + complianceSOC 2 · GDPR · PCI
    • PrivacyWhat we collect & why
    • TermsThe contract, in chapters
    Fresh ink
    8,400 calls, measured.
    AI receptionist accuracy by language, accent, and call type — the unedited numbers.
    Read the post
Sign inFree Trial
Cloud Phone
Business PhoneCalling, SMS, video, one loginCustomer EngagementEvery channel, one threadPersonal AIAI sidekick for every repSMS & MMSText from the main business lineTeam ChatInternal chat, tied to customersVideo MeetingsRooms with AI notes + recapOnline FaxFax without the fax machineWebsite ChatbotAuto-resolves order status & returnsPhone SystemModern PBX with AI built in
Contact Center
OmnichannelOne queue for every channelOutbound DialerPredictive, power, previewAgent AssistLive whisper coachingSupervisor AssistSpot bad calls in real timeInteraction AnalyticsAuto-QA, topic trendsEnterprise500+ seat operations
AI Family
Ajoxi VoiceAI Receptionist that books appointmentsAI AssistantDrafts, summaries, follow-upsConversation AIReads every call so you don't miss a thing
AI Receptionist24/7 first answer · 32 languagesAI SentimentRoutes upset callers automaticallyAI Agent AssistWhisper scripts + next-best-actionConversation IntelligenceTranscripts, sentiment, objectionsCall RecordingFull fidelity + keyword searchAuto-attendantDrag-and-drop visual IVR builderSupervisor ToolsListen · whisper · barge · audit logToll-free Numbers800, 888, 877 — provisioned fast
FinanceSOC 2 · FINRA-ready audit trailsRetailOmnichannel + cart-recovery SMSSaaSAPIs + Personal AI on every seatLogisticsMulti-site dispatch routingSales TeamsPower dialer + live AI coachingSupport TeamsShared memory across 8 channelsRemote TeamsSame number on every deviceSMBAI receptionist as your front deskEnterprise ITSSO, SCIM, multi-site governance
HubSpotTwo-way sync · lifecycle triggersZohoCRM · Desk · Books · Bigin
Learn
BlogEngineering & product notesCustomer storiesReal outcomes, real numbersGuidesStep-by-step playbooksWebinarsLive every Thursday · on-demandContact UsTalk to sales or get support
Build
DocsHow everything worksAPI referenceREST + webhooksSDKsNode, Python, Go, RubyChangelogEvery ship, in one place
Trust
Status pageLive uptime + incidentsSecurity + complianceSOC 2 · GDPR · PCIPrivacyWhat we collect & whyTermsThe contract, in chapters
Sign inFree Trial
Ajoxi

Cloud phone and AI contact center on one carrier-grade network.

SOC 2GDPRPCI-DSS

Cloud Phone

  • Business Phone
  • Customer Engagement
  • SMS & MMS
  • Team Chat
  • Video Meetings
  • Phone System

Contact Center

  • Omnichannel
  • Outbound Dialer
  • Agent Assist
  • Interaction Analytics
  • Enterprise CCaaS

Wholesale

  • Wholesale VoIP
  • Wholesale Voice

AI

  • AI Receptionist
  • AI Assistant
  • Conversational AI
  • AI Sentiment
  • Conversation Intelligence

Solutions

  • Finance
  • Retail & eCom
  • SaaS & Tech
  • Sales Teams
  • SMB

Company

  • Pricing
  • About
  • Customers
  • Contact Us
  • Country Codes
  • Area Codes
  • Docs
  • Status
  • Security

© 2026 Ajoxi. All rights reserved.

All systems normal
  • Privacy
  • Terms
  • Security
← Documentation

API Reference.

Build carrier-grade communication workflows with our RESTful API. JSON over HTTPS, Bearer token auth, and real-time webhooks.

REST · JSONOAuth 2.0Webhooks
api.ajoxi.com
POST/v1/calls
curl -X POST https://api.ajoxi.com/v1/calls \
  -H "Authorization: Bearer AJX_LIVE_..." \
  -H "Content-Type: application/json" \
  -d '{ "to": "+14155551234", "from": "+14155550100", "ai_receptionist": true }'
201 Created38ms
{
  "id": "call_8f2a1b3c",
  "status": "ringing",
  "ai_handler": "receptionist_v2"
}

Authentication

All requests authenticate with a Bearer token in the Authorization header. Generate keys from the API tab of your Ajoxi console — use AJX_LIVE_… for production traffic and AJX_TEST_… for sandbox.

curl https://api.ajoxi.com/v1/calls \
  -H "Authorization: Bearer AJX_LIVE_XXXXX"

Core Endpoints

Calls

Place, list, transfer, and retrieve voice calls.

GET/v1/calls

List all calls with cursor pagination and date filters.

POST/v1/calls

Initiate a new outbound call or trigger a dialer campaign.

GET/v1/calls/{id}

Retrieve a single call by ID with full metadata.

POST/v1/calls/{id}/transfer

Transfer an active call to another agent or extension.

Numbers

Search, provision, port, and release phone numbers.

GET/v1/numbers

Search available local, toll-free, or international numbers.

POST/v1/numbers

Provision a new number into your account.

PUT/v1/numbers/{id}

Update routing, caller-ID, or SMS configuration on a number.

DELETE/v1/numbers/{id}

Release a number back to the pool. Irreversible.

Messaging

Send and receive SMS, MMS, and conversation history.

GET/v1/messages

List messages, filter by direction, channel, or conversation.

POST/v1/messages

Send an SMS or MMS. Supports media attachments and templates.

Recordings & AI

Access call recordings, transcripts, and AI-generated insights.

GET/v1/recordings

List call recordings with optional date and agent filters.

GET/v1/recordings/{id}

Retrieve a single recording with transcript and AI summary.

GET/v1/transcripts/{id}

Retrieve the full transcript for a call or recording.

Webhooks

Subscribe to real-time platform events.

GET/v1/webhooks

List configured webhook subscriptions.

POST/v1/webhooks

Subscribe to one or more events (call.start, message.received).

DELETE/v1/webhooks/{id}

Remove a webhook subscription.

Errors & status codes

Every error response returns JSON with an error.code and error.message. The HTTP status code matches the category.

200
OKRequest succeeded. Response body contains the resource.
201
CreatedResource was created. Response body contains the new object.
204
No ContentRequest succeeded with no body (typical for DELETE).
400
Bad RequestMalformed JSON or invalid parameters. See error.message for details.
401
UnauthorizedMissing or invalid API key in the Authorization header.
403
ForbiddenAPI key does not have access to the requested resource.
404
Not FoundThe requested resource does not exist in your account.
422
UnprocessableSemantically invalid request (e.g. unreachable destination prefix).
429
Too Many RequestsYou exceeded your rate limit. Retry after Retry-After header value.
5xx
Server ErrorSomething failed on our side. Retries with exponential backoff are safe.

Rate limits

Standard accounts are capped at 100 requests per second per API key. Enterprise plans have no fixed cap — we scale alongside your traffic. Every response includes three rate-limit headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000

When the limit is exceeded you receive a 429 response with a Retry-After header in seconds. The SDK clients implement exponential backoff against these headers automatically.

Pagination

List endpoints return at most 50 items per page by default (configurable up to 200 via ?limit=200). Each response includes a next_cursor — pass it back as ?cursor=… to retrieve the next page. When next_cursor is null, you have reached the end.

{
  "data": [ ... ],
  "next_cursor": "Y3Vyc29yX2FmMmI...",
  "has_more": true
}

Webhooks

Subscribe to platform events via signed HTTPS POSTs. Every webhook request includes an X-Ajoxi-Signature header — verify it as HMAC-SHA256 over the raw request body using your webhook secret.

call.startedFired when an inbound or outbound call begins ringing.
call.answeredFired when a call is answered by a human or AI receptionist.
call.completedFired when a call ends. Payload includes duration, recording URL, and final disposition.
message.receivedFired when an inbound SMS or MMS arrives at a provisioned number.
message.deliveredFired when an outbound message is confirmed delivered by the carrier.
recording.readyFired when a call recording is processed and available for download.
transcript.readyFired when the AI transcript for a recording has finished processing.

Failed deliveries retry with exponential backoff for up to 24 hours. After the final attempt, the event is moved to a dead-letter queue you can replay from the console.

Versioning

The current stable version is v1. Breaking changes ship under a new prefix (/v2/, etc.) — never inside an existing version. Deprecated versions remain available for at least 18 months after a successor ships, with 6 months of email warning before sunset.

SDKs

First-party SDKs are available for Node.js, Python, Go, and Ruby. Each ships with typed clients, retry logic, and a verifyWebhook() helper.

Browse SDKs & libraries →

On this page

  • Authentication
  • Core Endpoints
  • Errors
  • Rate limits
  • Pagination
  • Webhooks
  • Versioning
  • SDKs

Base URL

https://api.ajoxi.com

Status

All systems operational

FAQ

Frequently asked questions

What authentication method does the API use?

All requests use Bearer-token authentication. Generate an API key in the Ajoxi console, then pass it as `Authorization: Bearer AJX_LIVE_XXXXX` on every request. Use a separate `AJX_TEST_…` key for sandbox traffic — the test environment is isolated and never places real calls.

Is there a sandbox environment?

Yes. Calls placed with test-mode keys are routed through our simulator instead of the live carrier network — perfect for CI pipelines and load testing. Test-mode requests do not bill against your minute allowance and never ring a real phone.

What is the rate limit?

100 requests per second on the standard plan, unlimited on enterprise. Each response includes `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers so you can pace your traffic accurately. When you exceed the limit you receive a 429 with a `Retry-After` value.

How do webhook signatures work?

Every webhook request includes an `X-Ajoxi-Signature` header. Compute HMAC-SHA256 over the raw request body using your webhook secret, then compare the two values constant-time. SDK clients (Node, Python, Go, Ruby) ship with a `verifyWebhook()` helper that handles this for you.

How are deprecations and breaking changes handled?

We never break a stable API version. Breaking changes ship under a new version path (e.g. `/v2/`). Deprecated versions stay live for at least 18 months after a successor ships, and you receive at least 6 months of email warnings before any sunset.

Do you support GraphQL?

Not currently. The API is REST + JSON with optional Server-Sent Events for streaming endpoints like live transcripts. If GraphQL would unblock a specific workflow for you, file a request through your account team — we track demand and prioritise accordingly.

Start building

Get your first call running in under five minutes.

Spin up a sandbox key, install an SDK, and place your first programmable call before lunch.

Start free trial →Browse SDKs