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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'