Account
Logs
The console's Logs page shows what happened in your workspace in one place: every call, every webhook delivery, every request your API keys and connected apps made, and the server logs, each with filters you can share as a link and an export to CSV.
In the console
Logs has four tabs. Each one has a time range (last hour, 24 hours, 7 days, 30 days, or a custom range), filters kept in the page URL, Refresh, and Export (a CSV of the tab with the filters on screen). The header says when the data was last updated; the open tab refreshes itself every few seconds.
| Tab | Shows | Needs |
|---|---|---|
| Calls | Every call: id, agent, the agent’s number, the customer’s number, type, how it ended, start time, duration and cost. Filter by call id, agents, phone numbers, call types, customer number and status; sort by start time, duration or cost. Click a row for the transcript, recording and timeline. | calls.view |
| Webhooks | Webhook deliveries: event, endpoint, status, response code, attempts, time and latency. Click a row for the request body and your server’s response, and retry it. | keys.manage |
| API | Requests made with your API keys and connected apps (OAuth): method, path, status, key, latency and request id. | keys.manage |
| System | The server logs of your workspace: the API, the call engine and the providers. | logs.view |
The Calls export uses GET /api/v1/calls/export with the same filters. The other tabs export at most 5,000 rows.
API request log
Every request made with one of your workspace’s API keys (vx_...) or a connected app’s OAuth token (vxo_...) is recorded, so you can see what your integrations call and spot failing requests. Requests made from the console by people signed in are not recorded here (changes they make are in the audit log).
Each record keeps:
| Field | Meaning |
|---|---|
id | The record’s id (req_...). |
at | When the request ended. |
method | GET, POST, … |
path | The path, for example /api/v1/calls/5b0e3c1f.... The query string is never stored, and a path segment that looks like a secret is replaced with {redacted}. |
status | The HTTP status the API answered with, including 403, 422 and 429. |
latency_ms | How long the API took to answer. |
kind | key for an API key, app for a connected app. |
key_id, key_name | The key’s id and name, or app:<connection id> and “<person> via <app>” for a connected app. |
request_id | The X-Request-ID of the response; quote it when you ask for support. |
Request and response bodies, headers and keys are never stored. Records are kept for 30 days. Recording happens after the response is sent and never slows a request down.
List requests
GET /api/v1/logs/requests (keys.manage), newest first:
curl "https://voxa.abhinavyadav.in/api/v1/logs/requests?status=4xx&since=2026-10-01T00:00:00%2B05:30&limit=20" \
-H "X-API-Key: $VOXA_API_KEY"
{
"items": [
{
"id": "req_8f2c1d0e9b7a46d5a3c2b1e0f9d8c7b6",
"at": "2026-10-02T11:04:09.412000+05:30",
"method": "POST",
"path": "/api/v1/agents/a1b2c3d4e5f60718293a4b5c6d7e8f90/call",
"status": 402,
"latency_ms": 18,
"kind": "key",
"key_id": "4c1f0e2d3b4a5968778695a4b3c2d1e0",
"key_name": "CRM",
"request_id": "0c7ca00a5e1b4f2d"
}
],
"total": 1
}
| Query parameter | Default | Notes |
|---|---|---|
since, until | Requests at or after since and before until (ISO 8601). | |
method | One method, or several separated by commas. | |
status | A code (404), a class (2xx, 4xx, 5xx) or error (every status from 400). | |
key_id | One key id (or app:<id>), or several separated by commas. | |
q | Text to find in the path. | |
limit | 50 | 1 to 200. |
skip | 0 | For paging. |
GET /api/v1/logs/requests/keys lists the keys and apps that appear in the log (key_id, key_name, kind), for a filter.
Webhook deliveries and server logs
- Webhook deliveries:
GET /api/v1/webhooks/deliveries, withsince,until,event_type,status,endpoint_idandcall_id. See Delivery log. - Server logs:
GET /api/v1/logs(logs.view), withlevel(a level and everything above it),source,call_id,q(text in the message),sinceanduntil. Kept for 14 days.