Skip to Content
SignStream APIREST Quick Start

Quick Start — REST API

Get up and running with the Sign Language Translation API in minutes.

Base URL and Authentication

Base URL
https://ai.api.production.signapsesolutions.com

Authenticate every request by including your API key in the X-API-KEY header.

Choose Your Flow

ResponseWhen you get itWhat you get
200 JSON with manifestsformat = hls with delivery.method = streamJSON body with manifests.hls (.m3u8) and manifests.dash (.mpd) — point a player at whichever fits
303 See Otherformat = 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 carries manifests.hls and manifests.dash; fetch either manifest and hand it to a player. This is the normal streaming path.
  • 303 See Other — for mp4/mov downloads (and hls + download), follow the Location header 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.

ParameterTypeDefaultDescription
languagestringbslSign language variant: bsl or asl (case-insensitive)
signerstringvariesDigital signer. BSL: rae (default). ASL: max (default), jay. Must match language.
formatstringtsOutput format. ts returns 6 HLS segments; mp4 returns a single concatenated file.
transparentbooleanfalseWhen 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

NameTypeRequiredDescription
contentobjectrequired
The input content to translate.
typestringrequired
Input content type. Text is the only supported input today.
text
datastringrequired
The text string to translate.
outputobjectrequired
Output configuration.
formatstringrequired
Output video format. Use "mov" directly instead of the legacy "mp4" + "exportType: MOV" combination.
hlsmp4mov
delivery.methodstringrequired
How the output should be delivered.
streamdownloaddisplay
contextobjectrequired
Routing and application metadata.
applicationstringrequired
Free-form application identifier used for routing and analytics (e.g. "media", "airport-display", "my-app").

Handling Responses

StatusMeaningAction
303 See OtherNot an errorFollow the Location header to stream or download media
200 OKJSON responseContains status and optional jobId — poll if needed
400 Bad RequestInvalid requestFix your request based on the error / details fields
500 Internal Server ErrorServer issueRetry with exponential backoff — may be transient

Troubleshooting Checklist

  • Confirm X-API-KEY is present and valid.
  • Set content.type to text and provide the string in content.data.
  • Validate that output.format and delivery.method are supported values.
  • Read the error.details field for actionable hints.

Request
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"
    }
  }'
Response
HTTP/1.1 303 See Other
Location: https://cdn.signapse.com/presigned/abc123/manifest.m3u8
Last updated on
Question? Give us feedback
support@signapse.ai