Skip to content

Explain what produces each Stream charge on the pricing page - #408

Open
bogdan-at-bunny wants to merge 1 commit into
mainfrom
docs/stream-charge-attribution
Open

Explain what produces each Stream charge on the pricing page#408
bogdan-at-bunny wants to merge 1 commit into
mainfrom
docs/stream-charge-attribution

Conversation

@bogdan-at-bunny

Copy link
Copy Markdown
Contributor

What changed and why

stream/pricing.mdx is a rate card: it lists the per-minute, per-GB and per-license numbers, but says nothing about what produces each of those charges. A reader looking at a Stream charge cannot work out from this page that standard encoding is free while extra resolutions cost storage instead, that storage is billed on the encoded footprint (every resolution, MP4 fallback, kept originals) rather than the uploaded file, that transcribing is charged per language at the moment it runs and can be triggered per video over the API independently of the library setting, or that the Enterprise DRM base fee accrues while the feature is enabled regardless of licenses issued.

This PR adds one section, What each charge comes from, mapping each billed dimension to the activity that produces it and to the API endpoint or dashboard view that shows the underlying usage per library. It also adds one clarifying sentence under GEO Replication, because the table there reads as a replacement rate rather than an additive one — the same additive example already appears in storage/pricing.mdx.

No rates were changed.

