Generate Translation
Generate a sign language translation video from text input.
/v2/generateRequest Body
The request body consists of three required top-level objects: content, output, and context.
content
Defines the input content to be translated.
content
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | required | The type of content to translate. text |
| data | string | required | The text content to translate into sign language. |
| duration | number | optional | Optional target sign-language duration in seconds. When set, the pipeline paces signing to fit the requested duration (useful for aligning to a fixed video slot). |
output
Defines the output format and delivery method.
output
| Name | Type | Required | Description |
|---|---|---|---|
| format | string | required | Output video format. Use "mov" directly instead of the legacy "mp4" + "exportType: MOV" combination. hlsmp4mov |
| delivery | object | required | Delivery configuration. |
| method | string | required | How the output should be delivered. streamdownloaddisplay |
| config | object | optional | Additional delivery configuration options. |
| quality | string | optional | Bitrate tier. The friendly labels are aliases: low → SD (~1.5 Mbps), standard → HD (~5 Mbps), high → 4K (~15 Mbps). SD, HD, HDR, and 4K also accepted for backward compatibility. lowstandardhighSDHDHDR4K |
| resolution | string | optional | Explicit output resolution (e.g. "1920x1080"). Independent of quality, which controls bitrate. |
| codec | string | optional | Video codec. Default: h264h264h265vp9av1 |
| backgroundColor | string | optional | Background color. Use "transparent" for alpha channel support, or hex color (e.g., "#1a73e8"). Default: white |
| digitalSigner | string | optional | Avatar signer to use. RAE signs BSL, JAY and MAX sign ASL. Default: RAERAEJAYMAX |
| language | string | optional | Target sign language. Must match the selected digitalSigner: BSL for RAE, ASL for JAY and MAX. BSLASL |
| signerSize | string | optional | Signer size within the frame. smallmediumlarge |
| signerOnly | boolean | optional | When true, output only the signer with no background compositing. |
| fitMode | string | optional | How the signer is placed relative to the output frame. "pad" letterboxes to fit; "native" preserves source proportions. padnative |
| exportType | string | optional | Legacy container override for MP4 downloads. Honored for backward compatibility, but new integrations should set output.format = "mov" instead. Default: MP4MP4MOV |
| socialMediaDimension | string | optional | Aspect ratio for social media. 16:91:19:164:5 |
| lowLatencyMode | boolean | optional | Enable LL-HLS for reduced latency. Default: false |
| hlsSegmentDuration | number | optional | HLS segment duration in seconds (1.0-10.0). Default: 2.0 |
| hlsSegmentType | string | optional | HLS segment container. Use "fmp4" for CMAF/LL-HLS-compatible fragmented MP4 segments, "ts" for MPEG-TS. fmp4ts |
| embeddedSubtitles | object | optional | Embed subtitles in the output. |
| enabled | boolean | optional | When true, burns subtitles into the output. |
| logo | object | optional | Logo overlay configuration. |
| url | string | required | Fetchable URL of the logo asset. |
| position | string | required | Placement of the logo within the frame. |
| size | string | optional | Optional logo size specifier. |
| screenId | number | optional | Target display screen identifier. Required when delivery.method is "display". |
context
Provides application context for the request.
context
| Name | Type | Required | Description |
|---|---|---|---|
| application | string | required | Free-form application identifier used for routing and analytics (e.g. "media", "airport-display", "education", "my-app"). |
| location | string | optional | Physical or logical location identifier. |
| sessionId | string | optional | User session identifier. |
| screenId | integer | optional | Target display screen identifier. Also used by display-method deliveries; can be set here for routing or on delivery.config. |
| gate | integer | optional | Optional gate/lane identifier used by transport and airport integrations to associate the request with a specific gate or platform. |
Response
The response shape depends on output.format and output.delivery.method.
HLS + stream — JSON with manifest URLs
For output.format = "hls" with delivery.method = "stream", the API returns 200 OK with a JSON body containing a manifests object. Clients pick the streaming protocol that fits their player and fetch the manifest themselves.
Job identifier.
Translation status.
Stable CDN HLS playlist URL (.m3u8). Poll this as new segments land.
Stable CDN DASH manifest URL (.mpd).
Both manifests are written alongside each other and served from the same prefix, so a DASH client and an HLS client can watch the same job.
MP4 / MOV — 303 redirect
For output.format = "mp4" or "mov", the API returns 303 See Other with the Location header pointing to the generated file.
Presigned URL to the MP4 or MOV file.
Common Use Cases
Text to HLS Stream
{
"content": { "type": "text", "data": "Your text here" },
"output": { "format": "hls", "delivery": { "method": "stream" } },
"context": { "application": "media" }
}Text to MP4 Download
{
"content": { "type": "text", "data": "Your text here" },
"output": { "format": "mp4", "delivery": { "method": "download" } },
"context": { "application": "media" }
}Text to MOV Download
Request a QuickTime MOV directly via output.format = "mov". The output is stored under its own mov/{jobID}/{jobID}.mov S3 prefix.
{
"content": { "type": "text", "data": "Your text here" },
"output": { "format": "mov", "delivery": { "method": "download" } },
"context": { "application": "media" }
}Display on a Screen
Route the translation to a configured display screen with delivery.method = "display". The target screen is identified by delivery.config.screenId, which is required for this method.
{
"content": { "type": "text", "data": "Your text here" },
"output": {
"format": "hls",
"delivery": {
"method": "display",
"config": { "screenId": 1 }
}
},
"context": { "application": "airport-display" }
}Low-Latency HLS
{
"content": { "type": "text", "data": "Your text here" },
"output": {
"format": "hls",
"delivery": {
"method": "stream",
"config": { "lowLatencyMode": true, "hlsSegmentDuration": 1.0 }
}
},
"context": { "application": "media" }
}Custom Background and Social Media Format
{
"content": { "type": "text", "data": "Your text here" },
"output": {
"format": "mp4",
"delivery": {
"method": "download",
"config": {
"backgroundColor": "#1a73e8",
"socialMediaDimension": "9:16"
}
}
},
"context": { "application": "media" }
}curl -X POST "https://ai.api.production.signapsesolutions.com/v2/generate" \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": {
"type": "text",
"data": "Hello, welcome to our service"
},
"output": {
"format": "hls",
"delivery": {
"method": "stream"
}
},
"context": {
"application": "media"
}
}'HTTP/1.1 200 OK
Content-Type: application/json
{
"jobId": "cd320c9b-fc8f-45ad-9ae9-8fa7d159c937",
"status": "completed",
"manifests": {
"hls": "https://cdn.production.signapsesolutions.com/hls/cd320c9b-fc8f-45ad-9ae9-8fa7d159c937/index.m3u8",
"dash": "https://cdn.production.signapsesolutions.com/hls/cd320c9b-fc8f-45ad-9ae9-8fa7d159c937/manifest.mpd"
}
}