Skip to content

Ask AI

Ask a question about Scribewren, such as uploading a file, editing a transcript, plans or the API.

Ctrl or Cmd+Enter to send

Answers are written by AI and can be wrong. For account or billing help, use the chat or contact us. Contact support (opens in a new tab)

Export

GET /transcriptions/{id}/export renders the transcript and returns the file in the response body. Generation is synchronous: the call returns when the file is ready.

Terminal window
curl -sS --fail-with-body \
"https://api.scribewren.com/v1/transcriptions/$TX_ID/export?format=srt" \
-H "Authorization: Bearer $SCRIBEWREN_API_KEY" \
-o interview.srt

On success this is the one endpoint that does not use the JSON envelope. The body is the file. On failure you get the normal JSON error envelope, so check the HTTP status before you save the body.

Parameter Required Notes
format Yes txt, docx, pdf, srt or vtt. Case-insensitive. Anything else is 400 VALIDATION_ERROR with reason invalid_enum.
timestamps No true or false. Adds timestamps to txt, docx and pdf. Default false. srt and vtt always carry timestamps and ignore this option.
speakers No true or false. Adds speaker names. When you leave it out, it is on if the transcript has more than one speaker, and off otherwise.

timestamps and speakers accept only the exact strings true and false. Any other value is VALIDATION_ERROR with reason invalid_boolean.

Format Content-Type
txt text/plain; charset=utf-8
docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
pdf application/pdf
srt application/x-subrip; charset=utf-8
vtt text/vtt; charset=utf-8

The response also carries these headers:

HTTP/1.1 200 OK
Content-Type: application/x-subrip; charset=utf-8
Content-Disposition: attachment; filename="interview.srt"; filename*=UTF-8''interview.srt
Cache-Control: no-store
X-Content-Type-Options: nosniff

Content-Disposition gives the suggested file name twice: a plain ASCII filename and a percent-encoded UTF-8 filename*. Prefer filename* when your client understands it.

The name is built from the transcription’s title plus the format extension. The characters / \ : * ? " < > | and control characters are removed, and the name is cut to 150 bytes. If you save the file yourself, you can ignore the suggested name and choose your own.

Cache-Control: no-store tells caches and proxies not to keep the file. Exports are generated again on every call, so a call after the transcript changed returns the new text.

Status error.code When
400 VALIDATION_ERROR format is missing or unknown, or a boolean option is invalid. See error.details.fields.
404 NOT_FOUND The transcription does not exist or belongs to another account.
409 INVALID_STATE_TRANSITION The transcription has not succeeded. error.details.reason is not_ready.
429 RATE_LIMITED You are exporting too fast. Wait for Retry-After seconds. The export policy is listed in Rate limits.
503 EXPORT_FAILED The file could not be generated. error.details.format names the format. It is safe to retry after a short wait.

Exports are allowed on a restricted account, because they only read data. See Authentication.

Can't find what you need? Contact support, email [email protected], or open Help and then Contact in the app. scribewren.com