What I could not verify

  • The Enterprise DRM base fee's scope. An internal answer states the $99 is charged per video library, but neither stream/pricing.mdx nor stream/drm/index.mdx says per what, so I deliberately wrote "for as long as Enterprise DRM is enabled" without committing to per-library or per-account. If it is per library, that is worth stating explicitly on both pages.
  • How to stop the DRM base fee. Not documented anywhere I could find, and I did not add it: an internal answer says disabling it requires re-encoding or repackaging affected videos (/library/{id}/videos/{id}/repackage and /reencode both exist in the Stream spec), but I could not confirm that from source.
  • That a transcription requested via POST /library/{id}/videos/{id}/transcribe bills even when the library toggle is off. I inferred this from the endpoint's request body, documented in the spec as "Used to override video library transcription settings", plus an internal answer describing exactly that outcome. I could not run it.
  • The "Standard encoding is free" claim rests on stream/encoding.mdx ("free transcoding") and on Premium Encoding being the only encoding rate table that exists. I did not confirm whether every resolution — 4K in particular — is included in the free tier, so I did not name any resolution.
  • Nothing was rendered. There is no local Mintlify toolchain in this environment. I confirmed by hand that all ten link targets exist as pages in docs.json and that the two anchors I used (#video-storage-usage, #downloading-usage-summaries, #minimum-monthly-usage) match real headings, but I did not see the page build.

Pre-existing issues noticed but not fixed

  • stream/pricing.mdx uses #### for the "$0.10 per language minute" and "$99 per month base fee" callouts, skipping ### under their ## parents — a heading-level jump.
  • The Enterprise DRM tier table on stream/pricing.mdx and the one on stream/drm/index.mdx duplicate the same rates in two places, so they can drift apart. A snippet would fix that.
  • stream/drm/index.mdx:132 renders a malformed price: $$570 + $$99 base fee (doubled dollar signs).
  • billing/index.mdx is frontmatter only, with no body content.

The Stream pricing page lists rates but not what triggers them. Add a
"What each charge comes from" section mapping encoding, storage, CDN
delivery, transcribing and Enterprise DRM to the activity that produces
the charge and to the per-library usage source, and clarify that GEO
replication rates are additive.
@mintlify

mintlify Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
bunny 🟢 Ready View Preview Aug 12, 2026, 8:41 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@zeljko-at-bunny zeljko-at-bunny left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • The Enterprise DRM base fee's scope -> it is per library - we might want to change that so not sure if this is the perfect time to document it, wdyt @NathanZBunny?
  • How to stop the DRM base fee -> best handled with support IMO
  • That a transcription requested via POST /library/{id}/videos/{id}/transcribe bills even when the library toggle is off -> yes, the library toggle means "automatically transcribe all newly uploaded videos", it is not a feature switch, so one can manually transcribe videos via dash button or API call and get charged.
  • The "Standard encoding is free" claim -> 4K is included in free and don't see any need to point that out directly

Comment thread stream/pricing.mdx

### Storage

Storage is billed on what a video generates during encoding, not on the size of the file you uploaded. Each enabled resolution is stored separately, and **MP4 fallback**, **Keep original files**, preview animations, thumbnails, and captions all add more on top, so a library can easily hold several times the footage you sent it. [Video storage usage](/stream/encoding#video-storage-usage) shows which of these is taking the space for a given video.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Storage is billed on what a video generates during encoding, not on the size of the file you uploaded. Each enabled resolution is stored separately, and **MP4 fallback**, **Keep original files**, preview animations, thumbnails, and captions all add more on top, so a library can easily hold several times the footage you sent it. [Video storage usage](/stream/encoding#video-storage-usage) shows which of these is taking the space for a given video.
Storage is billed on what a video generates during encoding, not only on the size of the file you uploaded. Each enabled resolution is stored separately, and **MP4 fallback**, **Keep original files**, preview animations, thumbnails, and captions all add more on top, so a library can easily hold several times the footage you sent it. [Video storage usage](/stream/encoding#video-storage-usage) shows which of these is taking the space for a given video.

Comment thread stream/pricing.mdx

Transcribing is charged per language per minute of audio at the point the transcription runs, so cost scales with both the total length of the videos and the number of languages selected: five languages cost five times one.

Enabling transcribing on a video library applies it to videos uploaded from then on, but a transcription can also be requested for a single video with [Transcribe video](/api-reference/stream/manage-videos/transcribe-video), and that request can override the library's transcription settings. A transcribing charge can therefore appear for a library whose dashboard setting is currently off — either from a video processed before it was switched off, or from a direct API request. [Get transcribing statistics](/api-reference/core/stream-video-library/get-video-library-transcribing-statistics) reports the transcribed minutes for a library.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Enabling transcribing on a video library applies it to videos uploaded from then on, but a transcription can also be requested for a single video with [Transcribe video](/api-reference/stream/manage-videos/transcribe-video), and that request can override the library's transcription settings. A transcribing charge can therefore appear for a library whose dashboard setting is currently off — either from a video processed before it was switched off, or from a direct API request. [Get transcribing statistics](/api-reference/core/stream-video-library/get-video-library-transcribing-statistics) reports the transcribed minutes for a library.
Enabling transcribing on a video library applies it to videos uploaded from then on, but a transcription can also be requested for a single video with [Transcribe video](/api-reference/stream/manage-videos/transcribe-video), and that request can override the library's transcription settings. A transcribing charge can therefore appear for a library whose dashboard setting is currently off — either from a video processed before it was switched off, or from a direct API request or dashboard interaction. [Get transcribing statistics](/api-reference/core/stream-video-library/get-video-library-transcribing-statistics) reports the transcribed minutes for a library.

Comment thread stream/pricing.mdx

### MediaCage Enterprise DRM

The \$99 monthly base fee applies for as long as Enterprise DRM is enabled, whether or not any licenses are issued that month, and license fees are billed on top of it. [Get DRM statistics](/api-reference/core/stream-video-library/get-video-library-drm-statistics) reports the licenses issued for a library.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The \$99 monthly base fee applies for as long as Enterprise DRM is enabled, whether or not any licenses are issued that month, and license fees are billed on top of it. [Get DRM statistics](/api-reference/core/stream-video-library/get-video-library-drm-statistics) reports the licenses issued for a library.
The \$99 monthly base fee applies for as long as Enterprise DRM is enabled on a video library, whether or not any licenses are issued that month, and license fees are billed on top of it. [Get DRM statistics](/api-reference/core/stream-video-library/get-video-library-drm-statistics) reports the licenses issued for a library.

@bogdan-at-bunny

Copy link
Copy Markdown
Contributor Author

From Krzystof:

I would change

Storage is billed on what a video generates during encoding, not on the size of the file you uploaded.

to

Storage is billed on what a video generates during encoding, not only on the size of the file you uploaded.but that's minor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants