SCC to SRT API - Convert SCC to SRT API: Pricing, Documentation
by Pixazo
SCC files hide their captions inside CEA-608 control bytes that no web player can read. The Pixazo SCC to SRT API decodes those Scenarist Closed Caption command codes back into human-readable SubRip cues, timing intact, so broadcast captions become web-ready subtitles with one call. Prefer a no-code option? The same conversion is available free in your browser as the SCC to SRT Converter.

Models Version
Get $5 Free Credit on First Payment
No strings attached — add funds and get $5 bonus instantly
SCC to SRT API Documentation
Authentication
Every request is authenticated with your Pixazo API key in the Ocp-Apim-Subscription-Key header — the same key across every Pixazo endpoint.
| Header | Required | Value |
|---|---|---|
Ocp-Apim-Subscription-Key | Yes | Your Pixazo API key |
SCC to SRT generate request
A Scenarist Closed Caption (.scc) file stores captions as hexadecimal line-21 control codes indexed to SMPTE timecode, which is exactly what broadcast systems need and exactly what HTML5, YouTube, and localization tools cannot parse. Going the other direction, from SCC to SRT, means decoding those control bytes, reconstructing pop-on, roll-up, and paint-on caption rows into discrete text cues, and translating timecode back into the millisecond ranges SubRip expects. The Pixazo caption-convert endpoint handles that decode step and emits a clean .srt file you can drop into any player or translation memory. This unlocks reuse of broadcast caption assets on the open web without re-transcribing, and because the source file is never altered you can re-run the conversion any time. Jobs are processed asynchronously and identified by a request_id.
Endpoint: POST https://gateway.pixazo.ai/media-tools/v1/caption-convert
Request Code
curl -X POST 'https://gateway.pixazo.ai/media-tools/v1/caption-convert' \
-H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"subtitle_url":"https://example.com/input.scc","to_format":"srt","source_format":"scc"}'Output
{
"request_id": "req_9f3c1a7b2e",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e"
}Webhook (Optional)
Instead of polling, include a webhook_url in the request body and Pixazo will POST the completed job payload to that URL when the conversion finishes. The webhook body is identical to the completed-status response shown under Retrieving Results.
Request Parameters
| Parameter | Required | Type | Default | Allowed | Description |
|---|---|---|---|---|---|
subtitle_url | Required | string | — | HTTP(S) URL | URL of the source caption file. |
to_format | Required | string | — | srt, vtt, scc | Target caption format. This page documents "srt". |
source_format | Required | string | — | srt, vtt, scc, ass, ssa, sub | Format of the source file. Required — inputs are re-hosted without their extension, so it cannot be inferred. |
clean | Optional | boolean | false | true / false | Strip formatting tags and positioning from the cues. |
webhook_url | Optional | string | — | HTTP(S) URL | Receive the completed job via webhook instead of polling. |
Example Request
curl -X POST 'https://gateway.pixazo.ai/media-tools/v1/caption-convert' \
-H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"subtitle_url":"https://example.com/input.scc","to_format":"srt","source_format":"scc"}'Response
Every request returns a request_id immediately with a QUEUED status. Use the polling_url (or a webhook) to retrieve the finished file.
{
"request_id": "req_9f3c1a7b2e",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e"
}Request Headers
| Header | Required | Value |
|---|---|---|
Ocp-Apim-Subscription-Key | Yes | Your Pixazo API key |
Content-Type | Yes | application/json |
Response Handling
The submit call returns one of the HTTP status codes below. A 202 means the job was accepted — everything else is an error you should handle.
| Code | Meaning |
|---|---|
| 202 | Accepted — the job was queued; poll the status URL. |
| 400 | Bad request — a parameter is missing or invalid. |
| 401 | Unauthorized — missing or wrong API key. |
| 402 | Payment required — insufficient balance. |
| 429 | Too many requests — you are being rate-limited. |
| 500 | Server error — transient; retry with backoff. |
Error Responses
Errors return a JSON body with a machine-readable code and a human-readable message.
{
"request_id": "req_9f3c1a7b2e",
"status": "FAILED",
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Your account balance is too low to process this request."
}
}Retrieving Results
Poll the status endpoint until the job reaches COMPLETED (or FAILED).
curl 'https://gateway.pixazo.ai/v2/requests/status/req_9f3c1a7b2e' \
-H 'Ocp-Apim-Subscription-Key: YOUR_API_KEY'Response (Completed)
{
"request_id": "req_9f3c1a7b2e",
"status": "COMPLETED",
"model_id": "caption-convert",
"output": {
"media_url": "https://api-assets.pixazo.ai/out/result.srt",
"media_type": "SRT"
},
"error": null,
"created_at": "2026-01-01T00:00:00Z",
"completed_at": "2026-01-01T00:00:04Z"
}Response Fields
| Field | Type | Description |
|---|---|---|
request_id | string | Unique id for this job. |
status | string | One of the job status values below. |
output.media_url | string | URL of the converted file (when completed). |
output.media_type | string | Output format (SRT). |
error | object | null | Populated only when status is FAILED. |
Status Values
| Status | Meaning |
|---|---|
| QUEUED | Job accepted, waiting for a worker. |
| PROCESSING | Conversion in progress. |
| COMPLETED | Done — the output URL is in the response. |
| FAILED | The job could not be completed; see error. |
SCC to SRT API Pricing
⚡ Performance
Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).
〰 Uptime
Percent of generations that succeeded over the selected period, per model version.