Cloudflare · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Cloudflare Stream Videos API
7 actions
7 updates
phrasing
extends
openapi/cloudflare-videos-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Cloudflare's API. It is a proposal applied on top of the contract, not a document Cloudflare publishes.
What the actions change
x-apievangelist-phrasing
Targets 7
$.info
$.paths['/accounts/{account_id}/stream'].get
$.paths['/accounts/{account_id}/stream'].post
$.paths['/accounts/{account_id}/stream/{video_id}'].get
$.paths['/accounts/{account_id}/stream/{video_id}'].post
$.paths['/accounts/{account_id}/stream/{video_id}'].delete
$.paths['/accounts/{account_id}/stream/direct_upload'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Cloudflare Stream Videos API
version: 1.0.0
extends: openapi/cloudflare-videos-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 6
- target: $.paths['/accounts/{account_id}/stream'].get
update:
x-apievangelist-phrasing:
intent: List videos in a Stream account
effect: read
questions:
- How do I see all the videos uploaded to my Stream account?
- Can I filter my Stream videos to only those still processing?
- Which of my videos have a certain word in their name?
instructions:
- text: List every Stream video in account {account}.
slots:
account: path.account_id
- text: Show Stream videos in account {account} with status {status}.
slots:
account: path.account_id
status: query.status
- text: Search Stream videos in account {account} by name for {search}.
slots:
account: path.account_id
search: query.search
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{account_id}/stream'].post
update:
x-apievangelist-phrasing:
intent: Upload a video to Stream from a URL
effect: write
questions:
- How can I get Stream to fetch and ingest a video that's already hosted at a public URL?
- Can I require signed URLs for playback when I import a video by link?
instructions:
- text: Import the video at {url} into Stream account {account}.
slots:
url: requestBody.url
account: path.account_id
- text: Copy the video from {url} into account {account} and restrict playback to {allowedOrigins}.
slots:
url: requestBody.url
account: path.account_id
allowedOrigins: requestBody.allowedOrigins
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{account_id}/stream/{video_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a video's status and playback details
effect: read
questions:
- Has my uploaded video finished processing yet?
- Where do I find the playback information for a specific Stream video?
instructions:
- text: Show details for Stream video {video} in account {account}.
slots:
video: path.video_id
account: path.account_id
- text: Check the processing status of video {video} in account {account}.
slots:
video: path.video_id
account: path.account_id
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{account_id}/stream/{video_id}'].post
update:
x-apievangelist-phrasing:
intent: Update a video's metadata and playback settings
effect: write
questions:
- How do I change the metadata on a video that's already in Stream?
- Can I turn on signed URL requirements for an existing video after upload?
instructions:
- text: Update the metadata of video {video} in account {account} to {meta}.
slots:
video: path.video_id
account: path.account_id
meta: requestBody.meta
- text: Set requireSignedURLs to {requireSignedURLs} on existing video {video} in account {account}.
slots:
requireSignedURLs: requestBody.requireSignedURLs
video: path.video_id
account: path.account_id
- text: Limit playback of video {video} in account {account} to origins {allowedOrigins}.
slots:
video: path.video_id
account: path.account_id
allowedOrigins: requestBody.allowedOrigins
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{account_id}/stream/{video_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a video from Stream
effect: destructive
questions:
- How do I permanently remove a video and its data from Stream?
- What happens to a video's associated data when I delete it?
instructions:
- text: Delete Stream video {video} from account {account}.
slots:
video: path.video_id
account: path.account_id
- text: Remove video {video} and everything attached to it in account {account}.
slots:
video: path.video_id
account: path.account_id
method: generated
generated: '2026-09-26'
- target: $.paths['/accounts/{account_id}/stream/direct_upload'].post
update:
x-apievangelist-phrasing:
intent: Create a one-time direct upload URL for a video
effect: write
questions:
- How can my users upload videos straight from their browser without going through my server?
- Can I cap the maximum video length allowed on a one-time upload link?
instructions:
- text: Create a direct upload URL in account {account} allowing videos up to {maxDurationSeconds} seconds.
slots:
account: path.account_id
maxDurationSeconds: requestBody.maxDurationSeconds
- text: Generate a one-time client upload link for account {account}, max {maxDurationSeconds}s, signed URLs {requireSignedURLs}.
slots:
account: path.account_id
maxDurationSeconds: requestBody.maxDurationSeconds
requireSignedURLs: requestBody.requireSignedURLs
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/cloudflare-videos-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.