Skip to main content

API Reference

The VoiceCheap API uses standard HTTP methods and status codes. Most endpoints return JSON; transcript exports can also return SRT or VTT. For account settings, team management, media tools, and other workflows, use the action catalog. These workflows are also available through the account MCP server, except webhook signing-secret creation and rotation, which require REST. Manage credentials in Integrations and check usage limits.

Base URL

All API requests should be made to:

Authentication

Authenticate private REST calls with an API key in x-api-key or Authorization: Bearer. The OpenAPI document is public. See Authentication for scoped credentials and OAuth for MCP.

JSON action API

The account, team, project, voice and media-tool sections document each JSON action separately. These routes all use POST, including read and delete actions; send the arguments in the JSON body. The file-upload and existing project routes below retain their own HTTP methods. Create an API key with account:read, set the VOICECHEAP_API_KEY environment variable, and try this read-only request:
A completed action returns HTTP 200 with its result in data. A long-running action returns HTTP 202 and a requestId; use request status to recover the result. A media job can continue after the action request completes. Browse all action pages by area, or discover the actions and schemas permitted for your key. Each page lists its exact permissions, parameters, examples and errors.

Content Types

  • Request: Use multipart/form-data for file uploads, application/json for other requests
  • Response: JSON endpoints return application/json. Transcript exports can also return SRT or VTT text.

File uploads and existing project routes

Transcribe Media

POST /v1/transcribeTranscribe an uploaded file as JSON, SRT, or VTT.

Export Project Transcript

POST /v1/projects/{projectId}/transcriptRetrieve original or translated project transcripts.

Create Project

POST /v1/projectsUpload a video or audio file and start transcription without translation.

Start Translation

POST /v1/translateUpload a video or audio file and start a translation project.

Dub Project

POST /v1/projects/{projectId}/dubDub an existing transcribed project from your translated SRT.

Get Translation Status

GET /v1/translate/{projectId}/statusCheck the status of a translation project and retrieve results.

Get Project Details

GET /v1/projects/{projectId}Retrieve translated version history, lip-sync history, and project state.

Delete Project

DELETE /v1/translate/{projectId}Permanently delete a translation project and its assets.

Translation Workflow

The typical workflow for translating a video is:

Response Format

The existing file-upload and project routes below keep their endpoint-specific response formats. Successful response fields depend on the endpoint. Project creation and dubbing start requests return success, message and projectId. Status and project-detail requests return project state; transcript requests return JSON, SRT or VTT. See the endpoint page for its exact response. Errors return a JSON object with code and message, sometimes with details. See Error Codes.

HTTP Status Codes