CallQA developer documentation
CallQA tests voice services with real phone calls. You describe a test scenario, CallQA calls your AI agent, IVR or contact center once per test case, judges each call against your checks, and gives you a score, a verdict and the full trace. Everything in the dashboard is also available through a REST API, so you can run voice tests from your CI/CD pipeline.
Start here
- Quickstart: from an API key to your first report in 5 minutes.
- Concepts: targets, scenarios, variants (test cases), environments, versions, runs, calls, traces, verdicts, scores and tags.
Guides
- Authentication and security: API keys, scopes, roles, rotation, IP restriction, audit log.
- Writing scenarios: editor, import, validate, variants, schedules, the assistant, the test case builder, plan limits.
- Environments: development, staging, production; which scenario runs where and when, versions and their promotion, compare environments, stability.
- CI/CD integration: GitHub Actions, GitLab CI, Jenkins, quality gates.
- MCP server: connect Claude Code, Cursor or VS Code; your coding agent runs the tests, reads the failures and fixes your voice agent.
- Webhooks: events, payloads, signature verification (Python, Node, Go), secret rotation.
- Alerts: Slack and email messages when a run fails, its score drops or calls get slow.
- Replay and bundles: reproduce a call, turn it into a regression test, export a failure for an LLM.
- Billing, quota and wallet: units, prepaid wallet, spend cap, plans, credit errors.
- Number verification: prove you control a number, sandbox, limits.
- Compliance review: what scenarios are refused, how you see it, how to appeal.
Reference
- API reference: every endpoint, with the scope it needs.
Machine readable:
api/openapi.json. - Scenario grammar reference: every field of a scenario.
Machine readable:
reference/scenario.schema.json. - Errors and HTTP status codes
- Rate limits and other limits
- Versioning, compatibility and deprecation policy
- FAQ
- Changelog
Examples
examples/scenarios/: 7 ready-to-import scenarios (booking, cancellation, IVR with DTMF, payment with a test card, Spanish, transfer to a human, minimal).examples/cli/callqa: a one-file command line client (Python stdlib).examples/ci/: GitHub Action, GitHub workflows, GitLab CI, Jenkinsfile.examples/webhooks/: webhook receivers that verify signatures.
Conventions used in these docs
- Base URL:
https://app.callqa.dev/api/v1. - Examples use
curlandjq, with your key in theCALLQA_API_KEYenvironment variable. - Ids are UUIDs, except API keys, tags, members and alert channels, which have integer ids.
- Timestamps are ISO 8601 in UTC. Money is in US cents (
cost_cents,amount_cents). - Durations are in milliseconds (
*_ms) or seconds (*_s), as the field name says.
These pages are also served, rendered, on https://app.callqa.dev/docs/, with a search box
(/docs/search/?q=...) and the live OpenAPI document at /docs/api/openapi.json. The
API explorer at /api/v1/docs lets you try every endpoint with your key from the browser.
The API reference, the grammar reference, the OpenAPI document and the JSON Schema are generated from the code, so they match the running API.