state values.
Endpoint: PUT /2/users/:user_id/broadcasts/:broadcast_id/state
Publish (state: “PUBLISH”)
TransitionsNOT_STARTED → RUNNING. The broadcast becomes publicly visible on X. By default an announcement post is created. (Set should_not_tweet: true to suppress it.)
Request body
Chat option values
chat_option is an integer enum controlling who can participate in chat:
If you omit
chat_option when publishing, it defaults to 3 (verified accounts). Set it explicitly if you want a different audience.
Example request
Response (on success)
start_msis set when it becomes live.- The announcement post is created asynchronously.
tweet_idis typically not present in this publish response — re-fetch the broadcast (GET .../broadcasts/:broadcast_id) a moment later to readtweet_idonce the post exists. tweet_error: when present, an empty string means the post succeeded and a non-empty value describes why it failed (the broadcast still goes live regardless). This field may be absent from the response entirely.languagedefaults to"en"if you don’t sendlocale.
End (state: “END”)
TransitionsRUNNING → ENDED. Irreversible; you cannot restart a broadcast.
Request body (strict)
Example request
Response
available_for_replay was true (or per platform policy).