Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.astradial.com/llms.txt

Use this file to discover all available pages before exploring further.

The Astradial API supports three authentication methods depending on your use case. The simplest way to authenticate. Create an API key from the dashboard and include it in every request. Header format:
X-API-Key: ak_your_api_key_here
Example:
curl -X GET https://your-server:8000/api/v1/calls \
  -H "X-API-Key: ak_1a2b3c4d5e6f7890abcdef..."

Create an API key

  1. Go to API & Webhooks in the sidebar
  2. Click Create Key
  3. Enter a name and select permissions
  4. Copy the key immediately — it is only shown once

API key permissions

Each key can have specific permissions:
PermissionWhat it allows
calls.readRead call logs
calls.writeManage calls
calls.click_to_callInitiate click-to-call
calls.originate_aiOriginate calls to AI agents
calls.recordingAccess call recordings
calls.liveView live calls
calls.transferTransfer active calls
calls.hangupHang up active calls
calls.holdHold/unhold active calls
API keys are scoped to your organization. You can only access your own data.

JWT bearer token

For user-level authentication, use a JWT token obtained from the login endpoint. Get a token:
curl -X POST https://your-server:8000/api/v1/auth/user-login \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "your-password"}'
Response:
{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "user": {
    "id": "...",
    "email": "[email protected]",
    "role": "admin"
  }
}
Use the token:
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
JWT tokens expire after 24 hours.

Internal API key (server-to-server)

For internal service communication between your own services and Astradial. This bypasses organization-level auth.
X-Internal-Key: your-internal-api-key
The internal API key has full access to all organizations. Only use it for trusted server-to-server communication. Never expose it in client-side code.

Response codes

CodeMeaning
200Success
201Created
400Bad request — check your parameters
401Unauthorized — invalid or missing credentials
403Forbidden — insufficient permissions
404Not found
409Conflict — duplicate resource
500Server error