Memo AIDocs
API Reference

Export transcription

GET /transcriptions/{id}/export — download one transcription as a ready-to-save Markdown or text file.

GET /transcriptions/{id}/export

Returns a downloadable file (not JSON). Markdown includes YAML frontmatter so it drops straight into Obsidian or any notes app.

Path parameters

ParameterTypeDescription
idUUIDTranscription identifier.

Query parameters

ParameterTypeDefaultDescription
formatstringmdmd (Markdown + frontmatter) or txt (plain text). Any other value → 422.

Response

200 OK with a file body. The filename comes from the meeting title via Content-Disposition:

FormatContent-TypeContents
mdtext/markdown; charset=utf-8YAML frontmatter + transcript + AI reports
txttext/plain; charset=utf-8Plain transcript text

A Markdown export looks like:

Acme — discovery call.md
---
title: Acme — discovery call
date: 2026-05-20
language: en
duration: 30m 40s
speakers: [Alex, Jordan]
topics: [Pricing, Onboarding]
source: Memo AI
---

# Acme — discovery call

## Summary
Walked through current workflow and pain points...

## Action items
- Send pricing deck by Friday
- Schedule technical follow-up

## Transcript
[00:00] Alex: Thanks for hopping on...
[00:42] Jordan: Of course...

Request

curl "https://app.memoai.tech/api/v1/developer/transcriptions/3fa85f64-5717-4562-b3fc-2c963f66afa6/export?format=md" \
  -H "Authorization: Bearer mk_live_your_key_here" \
  -o "acme-discovery-call.md"

The -o flag saves the file; the server-suggested name is in the Content-Disposition header.

import httpx

tid = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
resp = httpx.get(
    f"https://app.memoai.tech/api/v1/developer/transcriptions/{tid}/export",
    params={"format": "md"},
    headers={"Authorization": "Bearer mk_live_your_key_here"},
)
resp.raise_for_status()

with open("acme-discovery-call.md", "wb") as f:
    f.write(resp.content)
import { writeFile } from "node:fs/promises";

const tid = "3fa85f64-5717-4562-b3fc-2c963f66afa6";
const res = await fetch(
  `https://app.memoai.tech/api/v1/developer/transcriptions/${tid}/export?format=md`,
  { headers: { Authorization: "Bearer mk_live_your_key_here" } },
);
await writeFile("acme-discovery-call.md", Buffer.from(await res.arrayBuffer()));

Export the Acme discovery call to ~/notes/meetings as markdown.

The assistant calls memo_export_transcription with output_path, writing the file directly — the transcript never enters the conversation, saving tokens.

Exporting many at once?

To export more than one transcription, use Bulk export — one request returns a ZIP of up to 100 files.

Errors

StatusWhen
401Missing/invalid key, or key passed in the URL.
403Plan without API access.
404No transcription with that id in this workspace.
422format is not md or txt.
429Rate limit exceeded.

See Errors.

On this page