Public API

RiverScript has a public, read-only API for connecting transcripts and translations to other services.

Creating an API key

Go to SettingsAPI and click Create key. The key is shown once, at creation. If you lose it, revoke it and create a new one.

Send the key on every request as a bearer token:

Authorization: Bearer rs_live_...

A request without a valid key, or with a revoked one, returns 401 Unauthorized.

GET /api/v1/transcripts

Returns your completed transcripts and translations, newest first.

GET https://riverscript.com/api/v1/transcripts
GET https://riverscript.com/api/v1/transcripts?limit=15

limit is optional (default 15, maximum 100). The response is a JSON array:

[
  {
    "id": "b59cd1d1-f7a2-4e3a-b4b6-63bcd8972542",
    "title": "Team meeting.mp3",
    "text": "Speaker 1:\nLet's start with the roadmap.\n\nSpeaker 2:\nAgreed.",
    "language": "eng",
    "duration_minutes": 12.4,
    "is_translation": false,
    "created_at": "2026-08-16T20:41:04.269Z"
  }
]
  • id — unique per transcript or translation, stable across requests.
  • title — the filename shown in RiverScript.
  • text — the full text, including speaker labels when diarization was used, and timestamps when the recording was transcribed with timestamps enabled.
  • language — the detected language, as a three-letter code.
  • duration_minutes — recording length.
  • is_translationtrue if this entry is an AI translation of another transcript rather than an original recording.
  • created_at — ISO 8601, UTC.

Total response size is capped at 4 MB. If more items would exceed that, only as many as fit are returned, newest first — the newest one is always included in full, however long it is.

GET /api/v1/me

Identifies the account behind an API key.

{
  "email": "[email protected]",
  "plan": "premium"
}