API Reference
List transcriptions
GET /transcriptions — list transcriptions in a workspace with filtering, sorting and pagination.
GET /transcriptions
Returns a paginated list of transcriptions in the key's workspace. Lightweight — no full text; use Get transcription for that.
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
status | string | completed | Filter by status. An unknown value returns an empty list. |
project_id | UUID | — | Only transcriptions in this project. Get the UUID from List projects. |
language | string | — | Language code, e.g. en, ru. |
date_from | date | — | Created on/after this date (YYYY-MM-DD). |
date_to | date | — | Created on/before this date (YYYY-MM-DD). |
sort | string | -created_at | created_at, -created_at, duration, -duration. A - prefix means descending. |
limit | integer | 20 | Page size, 1–100 (clamped). |
offset | integer | 0 | Number of items to skip. |
Request
curl -G https://app.memoai.tech/api/v1/developer/transcriptions \
-H "Authorization: Bearer mk_live_your_key_here" \
-d language=en \
-d date_from=2026-05-01 \
-d sort=-created_at \
-d limit=20import httpx
resp = httpx.get(
"https://app.memoai.tech/api/v1/developer/transcriptions",
headers={"Authorization": "Bearer mk_live_your_key_here"},
params={
"language": "en",
"date_from": "2026-05-01",
"sort": "-created_at",
"limit": 20,
},
)
resp.raise_for_status()
data = resp.json()const url = new URL("https://app.memoai.tech/api/v1/developer/transcriptions");
url.search = new URLSearchParams({
language: "en",
date_from: "2026-05-01",
sort: "-created_at",
limit: "20",
}).toString();
const res = await fetch(url, {
headers: { Authorization: "Bearer mk_live_your_key_here" },
});
const data = await res.json();List my English meetings from May, newest first.
The assistant calls memo_list_transcriptions with language, date_from and sort.
Response
200 OK
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "Acme — discovery call",
"summary": "Walked through current workflow and pain points...",
"language": "en",
"duration_seconds": 1840.5,
"speakers": [{ "name": "Alex" }, { "name": "Jordan" }],
"topics": [{ "title": "Pricing" }, { "title": "Onboarding" }],
"media_type": "audio",
"project": { "id": "8b1f3e22-1c4a-4f7e-9a2b-6d5e8c1a2b3c", "name": "Sales" },
"created_at": "2026-05-20T09:14:00Z",
"updated_at": "2026-05-20T09:31:00Z"
}
],
"total": 42,
"limit": 20,
"offset": 0
}Response fields
| Field | Type | Description |
|---|---|---|
items[] | array | Transcriptions on this page. |
items[].id | UUID | Transcription identifier — use with Get / Export. |
items[].title | string | null | Meeting title. |
items[].summary | string | null | Short AI summary. |
items[].language | string | null | Detected language code. |
items[].duration_seconds | number | null | Recording length in seconds. |
items[].speakers[] | array | Detected speakers. |
items[].topics[] | array | Key topics. |
items[].media_type | string | null | audio or video. |
items[].project | object | null | { id, name } if assigned to a project. |
items[].created_at | datetime | When the transcription was created. |
items[].updated_at | datetime | Last update. |
total | integer | Total matching the filter (across all pages). |
limit | integer | Page size used. |
offset | integer | Offset used. |
Pagination
Request the next page by advancing offset by limit:
# page 2
curl -G https://app.memoai.tech/api/v1/developer/transcriptions \
-H "Authorization: Bearer mk_live_your_key_here" \
-d limit=20 -d offset=20You've reached the end when offset + len(items) >= total.
Errors
| Status | When |
|---|---|
401 | Missing/invalid key, or key passed in the URL. |
403 | Plan without API access. |
429 | Rate limit exceeded. |
See Errors for full details.