Per-Creator Video Analytics Without a Custom Index
Platforms that handle user-generated video face a common question: which creators drive the most watch time? Cloudflare Stream has typically required customers to answer this by maintaining their own mapping between internal user IDs and Stream video IDs. A typical setup might involve a database table that links a Stream video ID like 06aadc28eb1897702d41b4841b85f322 to an internal user ID such as 83721759.
Stream now offers a creator property that removes the need for that auxiliary index. When requesting a tokenized direct upload URL, you can pass your internal user ID as the creator field. Once the upload completes, the video's creator property is populated automatically, without exposing account-wide credentials.
curl -X POST "https://api.cloudflare.com/client/v4/accounts/023e105f4ecef8ad9ca31a8372d0c353/stream/direct_upload" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"maxDurationSeconds":300,"expiry":"2021-01-02T02:20:00Z","creator": "<CREATOR_ID>", "thumbnailTimestampPct":0.529241,"allowedOrigins":["example.com"],"requireSignedURLs":true,"watermark":{"uid":"ea95132c15732412d22c1476fa83f27a"}}'
Filtering Analytics by Creator
The creator property can also be used to filter analytics, both in the Cloudflare dashboard and through the GraphQL API.

Previously, generating a monthly watch-time report per creator required a multi-step script: pull video metrics from the GraphQL API, look up each video's owner in your internal index, and aggregate the results. Now a single GraphQL query can return consumption data grouped by creator:
query {
viewer {
accounts(filter: { accountTag: "<ACCOUNT_ID>" }) {
streamMinutesViewedAdaptiveGroups(
limit: 10
orderBy: [sum_minutesViewed_DESC]
filter: { date_lt: "2022-04-01", date_gt: "2022-04-31" }
) {
sum {
minutesViewed
}
dimensions {
creator
}
}
}
}
}
This capability extends beyond uploaded videos. You can set the creator property on live inputs as well, meaning recorded videos from a live event inherit the field without any extra processing.
The change simplifies analytics for creator-focused platforms. Matt Ober, CTO of Piñata, an NFT media management platform, noted that "By allowing us to upload and then query using creator IDs, large-scale analytics of Cloudflare Stream is about to get a lot easier."
Adoption and Next Steps
The creator property can be configured both on newly uploaded videos and retroactively on existing content. Cloudflare's documentation covers setting the field, while the ability to filter analytics represents the first of what Cloudflare says will be more creator-level operations in Stream.



