Skip to main content

Base URL

https://api.viddyscribe.com

Authentication

All API requests require an API key passed in the X-API-Key header.
X-API-Key: vsk_your_api_key_here

Endpoints

Upload Endpoints

Text Generation Endpoints

Video Generation Endpoints

Results Endpoint

Quick Example

1

Upload

curl -X POST https://api.viddyscribe.com/enterprise/api/upload_media \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "[email protected]"
2

Generate

curl -X POST https://api.viddyscribe.com/enterprise/api/generate_ad_video \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"media_id": "MEDIA_ID", "language": "en-US"}'
3

Get Results

curl "https://api.viddyscribe.com/enterprise/api/get_results?job_id=JOB_ID" \
  -H "X-API-Key: YOUR_API_KEY"

Supported Languages

English (US, GB, AU, IN) • Spanish (ES, US) • French (FR, CA) • German • Italian • Portuguese (BR) • Japanese • Korean • Chinese • Arabic • Hindi • Bengali • Danish • Finnish • Gujarati • Indonesian • Kannada • Malayalam • Marathi • Norwegian • Dutch (NL, BE) • Polish • Russian • Swedish • Swahili • Tamil • Telugu • Thai • Turkish • Ukrainian • Urdu • Vietnamese

Video Categories

Auto • Educational Lecture • Documentary • Narrative Story • Social Media • Tutorial/How-To • Vlog • Commercial/Advertisement • News • Entertainment • Home Video • Video Call

Output Formats

FormatDescription
jsonStructured data with timestamps
vttWebVTT subtitle format
edlEdit Decision List for video editors
videoComplete MP4 with audio descriptions

Error Codes

CodeDescription
400Bad request - invalid parameters
401Unauthorized - invalid API key
403Forbidden - usage limits exceeded
404Not found - media or job not found
500Internal server error

Rate Limits

Limits are enforced per team across all API keys. Enterprise plans can request custom allocations; contact support if you need higher throughput.

Rate Limit Exceeded Response

When you exceed the rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Please try again later.",
  "limit": 100,
  "remaining": 0,
  "reset": 1696272000,
  "retry_after": 15
}
The retry_after field indicates how many seconds to wait before retrying.

Need Help?