Docs
ChangelogالعربيةDashboard
DocumentationAPI reference
API referenceIntroduction
  • Introduction
  • Authentication
    • GETVerify API key
  • Agents
    • POSTCreate agent
    • GETList agents
    • GETGet agent
    • PUTUpdate agent
    • DELDelete agent
    • POSTLink analysis groups to an agent
    • GETList analysis groups for an agent
  • Tools
    • POSTCreate tool
    • GETList tools
    • GETGet tool
    • PUTUpdate tool
    • DELDelete tool
    • POSTLink a tool to an agent
    • DELUnlink a tool from an agent
    • GETList tools for an agent
    • GETList agents for a tool
  • Analysis groups
    • POSTCreate analysis group
    • GETList analysis groups
    • GETGet analysis group
    • PUTUpdate analysis group
    • DELDelete analysis group
    • POSTLink an agent to an analysis group
    • POSTLink agents to an analysis group
    • GETList agents for an analysis group
    • DELUnlink an analysis group from an agent
  • Knowledge bases
    • POSTCreate knowledge base
    • GETList knowledge bases
    • GETGet knowledge base
    • PATCHUpdate knowledge base
    • DELDelete knowledge base
  • Documents
    • POSTAdd PDF document
    • POSTAdd text document
    • POSTAdd URL document
    • GETList documents
    • GETGet document
    • DELDelete document
  • Calls
    • POSTCreate outbound call
    • GETGet call
    • POSTSearch calls
    • POSTGet call analytics
    • POSTExport calls
    • GETGet recording download URL
    • POSTCreate outbound call (legacy path)
  • Web calls
    • POSTCreate web call
    • POSTCreate web call (legacy path)
  • SIP inbound
    • POSTCreate SIP inbound trunk
    • GETList SIP inbound trunks
    • GETGet SIP inbound trunk
    • DELDelete SIP inbound trunk
  • SIP outbound
    • POSTCreate SIP outbound trunk
    • GETList SIP outbound trunks
    • GETGet SIP outbound trunk
    • DELDelete SIP outbound trunk
  • Agent inbound links
    • POSTLink an agent to an inbound trunk
    • GETList agent inbound links
    • DELDelete agent inbound link
  • Text to speech
    • POSTGenerate speech
    • GETList voices
    • GETGet voice
    • POSTClone a voice
    • DELDelete cloned voice
  • Speech to text
    • POSTTranscribe an audio file
    • GETGet transcription job
    • GETList transcription jobs
    • WSStream speech to text
  • Contacts
    • POSTCreate contact
    • GETList contacts
    • GETSearch contacts
    • GETGet contact
    • PATCHUpdate contact
    • GETList conversations for a contact
  • Conversations
    • GETList conversations
    • POSTFilter conversations
    • POSTList conversations by contact
    • GETGet conversation
    • GETList conversation messages
    • POSTSend a message
    • POSTSend a message with an attachment
    • GETList conversation attachments
    • POSTAssign conversation
    • POSTChange conversation status
    • POSTChange conversation priority
    • POSTMark conversation as seen
  • Tickets
    • POSTCreate ticket
    • GETList tickets
    • POSTFilter tickets
    • POSTList tickets by contact
    • GETGet ticket
    • GETList ticket messages
    • POSTAdd a ticket message
    • POSTAdd a ticket message with attachments
    • POSTAssign ticket
    • POSTChange ticket status
    • POSTChange ticket priority
    • POSTChange ticket type
    • POSTCreate ticket inbox
    • GETList ticket inboxes
    • PATCHUpdate ticket inbox
    • DELDelete ticket inbox
  • WhatsApp
    • POSTConnect a WhatsApp number
    • GETList WhatsApp inboxes
    • GETGet WhatsApp inbox
    • PATCHUpdate WhatsApp inbox
    • DELDelete WhatsApp inbox
    • POSTCreate WhatsApp conversation
    • GETList WhatsApp conversations
    • POSTFilter WhatsApp conversations
    • POSTList WhatsApp conversations by contact
    • POSTAssign an agent to a WhatsApp number
    • GETGet the agent on a WhatsApp number
    • DELRemove the agent from a WhatsApp number
    • POSTGet WhatsApp analytics
  • Instagram
    • GETList Instagram accounts
    • GETGet Instagram account
    • DELDelete Instagram account
    • GETList Instagram conversations
    • POSTFilter Instagram conversations
    • POSTList Instagram conversations by contact
    • POSTAssign an agent to an Instagram account
    • GETGet the agent on an Instagram account
    • DELRemove the agent from an Instagram account
  • TikTok
    • GETList TikTok accounts
    • GETGet TikTok account
    • DELDelete TikTok account
    • GETList TikTok conversations
    • POSTFilter TikTok conversations
    • POSTList TikTok conversations by contact
    • POSTAssign an agent to a TikTok account
    • GETGet the agent on a TikTok account
    • DELRemove the agent from a TikTok account

API reference

Introduction

