X · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for X API v2 Broadcasts API

14 actions 14 updates phrasing extends openapi/x-broadcasts-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for X's API. It is a proposal applied on top of the contract, not a document X publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 14

$.info
$.paths['/2/broadcasts'].get
$.paths['/2/broadcasts/scheduled'].get
$.paths['/2/broadcasts/scheduled'].post
$.paths['/2/broadcasts/scheduled/{id}'].get
$.paths['/2/broadcasts/scheduled/{id}'].put
$.paths['/2/broadcasts/scheduled/{id}'].delete
$.paths['/2/broadcasts/scheduled/{id}/live'].post
$.paths['/2/broadcasts/{id}'].get
$.paths['/2/broadcasts/{id}/chat'].get
$.paths['/2/broadcasts/{id}/chat'].post
$.paths['/2/broadcasts/{id}/chat/mutes'].post
$.paths['/2/broadcasts/{id}/chat/mutes/{user_id}'].delete
$.paths['/2/broadcasts/{id}/chat/{message_id}'].delete

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 X API v2 Broadcasts API
  version: 1.0.0
extends: openapi/x-broadcasts-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: 13
- target: $.paths['/2/broadcasts'].get
  update:
    x-apievangelist-phrasing:
      intent: List my live-video broadcasts
      effect: read
      questions:
      - How can I see all the live-video broadcasts I've run on X?
      - Can I fetch just a few of my broadcasts by their IDs instead of paging?
      instructions:
      - text: List my recent live-video broadcasts.
      - text: Fetch my broadcasts with IDs {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled'].get
  update:
    x-apievangelist-phrasing:
      intent: List my scheduled broadcasts
      effect: read
      questions:
      - Which upcoming broadcasts do I have scheduled?
      - Can I filter my scheduled broadcasts to a start-time window?
      instructions:
      - text: Show all broadcasts I have scheduled.
      - text: List scheduled broadcasts starting between {oldest_start_time} and {newest_start_time}.
        slots:
          oldest_start_time: query.oldest_start_time
          newest_start_time: query.newest_start_time
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled'].post
  update:
    x-apievangelist-phrasing:
      intent: Schedule a live broadcast
      effect: write
      questions:
      - How do I schedule a live-video broadcast ahead of time?
      - Can I set up a recurring broadcast that I publish manually when ready?
      instructions:
      - text: Schedule a broadcast on source {source_id} from {scheduled_start_ms} to {scheduled_end_ms}.
        slots:
          source_id: requestBody.source_id
          scheduled_start_ms: requestBody.scheduled_start_ms
          scheduled_end_ms: requestBody.scheduled_end_ms
      - text: Schedule {title} on ingest {source_id} from {scheduled_start_ms} to {scheduled_end_ms} with replay enabled.
        slots:
          title: requestBody.title
          source_id: requestBody.source_id
          scheduled_start_ms: requestBody.scheduled_start_ms
          scheduled_end_ms: requestBody.scheduled_end_ms
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one scheduled broadcast
      effect: read
      questions:
      - How do I look up the details of a single scheduled broadcast?
      - What start and end times are set on my scheduled broadcast?
      instructions:
      - text: Show scheduled broadcast {id}.
        slots:
          id: path.id
      - text: Get the schedule details for broadcast {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Reschedule a scheduled broadcast
      effect: write
      questions:
      - How do I move a scheduled broadcast to a new time?
      - Do I need to resend every field when editing a scheduled broadcast?
      instructions:
      - text: Reschedule broadcast {id} ({scheduled_broadcast_id}) to run {scheduled_start_ms} to {scheduled_end_ms}.
        slots:
          id: path.id
          scheduled_broadcast_id: requestBody.scheduled_broadcast_id
          scheduled_start_ms: requestBody.scheduled_start_ms
          scheduled_end_ms: requestBody.scheduled_end_ms
      - text: Retitle scheduled broadcast {id} to {title}, keeping start {scheduled_start_ms}, end {scheduled_end_ms}, id {scheduled_broadcast_id}.
        slots:
          id: path.id
          title: requestBody.title
          scheduled_start_ms: requestBody.scheduled_start_ms
          scheduled_end_ms: requestBody.scheduled_end_ms
          scheduled_broadcast_id: requestBody.scheduled_broadcast_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a scheduled broadcast
      effect: destructive
      questions:
      - Can I cancel a broadcast I scheduled earlier?
      - Can I delete a scheduled broadcast by its ID?
      instructions:
      - text: Delete scheduled broadcast {id}.
        slots:
          id: path.id
      - text: Cancel the scheduled broadcast {id} with roll forward {roll_forward}.
        slots:
          id: path.id
          roll_forward: query.roll_forward
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/scheduled/{id}/live'].post
  update:
    x-apievangelist-phrasing:
      intent: Go live on a manually published broadcast
      effect: write
      questions:
      - How do I start a scheduled broadcast that was set to manual publish?
      - Why is my go-live call rejected when the broadcast wasn't created with manual publish?
      instructions:
      - text: Go live now on scheduled broadcast {id}.
        slots:
          id: path.id
      - text: Publish my manual-publish broadcast {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one of my broadcasts
      effect: read
      questions:
      - How can I retrieve the details of a single live-video broadcast I own?
      - What fields can I request for one broadcast?
      instructions:
      - text: Get broadcast {id}.
        slots:
          id: path.id
      - text: Show broadcast {id} with fields {fields}.
        slots:
          id: path.id
          fields: query.broadcast.fields
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}/chat'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a broadcast's chat history
      effect: read
      questions:
      - How do I pull the chat messages from one of my broadcasts?
      - Are broadcast chat messages returned newest first?
      instructions:
      - text: Show the chat history for broadcast {id}.
        slots:
          id: path.id
      - text: Get the latest {max_results} chat messages from broadcast {id}.
        slots:
          id: path.id
          max_results: query.max_results
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}/chat'].post
  update:
    x-apievangelist-phrasing:
      intent: Post a chat message in a live broadcast
      effect: write
      questions:
      - Can I post a comment into my own live broadcast's chat?
      - Can I reply to a specific chat message during a live broadcast?
      instructions:
      - text: Say {text} in the chat of broadcast {id}.
        slots:
          text: requestBody.text
          id: path.id
      - text: Reply {text} to chat message {reply_to} in broadcast {id}.
        slots:
          text: requestBody.text
          reply_to: requestBody.reply_to
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}/chat/mutes'].post
  update:
    x-apievangelist-phrasing:
      intent: Mute or time out a viewer in broadcast chat
      effect: write
      questions:
      - How do I stop a viewer from posting in my live broadcast chat?
      - Can I time a user out of chat until a certain time instead of muting them forever?
      instructions:
      - text: Mute user {user_id} in broadcast {id}'s chat.
        slots:
          user_id: requestBody.user_id
          id: path.id
      - text: Time out {user_id} in broadcast {id} until {end_at_ms}.
        slots:
          user_id: requestBody.user_id
          id: path.id
          end_at_ms: requestBody.end_at_ms
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}/chat/mutes/{user_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unmute a viewer in broadcast chat
      effect: destructive
      questions:
      - How do I let a muted viewer talk in my broadcast chat again?
      - Can I lift a chat timeout early on a live broadcast?
      instructions:
      - text: Unmute {user_id} in broadcast {id}'s chat.
        slots:
          user_id: path.user_id
          id: path.id
      - text: Let user {user_id} post again in live broadcast {id}.
        slots:
          user_id: path.user_id
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/2/broadcasts/{id}/chat/{message_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a chat message from a live broadcast
      effect: destructive
      questions:
      - What's the way to delete an offensive message from my live broadcast chat?
      - Can I remove a single chat message while the broadcast is running?
      instructions:
      - text: Remove chat message {message_id} from broadcast {id}.
        slots:
          message_id: path.message_id
          id: path.id
      - text: Delete message {message_id} in my live broadcast {id}'s chat.
        slots:
          message_id: path.message_id
          id: path.id
      method: generated
      generated: '2026-09-26'