Quick Start — REST API
Get up and running with the Sign Language Translation API in minutes.
Base URL and Authentication
https://ai.api.production.signapsesolutions.comAuthenticate every request by including your API key in the X-API-KEY header.
Choose Your Flow
| Response | When you get it | What you get |
|---|---|---|
200 JSON with manifests | format = hls with delivery.method = stream | JSON body with manifests.hls (.m3u8) and manifests.dash (.mpd) — point a player at whichever fits |
| 303 See Other | format = mp4 or mov (download), or hls with delivery.method = download (single segment) | Location header pointing at a presigned media URL |
1. Create a Translation (v2)
Send text input and choose your output format and delivery method. See the code panel on the right for examples in cURL, Node.js, and Go.
Text is the only supported input. content.type must be text, with the string to translate in content.data. There is no audio or video file input on this endpoint. To convert a finished audio or video file to signed video, use SignStudio; to translate a live stream in real time (its audio track is transcribed automatically), use Live Translation.
Possible outcomes:
- 200 OK (JSON) — for
hls+stream, the body carriesmanifests.hlsandmanifests.dash; fetch either manifest and hand it to a player. This is the normal streaming path. - 303 See Other — for
mp4/movdownloads (andhls+download), follow theLocationheader to a presigned media URL.
2. Poll Job Status (v1)
If you received a JSON response with a jobId, poll for progress and download URLs.
Polling tips:
- Stop polling once your workflow has downloaded the media or the state indicates completion.
- Use exponential backoff (e.g. 1s, 2s, 4s…) to reduce load on the server.
3. Optional: Silence Segments
Fetch presigned URLs for predefined silence segments.
| Parameter | Type | Default | Description |
|---|---|---|---|
language | string | bsl | Sign language variant: bsl or asl (case-insensitive) |
signer | string | varies | Digital signer. BSL: rae (default). ASL: max (default), jay. Must match language. |
format | string | ts | Output format. ts returns 6 HLS segments; mp4 returns a single concatenated file. |
transparent | boolean | false | When true, returns a single ProRes 4444 + alpha .mov for compositing. Cannot be combined with explicit format=ts. |
See the Get Silence Segments reference for response shapes per format and the full format rules.
Request Schema Essentials (v2)
Request Body
| Name | Type | Required | Description |
|---|---|---|---|
| content | object | required | The input content to translate. |
| type | string | required | Input content type. Text is the only supported input today. text |
| data | string | required | The text string to translate. |
| output | object | required | Output configuration. |
| format | string | required | Output video format. Use "mov" directly instead of the legacy "mp4" + "exportType: MOV" combination. hlsmp4mov |
| delivery.method | string | required | How the output should be delivered. streamdownloaddisplay |
| context | object | required | Routing and application metadata. |
| application | string | required | Free-form application identifier used for routing and analytics (e.g. "media", "airport-display", "my-app"). |
Handling Responses
| Status | Meaning | Action |
|---|---|---|
| 303 See Other | Not an error | Follow the Location header to stream or download media |
| 200 OK | JSON response | Contains status and optional jobId — poll if needed |
| 400 Bad Request | Invalid request | Fix your request based on the error / details fields |
| 500 Internal Server Error | Server issue | Retry with exponential backoff — may be transient |
Troubleshooting Checklist
- Confirm
X-API-KEYis present and valid. - Set
content.typetotextand provide the string incontent.data. - Validate that
output.formatanddelivery.methodare supported values. - Read the
error.detailsfield for actionable hints.
curl -i \
-X POST "https://ai.api.production.signapsesolutions.com/v2/generate" \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_API_KEY" \
-d '{
"content": {
"type": "text",
"data": "Welcome to our text API"
},
"output": {
"format": "hls",
"delivery": {
"method": "stream",
"config": {
"segmentStartTime": "00:00:05"
}
}
},
"context": {
"application": "media"
}
}'HTTP/1.1 303 See Other
Location: https://cdn.signapse.com/presigned/abc123/manifest.m3u8