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.
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
# 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'