The Nabrah API lets you run Arabic-first voice agents from your own code: create agents and the tools they call, place and analyze calls, generate and transcribe speech, and work your WhatsApp, Instagram and TikTok inbox.
Nabrah API: a request to create an agent and its JSON responseNabrah API: a request to create an agent and its JSON response

Base URL

Every endpoint in this reference is served from one base URL over HTTPS. Requests and responses are JSON unless an endpoint says otherwise, such as file uploads and generated audio.

Base URL
https://api.nabrah.ai/api

Authentication

Send your workspace API key in the X-API-Key header on every request. A key belongs to one workspace, so it only reaches that workspace’s agents, calls and conversations. Create and rotate keys in the dashboard under API keys, keep them out of public code and repositories, and rotate a key straight away if it leaks.

Authorization
X-API-Key: <your-api-key>

Make your first request

  1. 1

    Create an API key

    In the Nabrah dashboard, open API keys and create a key for your workspace. It is shown once, so store it somewhere safe.

  2. 2

    Verify it

    Call the verify endpoint with the key. A 200 response confirms the key and shows which workspace it belongs to.

    Request
    curl --request GET \
      --url 'https://api.nabrah.ai/api/ext/test' \
      --header 'X-API-Key: <your-api-key>'
    200
    {
      "status": "success",
      "message": "API key is valid",
      "key_details": {
        "id": "7c0d3f0e-2a52-4b8e-9d3c-5f0e7f4a1b2c",
        "user ID": "0b6f1c0a-3d9e-4c11-8f5e-2e7a9d1c4b6f",
        "project_id": "5e2a9c7d-1f4b-4e8a-a3c6-9d0b2f7e8c1a",
        "created_at": "2026-01-15T12:00:00.000Z"
      }
    }
    Verify API key
  3. 3

    Build on it

    Create an agent, connect a number, and place a call, or start with speech: generate audio or transcribe a file.

Errors

Errors use standard HTTP status codes with a JSON body. The detail field says what went wrong: a message for most errors, and a list of problems for validation errors.

200–204

The request worked. 204 responses have no body.

401

The X-API-Key header is missing, or the key is invalid or revoked.

404

The resource does not exist in the workspace your key belongs to.

422

The request failed validation. Each item in detail names the field (loc) and the problem (msg).

5xx

Something failed on our side. Retry with backoff; contact support if it continues.

422
{
  "detail": [
    {
      "loc": [
        "body",
        "agent_id"
      ],
      "msg": "Field required",
      "type": "missing"
    }
  ]
}

Endpoints

Endpoints are grouped by what they work on. Each page documents its parameters and responses, with samples in cURL, Python, JavaScript and Go, and a playground to send real requests.

Get started

Authentication1 endpointsCheck that an API key works and see which workspace it belongs to.

Voice agents

Agents7 endpointsCreate and configure voice agents, and choose which analysis groups run after their calls.Tools9 endpointsRegister the HTTP tools an agent can call during a conversation, and link them to agents.Analysis groups9 endpointsDefine the data extracted from every call, and link analysis groups to agents.Knowledge bases5 endpointsCreate the knowledge bases an agent retrieves answers from during a call.Documents6 endpointsAdd documents to a knowledge base and track their ingestion.

Calls

Calls7 endpointsPlace outbound calls, then search, export and analyze call records and recordings.Web calls2 endpointsStart a browser voice session with an agent and get the token your frontend joins with.

Telephony

SIP inbound4 endpointsManage the inbound SIP trunks that bring calls to your numbers into Nabrah.SIP outbound4 endpointsManage the outbound SIP trunks your agents place calls through.Agent inbound links3 endpointsChoose which agent answers the calls that arrive on each inbound trunk.

Speech

Text to speech5 endpointsGenerate natural Arabic and English speech, and manage the voices you generate with.Speech to text4 endpointsTranscribe recorded audio in the background, or stream audio for live transcripts.

Inbox

Contacts6 endpointsCreate, update and search the contacts your workspace talks to on every channel.Conversations12 endpointsRead and reply to inbox conversations, assign them, and change their status and priority.Tickets16 endpointsCreate and work support tickets, and configure the inboxes they arrive in.WhatsApp13 endpointsConnect WhatsApp numbers, work their conversations and put an agent on each number.Instagram9 endpointsWork the conversations of connected Instagram accounts and put an agent on each account.TikTok9 endpointsWork the conversations of connected TikTok accounts and put an agent on each account.

For AI assistants

Every page of the docs has a Markdown version: add .md to its URL. The full reference is also listed in llms.txt, and in full in llms-full.txt, so coding assistants can read it directly. For coding agents that build an integration, SKILL.md is a step-by-step guide they can follow.

introduction.mdllms.txtllms-full.txtSKILL.md
NextAuthentication
© 2026 Nabrah. All rights reserved.
ChangelogPrivacy PolicyTerms of Service

On this page

  • Base URL
  • Authentication
  • Make your first request
  • Errors
  • Endpoints
  • For AI assistants