Usage & Retention

How usage accrues, how to watch it, and how long data is kept
View as Markdown

What accrues usage

Usage accrues on meeting time — the time a bot spends in a call. A few consequences worth designing around:

  • A bot lingering in an empty meeting keeps accruing recording minutes. The everyone_left_timeout and voice_inactivity_timeout knobs exist exactly for this — see Automatic Leave Configuration.
  • in_call_recording_timeout (default 4 hours, max 5 hours) is the hard stop so a stuck recording can’t run for days against your credits.
  • bot_detection auto-leaves when another notetaker is present, so you stop paying for meeting time you don’t want. It has no separate charge.
  • Duplicate-create replays don’t double-charge: an Idempotency-Key replay (507) or deduplication_key replay (200) returns the original bot, and only the original successful create charges credits.

Current per-hour pricing lives on meetstream.ai/pricing.

The Usage dashboard

app.meetstream.ai/usage shows bot hours, meetings recorded, and average meeting length, with daily/weekly/monthly granularity, CSV and PDF export, and a per-bot breakdown that includes each session’s duration, metadata (API key label, bot ID), and cost:

Usage view in the MeetStream dashboard: bot hours chart and per-bot cost breakdown

Because every row carries the API key label and any custom_attributes you set at create time, you can attribute usage per environment, per customer, or per feature — set custom_attributes on create_bot and filter the List Bots endpoint with custom_attr[...] params the same way.

Retention

Recording media is retained according to recording_config.retention:

1{
2 "recording_config": {
3 "retention": { "type": "timed", "hours": 24 }
4 }
5}
  • Default retention is 24 hours (CLI: --retention-hours). Longer retention accrues storage charges at $0.20/GB.
  • When retention expires — or you call DELETE /bots/{bot_id}/delete — a data_deletion webhook fires, the bot’s status becomes MediaExpired, and artifact endpoints return 404/410 from then on.
  • The delete response reports how many objects were removed.

If you want recordings to live in infrastructure you control (and set your own lifecycle rules), use Custom Storage (BYO S3) — MeetStream writes audio, video, transcripts, and metadata straight into your bucket, including S3-compatible stores like Cloudflare R2 and MinIO.

Presigned URL lifetimes

Artifact download links are presigned and expire — re-request the endpoint for fresh links rather than storing URLs:

ArtifactLink valid for
Mixed audio (get_audio)1 hour
Video (get_video)10 minutes
Per-participant audio/video streams10 minutes
Transcription downloads (/transcriptions)1 hour

Next steps