API reference

Every endpoint, on one page.

Basics

Details
Base URLhttps://api.usesigna.org/v1
AuthenticationAuthorization: Bearer sk_live_… on your server, or a client token ct_… in a page or app
SuccessJSON answers come as {"success": true, "payload": …}; signs, videos and subtitle files come as files.
ErrorsJSON with message and code. Errors and limits

Account

GET/v1/api/me
AuthSendGet backMore
key or token—Your organisation, limits and usage this monthGuide
POST/v1/api/client-tokens
AuthSendGet backMore
key{"ttlSeconds"}{"token", "expiresAt"}Guide
GET/v1/languages
AuthSendGet backMore
none—The spoken and signed language codesGuide

Signing

POST/v1/sign
AuthSendGet backMore
key or token{"text", "from", "to"}The signs, streamed a word at a time (.sgn)Guide
POST/v1/sign/video
AuthSendGet backMore
key or token.sgn body; ?skin&hair&shirt&pants&gender&ageAn MP4 videoGuide

Speech

POST/v1/subtitles
AuthSendGet backMore
key or tokenmultipart: file, lang; ?format=json|srt|vttTimed subtitlesGuide
POST/v1/stt
AuthSendGet backMore
key or tokenmultipart: audio, lang{"text", "lang", "provider"}Guide
POST/v1/tts
AuthSendGet backMore
key or token{"text", "lang", "speechRate"}{"audio", "provider", "lang"}Guide
WSS/v1/live
AuthSendGet backMore
key or token, in the start messagestart message, then 16 kHz PCMpartial and final messagesGuide

Overlays

POST/v1/overlays
AuthSendGet backMore
key{"name", "captions"}The overlay, with its page url (shown once)Guide
GET/v1/overlays
AuthSendGet backMore
key—Your overlaysGuide
PUT/v1/overlays/:id
AuthSendGet backMore
key{"name", "captions"}The overlay; open screens follow at onceGuide
POST/v1/overlays/:id/link
AuthSendGet backMore
key—The overlay with a new url; the old link stops workingGuide
DELETE/v1/overlays/:id
AuthSendGet backMore
key—{"deleted": true}Guide
POST/v1/overlays/:id/sign
AuthSendGet backMore
key or token{"text", "from", "to"}{"words", "watchers"}Guide
POST/v1/overlays/:id/clear
AuthSendGet backMore
key or token—{"cleared": true}Guide

A JSON answer

{
  "success": true,
  "payload": { "signed": ["rsl", "ase", "fsl", "bfi", "jsl", "ils"], "spoken": ["rw", "fr", "en", "ja", "sw"] },
  "timestamp": "2026-10-24T07:04:17.630Z"
}