Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: transcriptdock-com Jobs API
version: '2026-10-31'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-31: 24 operation(s) read from 22 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; transcriptdock-com has published no machine-readable contract that the pipeline could find. Engine: anthropic.'
x-evidence-tiers:
code-example: 2
documentation: 22
pages-with-code: 15
pages-read: 22
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-31'
x-generator: generate-contract-from-docs.py
x-engine: anthropic
x-sources:
- https://www.transcriptdock.com/docs/api-reference
- https://www.transcriptdock.com/docs/quickstart
- https://www.transcriptdock.com/docs/openapi.yaml
- https://api.transcriptdock.com
- https://www.transcriptdock.com/docs/platforms
- https://www.transcriptdock.com/docs/youtube-transcript
- https://www.transcriptdock.com/docs/tiktok-transcript
- https://api.transcriptdock.com/platforms/youtube
- https://api.transcriptdock.com/platforms/tiktok
- https://api.transcriptdock.com/platforms/upload
- https://api.transcriptdock.com/docs
- https://api.transcriptdock.com/status
- https://api.transcriptdock.com/platforms/direct
- https://api.transcriptdock.com/docs/platforms
- https://api.transcriptdock.com/docs/quickstart
- https://api.transcriptdock.com/llms-full.txt
- https://api.transcriptdock.com/use-cases/youtube-transcript-api
- https://api.transcriptdock.com/use-cases/tiktok-transcript-api
- https://api.transcriptdock.com/use-cases/podcast-transcription-api
- https://api.transcriptdock.com/docs/api-reference
- https://api.transcriptdock.com/docs/openapi.yaml
- https://api.transcriptdock.com/docs/llms-txt
servers:
- url: https://transcriptdock.com
security:
- bearer: []
tags:
- name: Jobs
paths:
/v1/jobs:
get:
operationId: get_v1_jobs
tags:
- Jobs
summary: Job history
x-source: https://www.transcriptdock.com/docs/api-reference
parameters:
- name: limit
in: query
required: false
schema:
type: integer
description: 1 to 100
- name: cursor
in: query
required: false
schema:
type: string
description: Pass the response's next_cursor back as cursor for the next page.
- name: platform
in: query
required: false
schema:
type: string
description: Filter by platform
- name: source_id
in: query
required: false
schema:
type: string
description: The source.media_id of a job
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1JobsResponse'
x-evidence:
kind: documentation
post:
operationId: post_v1_jobs
tags:
- Jobs
summary: POST /v1/jobs
x-source: https://www.transcriptdock.com/docs/api-reference
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: 'curl Python Node.js Copy # 1. Submit curl -X POST https://www.transcriptdock.com/v1/jobs \ -H "Authorization: Bearer td_live_YOUR_KEY" \ -H "Idempotency-Key: video-7680721699171601694" \ -H "Content-Type: application/json" \ -d ''{ "source": { "url": "https://www.tiktok.com/@tiktok/video/7680721699171601694" }, "mode": "captions_only" }'' # 2. Wait (returns as soon as the job finishes, up to 25 s '
/v1/jobs/{id}:
get:
operationId: get_v1_jobs_id
tags:
- Jobs
summary: Job status, waits up to 25 s
x-source: https://www.transcriptdock.com/docs/api-reference
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: wait
in: query
required: false
schema:
type: integer
description: 0 to 25 seconds
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/GetV1JobsIdResponse'
x-evidence:
kind: documentation
/v1/jobs/{id}/cancel:
post:
operationId: post_v1_jobs_id_cancel
tags:
- Jobs
summary: Cancel a queued job
x-source: https://www.transcriptdock.com/docs/api-reference
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1JobsIdCancelResponse'
x-evidence:
kind: documentation
/v1/jobs/{id}/retry:
post:
operationId: post_v1_jobs_id_retry
tags:
- Jobs
summary: Retry a failed job
x-source: https://www.transcriptdock.com/docs/api-reference
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1JobsIdRetryRequest'
responses:
'202':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1JobsIdRetryResponse'
x-evidence:
kind: documentation
components:
schemas:
GetV1JobsResponse:
type: object
properties:
id:
type: string
description: Job id.
status:
type: string
description: queued → processing (→ awaiting_provider during AI transcription) → succeeded, failed or cancelled. The last three are final.
stage:
type: string
description: 'Where a running job is: resolve, captions, acquire_audio, submit_asr, wait_asr, finalize. Informational.'
result_id:
type: string
description: The transcript, once succeeded.
error:
type: object
description: 'On failure: code, message, retryable, optional details.detail. Same codes as Errors.'
billing:
type: object
description: 'credits_reserved (held while running, 0 when done), credits_charged (final), kind: captions, ai_transcription or cached.'
source:
type: object
description: platform, media_id, canonical_url, title, upload_id.
options:
type: object
description: mode, language, caption_preference as accepted.
created_at:
type: string
description: UTC.
GetV1JobsIdResponse:
type: object
properties:
id:
type: string
description: Job id.
status:
type: string
description: queued → processing (→ awaiting_provider during AI transcription) → succeeded, failed or cancelled. The last three are final.
stage:
type: string
description: 'Where a running job is: resolve, captions, acquire_audio, submit_asr, wait_asr, finalize. Informational.'
result_id:
type: string
description: The transcript, once succeeded.
error:
type: object
description: 'On failure: code, message, retryable, optional details.detail. Same codes as Errors.'
billing:
type: object
description: 'credits_reserved (held while running, 0 when done), credits_charged (final), kind: captions, ai_transcription or cached.'
source:
type: object
description: platform, media_id, canonical_url, title, upload_id.
options:
type: object
description: mode, language, caption_preference as accepted.
created_at:
type: string
description: UTC.
PostV1JobsIdRetryRequest:
type: object
properties:
max_credits:
type: integer
description: Optional spend cap for retried job.
PostV1JobsIdCancelResponse:
type: object
properties:
id:
type: string
description: Job id.
status:
type: string
description: queued → processing (→ awaiting_provider during AI transcription) → succeeded, failed or cancelled. The last three are final.
stage:
type: string
description: 'Where a running job is: resolve, captions, acquire_audio, submit_asr, wait_asr, finalize. Informational.'
result_id:
type: string
description: The transcript, once succeeded.
error:
type: object
description: 'On failure: code, message, retryable, optional details.detail. Same codes as Errors.'
billing:
type: object
description: 'credits_reserved (held while running, 0 when done), credits_charged (final), kind: captions, ai_transcription or cached.'
source:
type: object
description: platform, media_id, canonical_url, title, upload_id.
options:
type: object
description: mode, language, caption_preference as accepted.
created_at:
type: string
description: UTC.
PostV1JobsIdRetryResponse:
type: object
properties:
id:
type: string
description: Job id.
status:
type: string
description: queued → processing (→ awaiting_provider during AI transcription) → succeeded, failed or cancelled. The last three are final.
stage:
type: string
description: 'Where a running job is: resolve, captions, acquire_audio, submit_asr, wait_asr, finalize. Informational.'
result_id:
type: string
description: The transcript, once succeeded.
error:
type: object
description: 'On failure: code, message, retryable, optional details.detail. Same codes as Errors.'
billing:
type: object
description: 'credits_reserved (held while running, 0 when done), credits_charged (final), kind: captions, ai_transcription or cached.'
source:
type: object
description: platform, media_id, canonical_url, title, upload_id.
options:
type: object
description: mode, language, caption_preference as accepted.
created_at:
type: string
description: UTC.
securitySchemes:
bearer:
type: http
scheme: bearer