openapi: 3.2.0 info: description: X API v2 core endpoints version: '2.168' title: X API v2 Broadcasts API termsOfService: https://developer.x.com/en/developer-terms/agreement-and-policy.html contact: name: X Developers url: https://developer.x.com/ license: name: X Developer Agreement and Policy url: https://developer.x.com/en/developer-terms/agreement-and-policy.html servers: - description: X API url: https://api.x.com tags: - name: Broadcasts description: Endpoints related to live broadcasts and their chat externalDocs: description: Find out more url: https://developer.x.com/ paths: /2/broadcasts: get: security: - OAuth2UserToken: - broadcast.read - UserToken: [] tags: - Broadcasts summary: List broadcasts description: 'Returns the authenticated user''s live-video broadcasts, or selected owned broadcasts when ids are provided. At most one of `ids`, `max_results` may be provided. At most one of `ids`, `pagination_token` may be provided.' operationId: listBroadcasts parameters: - name: ids in: query description: Comma-separated broadcast IDs to retrieve instead of listing broadcasts. required: false schema: type: array minItems: 1 maxItems: 100 items: type: string pattern: ^[a-zA-Z0-9]{1,13}$ explode: false style: form - name: max_results in: query required: false schema: type: integer minimum: 1 maximum: 100 format: int32 style: form - name: pagination_token in: query required: false schema: type: string minLength: 1 style: form - $ref: '#/components/parameters/BroadcastFieldsParameter' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListBroadcastsResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/scheduled: get: security: - OAuth2UserToken: - broadcast.read - UserToken: [] tags: - Broadcasts summary: List scheduled broadcasts description: Returns scheduled broadcasts owned by the authenticated user. operationId: listScheduledBroadcasts parameters: - name: max_results in: query required: false schema: type: integer minimum: 1 maximum: 100 format: int32 style: form - name: oldest_start_time in: query required: false schema: type: string style: form - name: newest_start_time in: query required: false schema: type: string style: form - name: pagination_token in: query required: false schema: type: string style: form responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListScheduledBroadcastsResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2UserToken: - broadcast.read - broadcast.write - UserToken: [] tags: - Broadcasts summary: Create a scheduled broadcast description: Schedules a one-off or recurring broadcast for the authenticated user. A `source_id` (ingest) is required at create time. operationId: createScheduledBroadcast requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateScheduledBroadcastRequest' required: true responses: '201': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/CreateScheduledBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/scheduled/{id}: delete: security: - OAuth2UserToken: - broadcast.write - broadcast.read - UserToken: [] tags: - Broadcasts summary: Delete a scheduled broadcast description: Deletes a scheduled broadcast by its alphanumeric UBS broadcast id. operationId: deleteScheduledBroadcast parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple - name: roll_forward in: query required: false schema: type: boolean style: form responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/DeleteScheduledBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' get: security: - OAuth2UserToken: - broadcast.read - UserToken: [] tags: - Broadcasts summary: Get a scheduled broadcast description: Returns a single scheduled broadcast by its alphanumeric UBS broadcast id. operationId: getScheduledBroadcast parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/GetScheduledBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' put: security: - OAuth2UserToken: - broadcast.write - broadcast.read - UserToken: [] tags: - Broadcasts summary: Update a scheduled broadcast description: Fully replaces schedule fields for a broadcast. Path `:id` is the UBS broadcast id; the body must include `scheduled_broadcast_id` and re-send any fields that should be kept. operationId: updateScheduledBroadcast parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateScheduledBroadcastRequest' required: true responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/UpdateScheduledBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/scheduled/{id}/live: post: security: - OAuth2UserToken: - broadcast.write - broadcast.read - UserToken: [] tags: - Broadcasts summary: Go live on a scheduled broadcast description: 'Publishes a schedule that was created or updated with `manual_publish: true`. Without that flag the coordinator auto-publishes at start and this call is rejected.' operationId: goLiveScheduledBroadcast parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/GoLiveScheduledBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/{id}: get: security: - OAuth2UserToken: - broadcast.read - UserToken: [] tags: - Broadcasts summary: Get a broadcast description: Returns a broadcast owned by the authenticated user. operationId: getBroadcast parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple - $ref: '#/components/parameters/BroadcastFieldsParameter' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/GetBroadcastResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/{id}/chat: get: security: - OAuth2UserToken: - broadcast.read - UserToken: [] tags: - Broadcasts summary: Get broadcast chat history description: Returns newest-first chat messages for a broadcast owned by the authenticated user. operationId: getBroadcastChat parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple - name: max_results in: query required: false schema: type: integer minimum: 1 maximum: 200 format: int32 default: 100 style: form - name: pagination_token in: query description: A 64-bit signed integer. required: false schema: type: string style: form - $ref: '#/components/parameters/BroadcastChatMessageFieldsParameter' - $ref: '#/components/parameters/BroadcastChatMessageExpansionsParameter' - $ref: '#/components/parameters/UserFieldsParameter' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/GetBroadcastChatResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' post: security: - OAuth2UserToken: - broadcast.write - broadcast.read - UserToken: [] tags: - Broadcasts summary: Send a chat message to a live broadcast description: Posts a chat message to a running broadcast, attributed to the authenticated user. operationId: sendBroadcastChat parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/SendBroadcastChatRequest' required: true responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/SendBroadcastChatResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/{id}/chat/mutes: post: security: - OAuth2UserToken: - broadcast.read - broadcast.write - UserToken: [] tags: - Broadcasts summary: Mute or time out a user in a broadcast chat description: Prevents a user from posting further messages in a running broadcast chat. When `end_at_ms` is provided, the mute expires at that time. The authenticated user must own the broadcast. operationId: muteBroadcastChatUser parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/MuteBroadcastChatUserRequest' required: true responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/MuteBroadcastChatUserResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/{id}/chat/mutes/{user_id}: delete: security: - OAuth2UserToken: - broadcast.write - broadcast.read - UserToken: [] tags: - Broadcasts summary: Unmute a user in a broadcast chat description: Allows a muted user to post messages in a running broadcast chat again. The authenticated user must own the broadcast. operationId: unmuteBroadcastChatUser parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple - name: user_id in: path description: A 64-bit signed integer. required: true schema: type: string pattern: ^[1-9][0-9]{0,18}$ style: simple responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/UnmuteBroadcastChatUserResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' /2/broadcasts/{id}/chat/{message_id}: delete: security: - OAuth2UserToken: - broadcast.read - broadcast.write - UserToken: [] tags: - Broadcasts summary: Remove a chat message from a live broadcast description: Removes a specific chat message from a running broadcast owned by the authenticated user. operationId: deleteBroadcastChatMessage parameters: - name: id in: path required: true schema: type: string pattern: ^[a-zA-Z0-9]{1,13}$ style: simple - name: message_id in: path required: true schema: type: string pattern: ^[0-9]{1,19}$ style: simple responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/DeleteBroadcastChatMessageResponse' default: description: The request has failed. content: application/json: schema: $ref: '#/components/schemas/Error' application/problem+json: schema: $ref: '#/components/schemas/Problem' components: schemas: MuteBroadcastChatUserRequest: type: object required: - user_id properties: end_at_ms: type: string description: The Unix timestamp in milliseconds when the mute expires. Omit this field to mute indefinitely. pattern: ^[1-9][0-9]{0,18}$ message_id: type: string description: A chat message to remove while muting the user. pattern: ^[1-9][0-9]{0,18}$ user_id: type: string description: The user to mute. pattern: ^[1-9][0-9]{0,18}$ additionalProperties: false UnmuteBroadcastChatUserResponseData: type: object required: - muted properties: muted: type: boolean description: Whether the user is muted in this broadcast chat. FieldHydrationFailureProblem: type: object required: - type - title - detail - field properties: detail: type: string field: type: string resource_type: type: string section: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/field-hydration-failure ListBroadcastsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/Broadcast' errors: type: array items: $ref: '#/components/schemas/Problem' meta: type: object properties: next_token: type: string description: Pagination token for the next page of results. result_count: type: integer description: Number of items in the data array. format: int32 CreateScheduledBroadcastRequest: type: object required: - source_id - scheduled_start_ms - scheduled_end_ms properties: available_for_replay: type: boolean description: Enable replay. chat_option: type: string description: Chat permission option (numeric string). pattern: ^[0-9]{1,19}$ description: type: string description: Description. is_locked: type: boolean description: Lock the broadcast. locale: type: string description: Locale. manual_publish: type: boolean description: If true, do not auto-publish at start; call POST .../live when ready. recurrence: description: If set, creates a recurring series. $ref: '#/components/schemas/CreateScheduledBroadcastRecurrence' scheduled_end_ms: type: string description: End time, ms since Unix epoch (decimal string). pattern: ^[0-9]{1,19}$ scheduled_start_ms: type: string description: Start time, ms since Unix epoch (decimal string). pattern: ^[0-9]{1,19}$ source_id: type: string description: Ingest / source id to bind (same as sources `rtmp_stream_key`). minLength: 1 telecast_id: type: string description: Optional telecast id (numeric string). pattern: ^[0-9]{1,19}$ thumbnail_media_id: type: string description: Pre-live slate media id (numeric string). pattern: ^[0-9]{1,19}$ title: type: string description: Title / status text. additionalProperties: false Poll: type: object properties: duration_minutes: type: integer end_datetime: type: string id: type: string options: $ref: '#/components/schemas/PollOptions' voting_status: type: string UserWithheld: type: object description: Withholding details for withheld content. properties: country_codes: type: - array - 'null' description: A list of countries (as ISO 3166-1 alpha-2 codes) where this content is withheld. items: type: string scope: type: - string - 'null' description: The scope of the withholding. Only present, with the value "user", when the entire User is withheld. enum: - user Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string ResourceUnavailableProblem: type: object required: - type - title - detail - resource_type properties: detail: type: string resource_id: type: string resource_type: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/resource-unavailable UserEntities: type: object description: A list of metadata found in the User's profile description. properties: description: type: - object - 'null' description: Entities found in the User's bio. properties: cashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string hashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string mentions: type: - array - 'null' items: type: object description: A user mention entity. required: - start - end - username properties: end: type: integer format: int64 id: type: - string - 'null' start: type: integer format: int64 username: type: string urls: type: - array - 'null' items: type: object description: A URL entity found in profile text. required: - start - end - url properties: description: type: - string - 'null' description: Description of the linked page, when available. display_url: type: - string - 'null' description: The URL as displayed in the Post text. end: type: integer format: int64 expanded_url: type: - string - 'null' description: The fully resolved URL. images: type: - array - 'null' items: type: object description: A preview image for a linked page. properties: height: type: - integer - 'null' format: int64 url: type: - string - 'null' width: type: - integer - 'null' format: int64 media_key: type: - string - 'null' start: type: integer format: int64 status: type: - integer - 'null' description: HTTP status from resolving the URL. format: int64 title: type: - string - 'null' description: Title of the linked page, when available. unwound_url: type: - string - 'null' description: The final destination after following redirects. url: type: string description: The t.co shortened URL. url: type: - object - 'null' description: Entities for the User's profile website URL. properties: urls: type: - array - 'null' items: type: object description: A URL entity found in profile text. required: - start - end - url properties: description: type: - string - 'null' description: Description of the linked page, when available. display_url: type: - string - 'null' description: The URL as displayed in the Post text. end: type: integer format: int64 expanded_url: type: - string - 'null' description: The fully resolved URL. images: type: - array - 'null' items: type: object description: A preview image for a linked page. properties: height: type: - integer - 'null' format: int64 url: type: - string - 'null' width: type: - integer - 'null' format: int64 media_key: type: - string - 'null' start: type: integer format: int64 status: type: - integer - 'null' description: HTTP status from resolving the URL. format: int64 title: type: - string - 'null' description: Title of the linked page, when available. unwound_url: type: - string - 'null' description: The final destination after following redirects. url: type: string description: The t.co shortened URL. PostMediaMetadata: type: array description: Metadata for media attached to this Post. items: type: object description: Metadata for one media item attached to this Post. properties: alt_text: type: - string - 'null' description: Alternative text describing the media for accessibility. description: type: - string - 'null' description: Description of the media. media_key: type: - string - 'null' description: The unique identifier of the media. title: type: - string - 'null' description: Title of the media. GoLiveScheduledBroadcastResponseData: type: object properties: available_for_replay: type: boolean description: Whether replay is enabled. broadcast_id: type: string description: Alphanumeric UBS broadcast id (path `:id` for get/update/delete/live). chat_option: type: string description: Optional chat permission option. description: type: string description: Optional description. locale: type: string description: Optional locale. manual_publish: type: boolean description: When true, coordinator will not auto-publish; call POST .../live when ready. recurring_schedule_id: type: string description: Set when this occurrence belongs to a recurrence. scheduled_broadcast_id: type: string description: Numeric scheduler id. Required in the update request body. scheduled_end_ms: type: string description: Scheduled end, milliseconds since Unix epoch (decimal string). scheduled_start_ms: type: string description: Scheduled start, milliseconds since Unix epoch (decimal string). source_id: type: string description: Bound ingest / source id (`rtmp_stream_key`). state: type: string description: Scheduler state (Created, Scheduled, Running, …). telecast_id: type: string description: Optional telecast association. thumbnail_media_id: type: string description: Optional pre-live slate media id. title: type: string description: Broadcast title / status text. UpdateScheduledBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/UpdateScheduledBroadcastResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' InternalErrorProblem: type: object required: - type - title - detail properties: detail: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/internal-error PostEditControls: type: object description: Indicates how much longer (if at all) this Post can be edited. properties: editable_until: type: - string - 'null' description: The time until which this Post can be edited. edits_remaining: type: - integer - 'null' description: Number of edits still allowed for this Post. format: int64 is_edit_eligible: type: - boolean - 'null' description: Indicates whether this Post is eligible to be edited. UserAffiliation: type: object description: Metadata about a user's affiliation. properties: badge_url: type: - string - 'null' description: URL of the affiliation badge image shown on the User's profile. description: type: - string - 'null' description: Description of the affiliation. url: type: - string - 'null' description: URL associated with the affiliation. user_id: type: - array - 'null' description: A list of unique identifiers of the accounts this User is affiliated with. items: type: string Problem: oneOf: - $ref: '#/components/schemas/ResourceNotFoundProblem' - $ref: '#/components/schemas/InvalidRequestProblem' - $ref: '#/components/schemas/NotAuthorizedForResourceProblem' - $ref: '#/components/schemas/NotAuthorizedForFieldProblem' - $ref: '#/components/schemas/FieldUnauthorizedProblem' - $ref: '#/components/schemas/FieldHydrationFailureProblem' - $ref: '#/components/schemas/ResourceUnavailableProblem' - $ref: '#/components/schemas/DisallowedResourceProblem' - $ref: '#/components/schemas/InternalErrorProblem' discriminator: propertyName: type mapping: https://api.x.com/2/problems/disallowed-resource: '#/components/schemas/DisallowedResourceProblem' https://api.x.com/2/problems/field-hydration-failure: '#/components/schemas/FieldHydrationFailureProblem' https://api.x.com/2/problems/field-unauthorized: '#/components/schemas/FieldUnauthorizedProblem' https://api.x.com/2/problems/internal-error: '#/components/schemas/InternalErrorProblem' https://api.x.com/2/problems/invalid-request: '#/components/schemas/InvalidRequestProblem' https://api.x.com/2/problems/not-authorized-for-field: '#/components/schemas/NotAuthorizedForFieldProblem' https://api.x.com/2/problems/not-authorized-for-resource: '#/components/schemas/NotAuthorizedForResourceProblem' https://api.x.com/2/problems/resource-not-found: '#/components/schemas/ResourceNotFoundProblem' https://api.x.com/2/problems/resource-unavailable: '#/components/schemas/ResourceUnavailableProblem' UserSubscription: type: object description: The subscription relationship between this User and you. required: - subscribes_to_you properties: subscribes_to_you: type: boolean description: Indicates if this User subscribes to you. ListScheduledBroadcastsResponseData: type: object properties: available_for_replay: type: boolean description: Whether replay is enabled. broadcast_id: type: string description: Alphanumeric UBS broadcast id (path `:id` for get/update/delete/live). chat_option: type: string description: Optional chat permission option. description: type: string description: Optional description. locale: type: string description: Optional locale. manual_publish: type: boolean description: When true, coordinator will not auto-publish; call POST .../live when ready. recurring_schedule_id: type: string description: Set when this occurrence belongs to a recurrence. scheduled_broadcast_id: type: string description: Numeric scheduler id. Required in the update request body. scheduled_end_ms: type: string description: Scheduled end, milliseconds since Unix epoch (decimal string). scheduled_start_ms: type: string description: Scheduled start, milliseconds since Unix epoch (decimal string). source_id: type: string description: Bound ingest / source id (`rtmp_stream_key`). state: type: string description: Scheduler state (Created, Scheduled, Running, …). telecast_id: type: string description: Optional telecast association. thumbnail_media_id: type: string description: Optional pre-live slate media id. title: type: string description: Broadcast title / status text. MuteBroadcastChatUserResponseData: type: object required: - muted properties: muted: type: boolean description: Whether the user is muted in this broadcast chat. DeleteBroadcastChatMessageResponseData: type: object required: - deleted properties: deleted: type: boolean description: Whether the chat message was removed. MuteBroadcastChatUserResponse: type: object properties: data: $ref: '#/components/schemas/MuteBroadcastChatUserResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' PostReferencedPosts: type: array description: A list of Posts this Post refers to. If the Post is a Retweet, Quote or Reply, it includes the referenced Post's type and ID. items: type: object description: A reference from this Post to another Post (repost, quote, or reply). required: - type - id properties: id: type: string description: Unique identifier of the referenced Post. type: description: How this Post references the other Post. oneOf: - type: string description: The kind of Post-to-Post reference. enum: - retweeted - quoted - replied_to PostNotePost: type: object description: The full content of the Post, including text beyond 280 characters. required: - text properties: entities: type: - object - 'null' description: Metadata entities (hashtags, cashtags, mentions, URLs) found in the note Post text. properties: cashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string hashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string mentions: type: - array - 'null' items: type: object description: A user mention entity. required: - start - end properties: end: type: integer format: int64 id: type: - string - 'null' start: type: integer format: int64 username: type: - string - 'null' urls: type: - array - 'null' items: type: object description: A URL entity found in note Post text. required: - start - end properties: display_url: type: - string - 'null' end: type: integer format: int64 expanded_url: type: - string - 'null' start: type: integer format: int64 url: type: - string - 'null' text: type: string description: The full note text of the Post. ListScheduledBroadcastsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/ListScheduledBroadcastsResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' PostScopes: type: object description: The scopes for this Post. required: - followers properties: followers: type: boolean description: Indicates whether visibility of this Post is limited to the author's followers. DisallowedResourceProblem: type: object required: - type - title - detail properties: detail: type: string resource_id: type: string resource_type: type: string section: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/disallowed-resource PostSuggestedSourceLinksWithCounts: type: array description: Suggested source URLs for this Post, each with the number of times it was suggested. items: type: object description: A suggested source URL for this Post with the number of times it was suggested. properties: count: type: - integer - 'null' description: Number of times this source link was suggested. format: int64 url: type: - string - 'null' description: The suggested source URL. SendBroadcastChatRequest: type: object required: - text properties: reply_to: type: string description: Message id to reply to, returned as timestamp when sent. pattern: ^[0-9]{1,19}$ text: type: string description: The chat message text. minLength: 1 maxLength: 140 additionalProperties: false BroadcastChatMessage: type: object properties: author_id: type: string author_name: type: string author_username: type: string broadcast_id: type: string created_at_ms: type: string id: type: string reply_to: type: string text: type: string SendBroadcastChatResponseData: type: object required: - success - timestamp properties: success: type: boolean description: Whether the chat message was sent. timestamp: type: string description: Server timestamp of the message, in nanoseconds. CreateScheduledBroadcastRecurrence: type: object required: - frequency - repeats properties: frequency: type: string description: Recurrence frequency. enum: - Daily - Weekly repeats: type: string description: Number of repeats (numeric string). pattern: ^[0-9]{1,19}$ additionalProperties: false Topic: type: object properties: description: type: string id: type: string name: type: string PlaceContainedWithin: type: array description: A list of unique identifiers of the Places that contain this place. items: type: string MediaPublicMetrics: type: object description: Public engagement metrics for the media at the time of the request. required: - view_count properties: view_count: type: integer description: The number of times this video has been viewed. format: int64 PostDisplayTextRange: type: array description: The inclusive start and exclusive end indices of the displayable content of the Post. minItems: 2 maxItems: 2 items: type: integer format: int64 Expansions: type: object properties: media: type: array items: $ref: '#/components/schemas/Media' places: type: array items: $ref: '#/components/schemas/Place' polls: type: array items: $ref: '#/components/schemas/Poll' posts: type: array items: $ref: '#/components/schemas/Post' topics: type: array items: $ref: '#/components/schemas/Topic' users: type: array items: $ref: '#/components/schemas/User' SendBroadcastChatResponse: type: object properties: data: $ref: '#/components/schemas/SendBroadcastChatResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' PostGeo: type: object description: The location tagged on the Post, if the user provided one. properties: coordinates: type: - object - 'null' description: A GeoJSON Point geometry. required: - type - coordinates properties: coordinates: type: array description: '[longitude, latitude].' minItems: 2 maxItems: 2 items: type: number format: double type: type: string description: The GeoJSON geometry type. enum: - Point place_id: type: - string - 'null' description: The unique identifier of the tagged place. PostEntities: type: object description: A list of metadata entities (hashtags, mentions, URLs) found in the Post text. properties: cashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string hashtags: type: - array - 'null' items: type: object description: A hashtag or cashtag entity. required: - start - end - tag properties: end: type: integer description: End index in the text (exclusive). format: int64 start: type: integer description: Start index in the text (inclusive). format: int64 tag: type: string mentions: type: - array - 'null' items: type: object description: A user mention entity. required: - start - end properties: end: type: integer format: int64 id: type: - string - 'null' start: type: integer format: int64 username: type: - string - 'null' urls: type: - array - 'null' items: type: object description: A URL entity found in the Post text, enriched with link metadata. required: - start - end properties: description: type: - string - 'null' description: Description of the linked page, when available. display_url: type: - string - 'null' description: The URL as displayed in the Post text. end: type: integer format: int64 expanded_url: type: - string - 'null' description: The fully resolved URL. images: type: - array - 'null' items: type: object description: A preview image for a linked page. properties: height: type: - integer - 'null' format: int64 url: type: - string - 'null' width: type: - integer - 'null' format: int64 media_key: type: - string - 'null' start: type: integer format: int64 status: type: - integer - 'null' description: HTTP status from resolving the URL. format: int64 title: type: - string - 'null' description: Title of the linked page, when available. unwound_url: type: - string - 'null' description: The final destination after following redirects. url: type: - string - 'null' description: The t.co shortened URL. MediaVariants: type: array description: Each media object may have multiple display or playback variants, with different resolutions or formats. items: type: object description: A single playback or display variant of a media object. properties: bit_rate: type: - integer - 'null' description: The bit rate of this variant, in bits per second. Absent for playlist variants. format: int64 content_type: type: - string - 'null' description: The MIME type of this variant, for example "video/mp4" or "application/x-mpegURL". url: type: - string - 'null' description: The URL to this media variant. UpdateScheduledBroadcastResponseData: type: object properties: available_for_replay: type: boolean description: Whether replay is enabled. broadcast_id: type: string description: Alphanumeric UBS broadcast id (path `:id` for get/update/delete/live). chat_option: type: string description: Optional chat permission option. description: type: string description: Optional description. locale: type: string description: Optional locale. manual_publish: type: boolean description: When true, coordinator will not auto-publish; call POST .../live when ready. recurring_schedule_id: type: string description: Set when this occurrence belongs to a recurrence. scheduled_broadcast_id: type: string description: Numeric scheduler id. Required in the update request body. scheduled_end_ms: type: string description: Scheduled end, milliseconds since Unix epoch (decimal string). scheduled_start_ms: type: string description: Scheduled start, milliseconds since Unix epoch (decimal string). source_id: type: string description: Bound ingest / source id (`rtmp_stream_key`). state: type: string description: Scheduler state (Created, Scheduled, Running, …). telecast_id: type: string description: Optional telecast association. thumbnail_media_id: type: string description: Optional pre-live slate media id. title: type: string description: Broadcast title / status text. UnmuteBroadcastChatUserResponse: type: object properties: data: $ref: '#/components/schemas/UnmuteBroadcastChatUserResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' NotAuthorizedForFieldProblem: type: object required: - type - title - detail - field properties: detail: type: string field: type: string parameter: type: string resource_id: type: string resource_type: type: string section: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/not-authorized-for-field value: type: string PostNoteRequestSuggestions: type: array description: Community-Notes request suggestions for this Post. items: type: object description: A Community-Notes request suggestion for this Post. properties: source_link: type: - string - 'null' description: A suggested source link supporting the note request. suggestion: type: - string - 'null' description: The text of the note request suggestion. suggestion_id: type: - string - 'null' description: The unique identifier of the note request suggestion. MediaPromotedMetrics: type: object description: Promoted nonpublic engagement metrics for the media at the time of the request. properties: playback_0_count: type: - integer - 'null' description: Number of users who started playback (0% quartile) of this video. format: int64 playback_100_count: type: - integer - 'null' description: Number of users who completed playback (100% quartile) of this video. format: int64 playback_25_count: type: - integer - 'null' description: Number of users who watched at least 25% of this video. format: int64 playback_50_count: type: - integer - 'null' description: Number of users who watched at least 50% of this video. format: int64 playback_75_count: type: - integer - 'null' description: Number of users who watched at least 75% of this video. format: int64 view_count: type: - integer - 'null' description: The number of promoted views of this video. Null when the backend returns quartile data without a view count. format: int64 User: type: object properties: affiliation: $ref: '#/components/schemas/UserAffiliation' confirmed_email: type: string connection_status: $ref: '#/components/schemas/UserConnectionStatus' created_at: type: string description: Creation time of this User. format: date-time description: type: string description: The text of this User's profile description (also known as bio), if the User provided one. entities: $ref: '#/components/schemas/UserEntities' id: type: string description: Unique identifier of this User. is_identity_verified: type: boolean description: Indicates if this User has completed identity verification. location: type: string description: The location specified in the User's profile, if the User provided one. As this is a freeform value, it may not indicate a valid location. most_recent_post_id: type: string description: Unique identifier of this User's most recent Post. name: type: string description: The friendly name of this User, as shown on their profile. parody: type: boolean description: Indicates if this User is a parody account. pinned_post_id: type: string description: Unique identifier of this User's pinned Post. profile_banner_url: type: string description: The URL to the profile banner for this User. profile_image_url: type: string description: The URL to the profile image for this User. protected: type: boolean description: Indicates if this User has chosen to protect their Posts (in other words, if this User's Posts are private). public_metrics: $ref: '#/components/schemas/UserPublicMetrics' receives_your_dm: type: boolean description: Indicates if you can send a DM to this User. subscriber_count: type: integer description: The number of Premium subscribers of this User. subscribes_to_you: type: boolean description: Indicates if this User subscribes to you. subscription: $ref: '#/components/schemas/UserSubscription' subscription_type: type: string description: 'The X Blue subscription type of the user, e.g.: Basic, Premium, PremiumPlus or None.' url: type: string description: The URL specified in the User's profile. username: type: string description: The X handle (screen name) of this User. verified: type: boolean description: Indicates if this User is a verified X User. verified_followers_count: type: integer description: The number of verified followers of this User. verified_type: type: string description: 'The X Blue verified type of the user, e.g.: blue, government, business or none.' withheld: $ref: '#/components/schemas/UserWithheld' GetScheduledBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/GetScheduledBroadcastResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' UserPublicMetrics: type: object description: A list of metrics for this User. required: - followers_count - following_count - post_count - listed_count properties: followers_count: type: integer description: Number of Users who follow this User. format: int64 following_count: type: integer description: Number of Users this User follows. format: int64 like_count: type: - integer - 'null' description: Number of Posts this User has liked. format: int64 listed_count: type: integer description: Number of Lists that include this User. format: int64 media_count: type: - integer - 'null' description: Number of media items posted by this User. format: int64 post_count: type: integer description: Number of Posts (including Reposts) created by this User. format: int64 Place: type: object properties: contained_within: $ref: '#/components/schemas/PlaceContainedWithin' country: type: string country_code: type: string full_name: type: string geo: $ref: '#/components/schemas/PlaceGeo' id: type: string name: type: string place_type: type: string UpdateScheduledBroadcastRequest: type: object required: - scheduled_broadcast_id - scheduled_start_ms - scheduled_end_ms properties: available_for_replay: type: boolean description: Enable replay. chat_option: type: string description: Chat permission option (numeric string). pattern: ^[0-9]{1,19}$ description: type: string description: Description. is_locked: type: boolean description: Lock the broadcast. locale: type: string description: Locale. manual_publish: type: boolean description: If true, do not auto-publish at start; call POST .../live when ready. roll_forward: type: boolean description: When true, shift the head of a recurring series. scheduled_broadcast_id: type: string description: Numeric scheduler id from create/list/get. pattern: ^[0-9]{1,19}$ scheduled_end_ms: type: string description: End time, ms since Unix epoch (decimal string). pattern: ^[0-9]{1,19}$ scheduled_start_ms: type: string description: Start time, ms since Unix epoch (decimal string). pattern: ^[0-9]{1,19}$ source_id: type: string description: Ingest / source id. thumbnail_media_id: type: string description: Pre-live slate media id (numeric string). pattern: ^[0-9]{1,19}$ title: type: string description: Title / status text. additionalProperties: false DeleteBroadcastChatMessageResponse: type: object properties: data: $ref: '#/components/schemas/DeleteBroadcastChatMessageResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' PostPublicMetrics: type: object description: Engagement metrics for the Post at the time of the request. required: - repost_count - reply_count - like_count - quote_count - bookmark_count - impression_count properties: bookmark_count: type: integer description: Number of times this Post has been bookmarked. format: int64 impression_count: type: integer description: Number of times this Post has been viewed. format: int64 like_count: type: integer description: Number of likes on this Post. format: int64 quote_count: type: integer description: Number of quote Posts of this Post. format: int64 reply_count: type: integer description: Number of replies to this Post. format: int64 repost_count: type: integer description: Number of times this Post has been reposted. format: int64 CreateScheduledBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/CreateScheduledBroadcastResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' Media: type: object properties: alt_text: type: string duration_ms: type: integer height: type: integer media_key: type: string non_public_metrics: $ref: '#/components/schemas/MediaNonPublicMetrics' organic_metrics: $ref: '#/components/schemas/MediaOrganicMetrics' preview_image_url: type: string promoted_metrics: $ref: '#/components/schemas/MediaPromotedMetrics' public_metrics: $ref: '#/components/schemas/MediaPublicMetrics' type: type: string url: type: string variants: $ref: '#/components/schemas/MediaVariants' width: type: integer Broadcast: type: object properties: available_for_replay: type: boolean broadcast_id: type: string chat_option: type: integer created_at_ms: type: string end_ms: type: string height: type: integer id: type: string image_url: type: string image_url_medium: type: string image_url_small: type: string is_high_latency: type: boolean language: type: string media_key: type: string scheduled_end_ms: type: string scheduled_start_ms: type: string share_url: type: string source_id: type: string start_ms: type: string state: type: string title: type: string total_watched: type: string total_watching: type: string tweet_id: type: string twitter_user_id: type: string updated_at_ms: type: string width: type: integer PostSuggestedSourceLinks: type: array description: URLs suggested as sources for this Post. items: type: string NotAuthorizedForResourceProblem: type: object required: - type - title - detail - resource_type properties: detail: type: string parameter: type: string resource_id: type: string resource_type: type: string section: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/not-authorized-for-resource value: type: string MediaNonPublicMetrics: type: object description: Nonpublic engagement metrics for the media at the time of the request. properties: playback_0_count: type: - integer - 'null' description: Number of users who started playback (0% quartile) of this video. format: int64 playback_100_count: type: - integer - 'null' description: Number of users who completed playback (100% quartile) of this video. format: int64 playback_25_count: type: - integer - 'null' description: Number of users who watched at least 25% of this video. format: int64 playback_50_count: type: - integer - 'null' description: Number of users who watched at least 50% of this video. format: int64 playback_75_count: type: - integer - 'null' description: Number of users who watched at least 75% of this video. format: int64 DeleteScheduledBroadcastResponseData: type: object required: - deleted properties: deleted: type: boolean description: Whether the scheduled broadcast was deleted. UserConnectionStatus: type: array description: Returns detailed information about the relationship between two users. items: type: string description: A connection between the authenticated User and this User. enum: - blocking - follow_request_received - follow_request_sent - followed_by - following - muting GetBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/Broadcast' errors: type: array items: $ref: '#/components/schemas/Problem' Post: type: object properties: article: type: object article_title: type: object description: Metadata about the long-form Article attached to this Post, if any. attachments: $ref: '#/components/schemas/PostAttachments' author_id: type: string description: Unique identifier of the author of this Post. card_uri: type: string community_id: type: string description: The unique identifier of the Community this Post belongs to, if any. context_annotations: $ref: '#/components/schemas/PostContextAnnotations' conversation_id: type: string description: The ID of the conversation this Post belongs to (matches the root Post's ID). created_at: type: string description: Creation time of the Post. format: date-time display_text_range: $ref: '#/components/schemas/PostDisplayTextRange' edit_controls: $ref: '#/components/schemas/PostEditControls' edit_history_post_ids: type: array description: A list of Post IDs in this Post's edit history chain. items: type: string entities: $ref: '#/components/schemas/PostEntities' geo: $ref: '#/components/schemas/PostGeo' id: type: string description: Unique identifier of this Post. in_reply_to_user_id: type: string description: Unique identifier of the User this Post is replying to. lang: type: string description: Language of the Post, if detected by X. Returned as a BCP47 language tag. matched_media_notes: $ref: '#/components/schemas/PostMatchedMediaNotes' media_metadata: $ref: '#/components/schemas/PostMediaMetadata' non_public_metrics: type: object description: Nonpublic engagement metrics for the Post at the time of the request. note_post: $ref: '#/components/schemas/PostNotePost' note_request_suggestions: $ref: '#/components/schemas/PostNoteRequestSuggestions' organic_metrics: type: object description: Organic nonpublic engagement metrics for the Post at the time of the request. paid_partnership: type: boolean description: Indicates if this Post is a paid partnership, i.e. it has been disclosed by the author as containing paid promotion. possibly_sensitive: type: boolean description: Indicates if this Post contains URLs marked as sensitive, for example content suitable for mature audiences. promoted_metrics: type: object description: Promoted nonpublic engagement metrics for the Post at the time of the request. public_metrics: $ref: '#/components/schemas/PostPublicMetrics' referenced_posts: $ref: '#/components/schemas/PostReferencedPosts' reply_settings: type: string description: Shows who can reply to this Post. scopes: $ref: '#/components/schemas/PostScopes' source: type: string description: The name of the app the user posted from. This is deprecated. suggested_source_links: $ref: '#/components/schemas/PostSuggestedSourceLinks' suggested_source_links_with_counts: $ref: '#/components/schemas/PostSuggestedSourceLinksWithCounts' text: type: string description: The content of the Post. username: type: string withheld: $ref: '#/components/schemas/PostWithheld' InvalidRequestProblem: type: object required: - type - title - detail properties: detail: type: string parameter: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/invalid-request value: type: string PostAttachments: type: object description: Specifies the type of attachments (if any) present in this Post. properties: media_keys: type: - array - 'null' description: Media keys of media attached to this Post. items: type: string media_source_tweet_id: type: - array - 'null' description: IDs of the source Posts the attached media originated from. items: type: string poll_ids: type: - array - 'null' description: IDs of polls attached to this Post. items: type: string CreateScheduledBroadcastResponseData: type: object properties: available_for_replay: type: boolean description: Whether replay is enabled. broadcast_id: type: string description: Alphanumeric UBS broadcast id (path `:id` for get/update/delete/live). chat_option: type: string description: Optional chat permission option. description: type: string description: Optional description. locale: type: string description: Optional locale. manual_publish: type: boolean description: When true, coordinator will not auto-publish; call POST .../live when ready. recurring_schedule_id: type: string description: Set when this occurrence belongs to a recurrence. scheduled_broadcast_id: type: string description: Numeric scheduler id. Required in the update request body. scheduled_end_ms: type: string description: Scheduled end, milliseconds since Unix epoch (decimal string). scheduled_start_ms: type: string description: Scheduled start, milliseconds since Unix epoch (decimal string). source_id: type: string description: Bound ingest / source id (`rtmp_stream_key`). state: type: string description: Scheduler state (Created, Scheduled, Running, …). telecast_id: type: string description: Optional telecast association. thumbnail_media_id: type: string description: Optional pre-live slate media id. title: type: string description: Broadcast title / status text. PostContextAnnotations: type: array description: Annotations inferred about the Post (domain and entity context). items: type: object description: A single inferred annotation about the Post (domain and entity context). required: - domain - entity properties: domain: description: The domain (broad category) this annotation belongs to. oneOf: - type: object description: A domain or entity referenced by a context annotation. properties: description: type: - string - 'null' id: type: - string - 'null' name: type: - string - 'null' entity: description: The specific entity recognized within the domain. oneOf: - type: object description: A domain or entity referenced by a context annotation. properties: description: type: - string - 'null' id: type: - string - 'null' name: type: - string - 'null' PollOptions: type: array description: The list of options (choices) available in this poll. items: type: object description: A single option (choice) available in a poll. required: - position - label - votes properties: label: type: string description: The text label of this poll option. position: type: integer description: The 1-based position of this option within the poll. format: int64 votes: type: integer description: The number of votes this option has received. format: int64 DeleteScheduledBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/DeleteScheduledBroadcastResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' GetBroadcastChatResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/BroadcastChatMessage' errors: type: array items: $ref: '#/components/schemas/Problem' includes: $ref: '#/components/schemas/Expansions' meta: type: object properties: next_token: type: string description: Pagination token for the next page of results. result_count: type: integer description: Number of items in the data array. format: int32 PlaceGeo: type: object description: The geographic location of this place, expressed as a GeoJSON Feature. required: - type - bbox - properties properties: bbox: type: array description: The bounding box as [southwest_longitude, southwest_latitude, northeast_longitude, northeast_latitude]. minItems: 4 maxItems: 4 items: type: number format: double properties: type: object description: Additional GeoJSON feature properties. type: description: The GeoJSON feature type. oneOf: - type: string enum: - Feature GetScheduledBroadcastResponseData: type: object properties: available_for_replay: type: boolean description: Whether replay is enabled. broadcast_id: type: string description: Alphanumeric UBS broadcast id (path `:id` for get/update/delete/live). chat_option: type: string description: Optional chat permission option. description: type: string description: Optional description. locale: type: string description: Optional locale. manual_publish: type: boolean description: When true, coordinator will not auto-publish; call POST .../live when ready. recurring_schedule_id: type: string description: Set when this occurrence belongs to a recurrence. scheduled_broadcast_id: type: string description: Numeric scheduler id. Required in the update request body. scheduled_end_ms: type: string description: Scheduled end, milliseconds since Unix epoch (decimal string). scheduled_start_ms: type: string description: Scheduled start, milliseconds since Unix epoch (decimal string). source_id: type: string description: Bound ingest / source id (`rtmp_stream_key`). state: type: string description: Scheduler state (Created, Scheduled, Running, …). telecast_id: type: string description: Optional telecast association. thumbnail_media_id: type: string description: Optional pre-live slate media id. title: type: string description: Broadcast title / status text. PostWithheld: type: object description: Withholding details for withheld content. required: - copyright - country_codes properties: copyright: type: boolean description: Indicates whether this content is withheld due to a copyright claim. country_codes: type: array description: Uppercase ISO 3166-1 alpha-2 country codes where this content is withheld. items: type: string scope: type: - string - 'null' description: Whether the withholding applies to a Post or a User. enum: - post - user MediaOrganicMetrics: type: object description: Organic nonpublic engagement metrics for the media at the time of the request. properties: playback_0_count: type: - integer - 'null' description: Number of users who started playback (0% quartile) of this video. format: int64 playback_100_count: type: - integer - 'null' description: Number of users who completed playback (100% quartile) of this video. format: int64 playback_25_count: type: - integer - 'null' description: Number of users who watched at least 25% of this video. format: int64 playback_50_count: type: - integer - 'null' description: Number of users who watched at least 50% of this video. format: int64 playback_75_count: type: - integer - 'null' description: Number of users who watched at least 75% of this video. format: int64 view_count: type: - integer - 'null' description: The number of organic views of this video. Null when the backend returns quartile data without a view count. format: int64 ResourceNotFoundProblem: type: object required: - type - title - detail - resource_type properties: detail: type: string parameter: type: string resource_id: type: string resource_type: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/resource-not-found value: type: string PostMatchedMediaNotes: type: array description: Community-Notes media matches for this Post. items: type: object description: A Community-Notes media match for this Post. properties: match_status: type: - string - 'null' description: The status of the media note match. note_id: type: - string - 'null' description: The matched note's unique identifier. FieldUnauthorizedProblem: type: object required: - type - title - detail - field properties: detail: type: string field: type: string resource_type: type: string section: type: string status: type: integer title: type: string type: type: string enum: - https://api.x.com/2/problems/field-unauthorized GoLiveScheduledBroadcastResponse: type: object properties: data: $ref: '#/components/schemas/GoLiveScheduledBroadcastResponseData' errors: type: array items: $ref: '#/components/schemas/Problem' parameters: BroadcastChatMessageExpansionsParameter: name: expansions in: query description: A comma separated list of fields to expand. required: false schema: type: array minItems: 1 uniqueItems: true items: type: string enum: - author_id explode: false style: form BroadcastFieldsParameter: name: broadcast.fields in: query description: A comma separated list of Broadcast fields to display. required: false schema: type: array description: The fields available for a Broadcast object. minItems: 1 uniqueItems: true items: type: string enum: - available_for_replay - broadcast_id - chat_option - created_at_ms - end_ms - height - id - image_url - image_url_medium - image_url_small - is_high_latency - language - media_key - scheduled_end_ms - scheduled_start_ms - share_url - source_id - start_ms - state - title - total_watched - total_watching - tweet_id - twitter_user_id - updated_at_ms - width explode: false style: form BroadcastChatMessageFieldsParameter: name: broadcast_chat_message.fields in: query description: A comma separated list of BroadcastChatMessage fields to display. required: false schema: type: array description: The fields available for a BroadcastChatMessage object. minItems: 1 uniqueItems: true items: type: string enum: - author_name - author_username - broadcast_id - created_at_ms - id - reply_to - text explode: false style: form UserFieldsParameter: name: user.fields in: query description: A comma separated list of User fields to display. required: false schema: type: array description: The fields available for a User object. minItems: 1 uniqueItems: true items: type: string enum: - confirmed_email - connection_status - created_at - description - entities - id - is_identity_verified - location - name - parody - profile_banner_url - profile_image_url - protected - public_metrics - receives_your_dm - subscriber_count - subscribes_to_you - subscription - subscription_type - url - username - verified - verified_followers_count - verified_type - withheld explode: false style: form securitySchemes: BearerToken: type: http scheme: bearer OAuth2UserToken: type: oauth2 flows: authorizationCode: authorizationUrl: https://api.x.com/2/oauth2/authorize tokenUrl: https://api.x.com/2/oauth2/token scopes: block.read: View accounts you have blocked. block.write: Block and unblock accounts on your behalf. bookmark.read: Read your bookmarked Posts. bookmark.write: Create and delete your bookmarks. broadcast.read: View your live broadcasts and their chat. broadcast.write: Manage your live broadcasts and send chat messages on your behalf. developer.read: View your developer accounts, apps, and settings. developer.write: Create and manage your X Developer Platform account. dm.read: Read all your Direct Messages. dm.write: Send and manage your Direct Messages. follows.read: View accounts you follow and accounts following you. follows.write: Follow and unfollow accounts on your behalf. like.read: View Posts you have liked and likes you can see. like.write: Like and unlike Posts on your behalf. list.read: View Lists, members, and followers of Lists you created or are a member of, including private Lists. list.write: Create and manage Lists on your behalf. media.write: Upload media, such as photos and videos, on your behalf. mute.read: View accounts you have muted. mute.write: Mute and unmute accounts on your behalf. offline.access: Request a refresh token for the app. space.read: View all Spaces you have access to. timeline.read: View all Custom Timelines you can see. tweet.moderate.write: Hide and unhide replies to your posts. tweet.read: View all posts you can see, including those from protected accounts. tweet.write: Create and repost on your behalf. users.read: View any account you can see, including protected accounts. UserToken: type: http scheme: OAuth