# CallQA

> CallQA tests voice AI agents, IVR and IVA with real phone calls. You describe a test scenario, CallQA calls your phone number once per test case, judges each call against your checks and returns a verdict, a 0-100 score, the transcript and the recording. Everything is available through a REST API, CI/CD integrations and an MCP server for coding agents.

Sign up for a free trial of 10 test calls, no card needed: https://app.callqa.dev/accounts/signup/. Plans and prices: https://app.callqa.dev/docs/billing.md.

## Docs: Start here

- [Overview](https://app.callqa.dev/docs/index.md): 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...
- [Quickstart: your first report in 5 minutes](https://app.callqa.dev/docs/quickstart.md): CallQA calls your voice agent like a real customer, then grades the call. Two ways to start: let your coding agent do it (recommended), or do it by hand...
- [Concepts](https://app.callqa.dev/docs/concepts.md): In the dashboard, Scenarios holds scenarios and their test cases, Monitoring the runs, calls, phone numbers and reports, and Dashboard the overview and the...

## Docs: Guides

- [Authentication and security](https://app.callqa.dev/docs/authentication.md): Every API request is authenticated with an organization API key, sent as a bearer token.
- [Number verification](https://app.callqa.dev/docs/number-verification.md): CallQA places real calls. To make sure nobody uses it to call someone else's line, every number is verified once before runs, schedules and CI runs can call...
- [Writing scenarios](https://app.callqa.dev/docs/scenarios.md): A scenario is a YAML (or JSON) document. This guide shows how to write, validate and manage them. Every field is described in the grammar reference.
- [Compliance review of scenarios](https://app.callqa.dev/docs/compliance.md): CallQA places real phone calls. To keep it a testing tool and nothing else, every scenario is reviewed against the Acceptable Use Policy before it can call...
- [Environments](https://app.callqa.dev/docs/environments.md): Your voice agent probably runs in several places: a development build, a staging copy and production. CallQA models them as environments, so the same...
- [CI/CD integration](https://app.callqa.dev/docs/ci-cd.md): Run your voice tests on every deploy and fail the pipeline when quality drops below your threshold. There are two ways to wait for the result.
- [MCP server: let your coding agent test your voice agent](https://app.callqa.dev/docs/mcp.md): CallQA runs a Model Context Protocol server. Connect your coding agent (Claude Code, Cursor, Codex, VS Code, or any MCP client) and ask it, in plain words.
- [Webhooks](https://app.callqa.dev/docs/webhooks.md): CallQA sends an HTTPS POST to your endpoint when a call or a run finishes, fails, or when a score drops. Use webhooks instead of polling, and to pipe...
- [Alerts (Slack and email)](https://app.callqa.dev/docs/alerts.md): Alerts warn people when a test run goes wrong: a message in a Slack channel or an email, a few seconds after the run completes. No code, no relay. For...
- [Replay and bundles](https://app.callqa.dev/docs/replay.md): A customer complains about a call. You want to reproduce it exactly, attach it to a bug report, and make sure it never breaks again. That is what replay...
- [Billing, quota and wallet](https://app.callqa.dev/docs/billing.md): CallQA never advances money: a call is only placed when your quota or your prepaid wallet can cover it.
- [Getting help](https://app.callqa.dev/docs/support.md): Something fails, a result looks wrong, or you have a question: ask the CallQA team. A person of the team reads every ticket and answers, usually within a...

## Docs: Reference

- [API reference](https://app.callqa.dev/docs/api-reference.md): Base URL: https://app.callqa.dev/api/v1. Version: 1.0.0. 124 endpoints.
- [Scenario grammar reference](https://app.callqa.dev/docs/reference/scenario-grammar.md): Grammar version: schema_version: 1. This page is generated from the models the server uses to validate scenarios, and every example on it is checked with...
- [Errors and HTTP status codes](https://app.callqa.dev/docs/errors.md): Errors are JSON with a human readable detail and, when available, a stable machine code.
- [Rate limits and other limits](https://app.callqa.dev/docs/rate-limits.md): Handle 429 by waiting Retry-After seconds and retrying. The CLI does it for you.
- [Versioning and compatibility](https://app.callqa.dev/docs/versioning.md): CallQA versions each contract separately, so one can evolve without breaking the others.
- [FAQ](https://app.callqa.dev/docs/faq.md): Does CallQA really place phone calls? Yes. Each test case is a real call over the phone network (SIP/PSTN) to your number, like a customer would make. That...
- [Changelog](https://app.callqa.dev/docs/changelog.md): Changes to the public API, the scenario grammar, bundles and scoring. Newest first.

## API and MCP

- [OpenAPI document](https://app.callqa.dev/api/v1/openapi.json): the live schema of the REST API (base URL https://app.callqa.dev/api/v1, `Authorization: Bearer cqa_...`)
- [API explorer](https://app.callqa.dev/api/v1/docs): every endpoint, with a test request button
- [MCP server](https://app.callqa.dev/docs/mcp.md): Streamable HTTP at https://app.callqa.dev/mcp, authenticated with an API key. Claude Code: `claude mcp add --transport http callqa https://app.callqa.dev/mcp --header "Authorization: Bearer $CALLQA_API_KEY"`
- [Full documentation in one file](https://app.callqa.dev/llms-full.txt)
