# x402 Speech-to-Text Transcription & Translation

> x402 Speech-to-Text Transcription & Translation is a paid API for AI agents from x402-gateway.blackwoodstate8.workers.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-23).

Transcribes or translates an audio file at a public URL using Whisper, returning timed segments, language detection, and full text asynchronously via a job polling model

## Facts

- Endpoint: POST https://x402-gateway.blackwoodstate8.workers.dev/v1/speech-to-text?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-speech-to-text-transcription-translation-d05284eb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_z5d6BtrPN4rWnl9cUNDU7

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability x402-speech-to-text-transcription-translation-d05284eb -d '<json body>'
```

Example prompt: Can you transcribe this podcast recording for me? The audio is at https://example.com/episode42.mp3 — just transcribe it and give me the full text with timestamps.

## When to prefer this

Choose this endpoint when you need Whisper-quality audio transcription or English translation from a publicly accessible audio URL, especially for files under 10 MB in common formats (mp3, wav, ogg, m4a, webm). It is ideal when you need timed segments alongside the transcript and can tolerate ~20-second async processing. Do not use when you need real-time transcription, speaker diarization/labels, audio files over 10 MB, or direct file uploads rather than URL-based input.

## Known failure modes

- Audio file exceeds 10 MB — service rejects or returns error
- URL is not publicly accessible or returns a non-200 status
- Unsupported audio format (not mp3, wav, ogg, m4a, or webm)
- Job expires before polling completes — expiresAt timestamp passed
- Payment rejected or insufficient USDC balance — x402 payment fails
- Language code does not match ISO 639-1 two-letter format
- Poll URL returns job still queued after extended wait

## How this service works

Use when you need speech to text transcription or translation of an audio file at a public URL. Do not use for audio over 10 MB or speaker labels. Returns JSON with a Whisper transcription of an audio file: text, timed segments and language, or an English translation for 0.005 USDC per megabyte, up to 0.05 USDC per call (clients without upto pay the cap). Asynchronous: the paid call returns a jobId and a free pollUrl; typical job time 20000 ms (p95). Category: Media.

## Output

An asynchronous job response containing a jobId and a pollUrl. After polling (typically ~20 seconds), the result includes the full transcription text, timed word/segment-level timestamps, and the detected or specified spoken language. For translate tasks, the result is an English translation of the audio content.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri",
       "maxLength": 2048,
       "description": "Public http(s) URL of the audio file, e.g. https://example.com/talk.mp3 (mp3, wav, ogg, m4a, webm; up to 10 MB)"
      },
      "task": {
       "enum": [
        "transcribe",
        "translate"
       ],
       "type": "string",
       "description": "transcribe keeps the spoken language; translate returns English (transcribe when omitted)"
      },
      "language": {
       "type": "string",
       "pattern": "^[a-z]{2}$",
       "description": "ISO 639-1 code of the spoken language, e.g. en or pt (detected when omitted)"
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "jobId",
      "pollUrl",
      "expiresAt",
      "status"
     ],
     "properties": {
      "next": {
       "type": "object",
       "required": [
        "service",
        "tool",
        "method",
        "url",
        "useWhen",
        "sample"
       ],
       "properties": {
        "url": {
         "type": "string",
         "description": "Paid route of the next call"
        },
        "tool": {
         "type": "string",
         "description": "MCP tool name of the same call"
        },
        "method": {
         "enum": [
          "GET",
          "POST"
         ],
         "type": "string"
        },
        "sample": {
         "type": "string",
         "description": "Free fixed sample of the whole family"
        },
        "service": {
         "type": "string",
         "description": "Service id of the suggested next paid call"
        },
        "useWhen": {
         "type": "string",
         "description": "When the next call is t
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "jobId": "job_00000000000000000000000000000000",
  "status": "queued",
  "pollUrl": "https://gateway.example/v1/speech-to-text/jobs/job_00000000000000000000000000000000",
  "expiresAt": "2026-01-31T00:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-speech-to-text-transcription-translation-d05284eb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-gateway.blackwoodstate8.workers.dev](https://www.zero.xyz/host/x402-gateway.blackwoodstate8.workers.dev/llms.txt)
