# Speechmatics docs: AI Agent Readiness Score 65.0% (D)

**65.0% · 52/80 · AI Agent Readiness Score · 22/30 reading points · 30/50 agent surface points**

Speechmatics received 8 PASS votes and passed 3 of five agent surface checks. The clearest finding came from the verify a transcription notification task.

- Tested: 2026-08-20
- Published: 2026-09-21
- Battery: v1
- Scoring: reading 30 pts · surface 50 pts
- Docs: https://docs.speechmatics.com/

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Speechmatics’s public documentation independently and attempted five first-hour developer jobs: transcribe the first audio file, find the exact batch limits, recover from a 429, verify a transcription notification, use the Python batch SDK.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check.

## Freshness

[How rechecks work](https://docsforagents.com/methodology/#freshness)

- Category: [Voice & speech](https://docsforagents.com/grades/?category=voice)
- Tested: 2026-08-20
- Quotes verified: 2026-08-20
- Surface rechecked: 2026-09-21

No change since the test.

5 of 5 quoted passages still appear on the live pages.

## Agent surface checks · 30/50

| Check | Verdict | Points |
| --- | --- | --- |
| llms.txt | PASS | 10 |
| llms-full.txt | PASS | 10 |
| Markdown mirror | PASS | 10 |
| MCP server | FAIL | 0 |
| Docs AI | FAIL | 0 |

## The Reading Test · 22/30

| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
| --- | --- | --- | --- | --- |
| Transcribe the first audio file | PASS | PASS | PASS | PASS |
| Find the exact batch limits | PASS | PASS | PASS | PASS |
| Recover from a 429 | PARTIAL | PARTIAL | FAIL | PARTIAL |
| Verify a transcription notification | PARTIAL | PARTIAL | PASS | PARTIAL |
| Use the Python batch SDK | PARTIAL | PARTIAL | PASS | PARTIAL |

Docs platform: Docusaurus 3.9.2 (unscored) · verified 2026-08-20

## What to fix first

These 5 fixes could add up to 28 points to the AI Agent Readiness Score. The list ranks each fix by the points it would add. [How the ranking works](https://docsforagents.com/methodology/#what-to-fix-first)

1. **+10 points · MCP server · check failed**

   **Found:** Candidate endpoints returned errors and no valid MCP response.

   **Fix:** Run a public MCP server for the docs that answers a JSON-RPC initialize call and offers a docs search tool.

   **Evidence:** [docs.speechmatics.com/mcp](https://docs.speechmatics.com/mcp)

2. **+10 points · Docs AI · check failed**

   **Found:** The live docs expose standard search but no public assistant control.

   **Fix:** Add an assistant to the docs site that answers questions from the docs and links to its sources.

3. **+4 points · Recover from a 429 · PARTIAL**

   **Found:** The Troubleshooting page suggests a 1-second delay but gives no retry steps, backoff, or remedy for the concurrent-jobs limit.

   **Fix:** Document retry steps with backoff for the rate-limit 429 and the max-concurrent-jobs 429 on the Troubleshooting page.

   **Evidence:** [docs.speechmatics.com/speech-to-text/batch/troubleshooting](https://docs.speechmatics.com/speech-to-text/batch/troubleshooting)

4. **+2 points · Verify a transcription notification · PARTIAL**

   **Found:** The Notifications page says delivery retries until a set timeout threshold but does not state the threshold. Opus 5 also found no retry interval.

   **Fix:** State the notification retry timeout and the interval between delivery attempts on the Notifications page.

   **Evidence:** [docs.speechmatics.com/speech-to-text/batch/notifications](https://docs.speechmatics.com/speech-to-text/batch/notifications)

5. **+2 points · Use the Python batch SDK · PARTIAL**

   **Found:** The quickstart's AsyncClient call sets no endpoint, and the docs do not state the default endpoint. Opus 5 also found the url argument only on an on-prem page.

   **Fix:** State which endpoint AsyncClient uses by default, and show its url argument for a regional endpoint in the quickstart.

   **Evidence:** [docs.speechmatics.com/speech-to-text/batch/quickstart](https://docs.speechmatics.com/speech-to-text/batch/quickstart)

## What the docs get right

- **Transcribe the first audio file: 3 PASS votes.** One quickstart covers key creation, package installation, sample audio, AsyncClient submission, completion waiting, and transcript printing.
- **Find the exact batch limits: 3 PASS votes.** One limits page states 10 new jobs per second, 50 status requests per second, 20,000 concurrent jobs, under 1 GB, and seven days.
- **3 of 5 agent surface checks.** Present: llms.txt, llms-full.txt, markdown mirrors. Missing: an MCP server, docs AI.

## Transcribe the first audio file

**PASS**

PASS consensus from 3 PASS.

One quickstart covers key creation, package installation, sample audio, AsyncClient submission, completion waiting, and transcript printing. The Batch quickstart gives four numbered steps, create a portal API key, pip install speechmatics-batch, download example.wav, run a script whose single client.transcribe call submits, waits, and returns result.transcript_text, with the expected console output printed for comparison. The quickstart gives a clean 4-step path: create an API key, install the library, grab a sample file, and run the provided code.

## Find the exact batch limits

**PASS**

PASS consensus from 3 PASS.

One limits page states 10 new jobs per second, 50 status requests per second, 20,000 concurrent jobs, under 1 GB, and seven days. One page states all four values with matching scopes, 10 new jobs per second on POST, 50 job status requests per second on GET, a 20,000 concurrent-job backstop, a 1 GB cap on files sent in the /jobs POST body with fetch-URL as the documented path for larger files, and 7-day retention, and no other page contradicts them. All five limits (POST rate, GET rate, concurrency ceiling, file size, retention) are documented on a single page with consistent values and clear scopes.

## Recover from a 429

**PARTIAL**

PARTIAL consensus from 2 PARTIAL, 1 FAIL.

The docs prescribe a one-second delay for rate limits but do not explain retries or recovery from the 20,000-job ceiling. The docs identify the two distinct 429 conditions but never document a Retry-After header, a backoff schedule, a retry ceiling, or any remedy specific to HTTP 429 - Max concurrent running jobs exceeded, and the blanket one-second-delay advice does not reconcile with the published 50 GET requests per second allowance. The docs explain what causes 429s and list the recommended rate ceilings, but give no recovery guidance: no Retry-After header, no backoff strategy, and no retry procedure for either rate-limit or concurrency 429s.

## Verify a transcription notification

**PARTIAL**

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The page covers configuration, authentication, allowlists, 2xx acknowledgement, ordering, and failures, but gives no retry timeout value. Egress IP allowlists per region, auth_headers, the id and status query parameters, the Speechmatics-API/2.0 user agent, parallel callback ordering, and the errors array on GET /jobs/$JOBID are all documented, but the retry policy is described only as an unquantified "set timeout threshold" with no retry count, interval, or total budget, and there is no request signature to authenticate the sender beyond IP allowlisting. Configuration, egress IP allowlisting, retry semantics, parallel ordering, and failure diagnostics via the errors element are all documented. The timeout threshold value is unspecified but the retry mechanism is clear.

## Use the Python batch SDK

**PARTIAL**

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The example matches AsyncClient, but the endpoint table omits its default hostname; a guessed client.py source URL returned 404. The quickstart snippet installs and runs exactly as asked and its TranscriptionConfig fields map cleanly onto the API transcription_config, but the docs contain no reference page for the SDK, the SDKs page is a set of cards linking out to GitHub, and the AsyncClient url= argument that would target us1 or au1 appears only inside the on-prem batch persistent worker page as url="address.of.container:PORT/v2". The quickstart shows the correct pip command and a working example using speechmatics.batch.AsyncClient with transcribe(), which matches the published SDK's API.

## The receipt

> If the Speechmatics Batch SaaS does not receive a 2xx response (that the request is successfully received, understood, or accepted) it will keep trying to send the file until it reaches the set timeout threshold.

The page covers configuration, authentication, allowlists, 2xx acknowledgement, ordering, and failures, but gives no retry timeout value.

- [docs.speechmatics.com/speech-to-text/batch/notifications](https://docs.speechmatics.com/speech-to-text/batch/notifications)

## Agent surface notes

Candidate endpoints returned errors and no valid MCP response.

The live docs expose standard search but no public assistant control.

## Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five agent surface checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 3 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-20.

Methodology: https://docsforagents.com/methodology/

Canonical URL: https://docsforagents.com/reports/speechmatics-docs-ai-agent-readiness/
