Documentation Index
Fetch the complete documentation index at: https://orbit-docs.devotel.io/llms.txt
Use this file to discover all available pages before exploring further.
Analytics
Orbit’s Analytics endpoints expose the same time-series, cohort, and funnel datasets that power the dashboard’s Insights page. Use them to embed Orbit metrics in your internal BI tooling, run scheduled exports to a data warehouse, or programmatically alert on delivery / spend regressions. All analytics endpoints respect the same per-API-key allowlist + rate limits as the rest of the API. Aggregations are computed against materialised per-tenant rollups, refreshed every 60 seconds.Query a metric
Response
Available metrics
| Metric | Description |
|---|---|
messages.sent / messages.delivered / messages.failed | Outbound message counters by channel + destination MCCMNC. |
messages.inbound | Inbound MO counts by channel. |
messages.cost_cents | Wallet debit per channel + destination. |
calls.placed / calls.completed / calls.failed | Voice call counters with disposition (answered, busy, no_answer, etc.). |
calls.minutes / calls.cost_cents | Voice utilization + spend. |
agents.conversations_total / agents.handoff_rate | AI agent volume + escalation share. |
webhooks.delivered / webhooks.failed / webhooks.dlq_size | Webhook delivery health. |
wallet.balance_cents | Wallet balance time-series (per currency). |
Group-by dimensions
channel, direction, destination_country, destination_mccmnc, agent_id, campaign_id, flow_id, webhook_endpoint_id.
Multiple group_by= params can be passed; the response shape becomes a nested object keyed by the dimension stack.
Funnels
Common errors
| Code | HTTP | Cause | Fix |
|---|---|---|---|
ANALYTICS_RANGE_TOO_WIDE | 422 | Requested range exceeds 90 days for interval=hour or 2 years for interval=day. | Narrow the range or aggregate to a coarser interval. |
ANALYTICS_INVALID_METRIC | 400 | Metric name not recognised. | See the metric table above. |
ANALYTICS_GROUP_BY_TOO_DEEP | 422 | More than 3 simultaneous group_by dimensions. | Drop the least useful dimension. |
ANALYTICS_RATE_LIMITED | 429 | Per-key rate limit exceeded. | Honour Retry-After; the Analytics endpoints share the platform-wide 1000 req/min cap. |
Export to a data warehouse
For ongoing exports, prefer the/v1/exports/start endpoint over polling /analytics/metrics. Exports stream to a signed Cloud Storage URL in JSONL or Parquet, scheduled hourly / daily, with delivery confirmation via webhook.