Events and logs
Logs and analytics
Every call leaves a full record you can query: its event timeline and transcript, plus totals across all your calls and the seconds you've used.
One call
The event timeline and transcript for a single call are covered under Calls:
GET
/v1/calls/{id}/events GET
/v1/calls/{id}/transcript Stats
GET
/v1/stats Totals across your calls. By default this covers the current calendar month; pass since and until (ISO 8601) for another range.
curl http://localhost:8000/v1/stats \
-H "Authorization: Bearer $OFFHOOK_KEY"{
"total_calls": 1284,
"by_status": { "completed": 1180, "failed": 104 },
"by_error_code": { "no_answer": 71, "busy": 22, "carrier_error": 11 },
"failure_rate": 0.081,
"total_seconds": 41230,
"avg_seconds": 34.9
} Usage
GET
/v1/usage
Billable seconds and number of calls. By default this covers the current calendar
month; pass from and to (ISO 8601) for another range.
curl "http://localhost:8000/v1/usage?from=2026-09-01T00:00:00Z&to=2026-10-01T00:00:00Z" \
-H "Authorization: Bearer $OFFHOOK_KEY"{
"from": "2026-09-01T00:00:00Z",
"to": "2026-10-01T00:00:00Z",
"total_seconds": 41230,
"call_count": 1180
} In the dashboard
If you run the optional dashboard, it shows the same information without any code: a call list, each call's timeline and transcript, and charts. See Self-hosting.