Export & integrations
On this page
Your data is yours. dembrane gives you several ways to get conversations, transcripts, and analysis back out - for archiving, for feeding another tool, or for building your own integration. This page covers the programmatic export endpoints and the patterns around them.
For the host-facing, button-driven version of the same capability, see export & data portability. This page is the developer reference; if you’d rather be pushed events than pull them, see webhooks.
Note
Export endpoints are part of the authenticated API. Send a
Directus token with the workspace permission
to export (workspace:export, an admin/owner capability). Exporting from the participant
side is the participant report flow instead.
Transcript zip (whole project)#
Export every conversation in a project as a zip of per-conversation Markdown files:
GET /api/projects/{pid}/transcripts
Authorization: Bearer <token>
Returns a zip archive - one Markdown file per conversation, each containing that conversation’s transcript. This is the simplest way to take a full point-in-time copy of a project’s spoken record.
curl -L https://YOUR-API-HOST:8000/api/projects/$PID/transcripts \
-H "Authorization: Bearer $TOKEN" \
-o project-transcripts.zip
Per-conversation transcript (plain text)#
For a single conversation, fetch the transcript as plain text:
GET /api/conversations/{cid}/transcript
Authorization: Bearer <token>
Useful when you want to stream one conversation into another system as it finishes - pair it
with a conversation.summarized webhook to grab each transcript at the moment
it’s ready, rather than polling.
CSV / Excel#
The host dashboard’s integrations screen produces CSV and Excel exports of conversations and their metadata, alongside the transcript zip. These are the tabular companions to the Markdown export - the right shape when you’re loading into a spreadsheet, a BI tool, or a data warehouse.
Tip
Use the Markdown/transcript exports when you care about the content (the words), and the CSV/Excel exports when you care about the structure (which conversations exist, their tags, timestamps, and status). Many integrations pull both: the CSV for the index, the zip for the bodies.
Reports#
Reports are generated artifacts assembled from a project’s conversations (a two-phase
fan-out-then-generate job - see the
processing pipeline). A finished report can be
exported to PDF from the dashboard, and the report.generated
webhook tells your systems the moment one is ready to fetch. See
reports for the host-facing view.
Programmatic export patterns#
A few patterns that hold up well:
- Scheduled full snapshot. On a cron, call
GET /api/projects/{pid}/transcriptsand store the zip in your own archive. Simple, complete, and easy to diff between runs. - Event-driven incremental pull. Register a webhook for
conversation.summarized(andconversation.transcribed), and on each delivery fetch that one conversation’s transcript viaGET /api/conversations/{cid}/transcript. Low latency, no polling, and you only fetch what changed. - Index + bodies. Pull the CSV/Excel export for the conversation index and metadata, then fetch transcript bodies only for the rows you care about.
Important
Exports can contain personal data. The transcript correction pass redacts PII by default
(unless DISABLE_REDACTION is set - see
configuration), but you remain
responsible for how you store and process exported data. Review
data ownership & compliance.
Related#
- Export & data portability - the host-facing feature.
- Webhooks - be notified when there’s something new to export.
- Authentication - tokens for these endpoints.
- Reports - what a generated report contains.
- Data ownership & compliance.
Comments