Create a scheduled broadcast
Schedules a broadcast for the authenticated user. A source_id (ingest) is required at create time.
curl --request POST \
--url https://api.x.com/2/broadcasts/scheduled \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"available_for_replay": true,
"chat_option": "<string>",
"description": "<string>",
"is_locked": true,
"locale": "<string>",
"manual_publish": true,
"scheduled_end_ms": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
}
'import requests
url = "https://api.x.com/2/broadcasts/scheduled"
payload = {
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"available_for_replay": True,
"chat_option": "<string>",
"description": "<string>",
"is_locked": True,
"locale": "<string>",
"manual_publish": True,
"scheduled_end_ms": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scheduled_start_ms: '<string>',
source_id: '<string>',
available_for_replay: true,
chat_option: '<string>',
description: '<string>',
is_locked: true,
locale: '<string>',
manual_publish: true,
scheduled_end_ms: '<string>',
telecast_id: '<string>',
thumbnail_media_id: '<string>',
title: '<string>'
})
};
fetch('https://api.x.com/2/broadcasts/scheduled', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.x.com/2/broadcasts/scheduled",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scheduled_start_ms' => '<string>',
'source_id' => '<string>',
'available_for_replay' => true,
'chat_option' => '<string>',
'description' => '<string>',
'is_locked' => true,
'locale' => '<string>',
'manual_publish' => true,
'scheduled_end_ms' => '<string>',
'telecast_id' => '<string>',
'thumbnail_media_id' => '<string>',
'title' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.x.com/2/broadcasts/scheduled"
payload := strings.NewReader("{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.x.com/2/broadcasts/scheduled")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/broadcasts/scheduled")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"available_for_replay": true,
"broadcast_id": "<string>",
"chat_option": "<string>",
"description": "<string>",
"locale": "<string>",
"manual_publish": true,
"recurring_schedule_id": "<string>",
"scheduled_broadcast_id": "<string>",
"scheduled_end_ms": "<string>",
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"state": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
},
"errors": [
{
"detail": "<string>",
"resource_type": "<string>",
"title": "<string>",
"type": "https://api.x.com/2/problems/resource-not-found",
"parameter": "<string>",
"resource_id": "<string>",
"status": 123,
"value": "<string>"
}
]
}{
"code": 123,
"message": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Start time, ms since Unix epoch (decimal string).
^[0-9]{1,19}$Ingest / source id to bind (same as sources rtmp_stream_key).
1Enable replay.
Who can chat (numeric string): 0 default, 1 chat off, 2 everyone, 3 verified accounts, 4 accounts the host follows, 5 the host's subscribers, 6 accounts followed by an account the host follows.
^[0-9]{1,19}$Description.
Lock the broadcast.
Locale.
If true, do not auto-publish at start; call POST .../live when ready.
Deprecated: recurring schedules are being retired and requests that include recurrence will be rejected. Create each occurrence as its own scheduled broadcast.
Show child attributes
Show child attributes
Optional end time, ms since Unix epoch (decimal string). Omit for an open-ended broadcast.
^[0-9]{1,19}$Deprecated: telecast associations are being retired and this field will be ignored.
^[0-9]{1,19}$Pre-live slate media id (numeric string).
^[0-9]{1,19}$Title / status text.
Response
The request has succeeded.
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
- Option 19
- Option 20
- Option 21
- Option 22
- Option 23
- Option 24
- Option 25
- Option 26
- Option 27
- Option 28
- Option 29
- Option 30
- Option 31
- Option 32
- Option 33
- Option 34
- Option 35
- Option 36
- Option 37
- Option 38
- Option 39
- Option 40
- Option 41
- Option 42
- Option 43
- Option 44
- Option 45
- Option 46
- Option 47
- Option 48
- Option 49
- Option 50
- Option 51
- Option 52
- Option 53
- Option 54
- Option 55
Show child attributes
Show child attributes
curl --request POST \
--url https://api.x.com/2/broadcasts/scheduled \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"available_for_replay": true,
"chat_option": "<string>",
"description": "<string>",
"is_locked": true,
"locale": "<string>",
"manual_publish": true,
"scheduled_end_ms": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
}
'import requests
url = "https://api.x.com/2/broadcasts/scheduled"
payload = {
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"available_for_replay": True,
"chat_option": "<string>",
"description": "<string>",
"is_locked": True,
"locale": "<string>",
"manual_publish": True,
"scheduled_end_ms": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
scheduled_start_ms: '<string>',
source_id: '<string>',
available_for_replay: true,
chat_option: '<string>',
description: '<string>',
is_locked: true,
locale: '<string>',
manual_publish: true,
scheduled_end_ms: '<string>',
telecast_id: '<string>',
thumbnail_media_id: '<string>',
title: '<string>'
})
};
fetch('https://api.x.com/2/broadcasts/scheduled', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.x.com/2/broadcasts/scheduled",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'scheduled_start_ms' => '<string>',
'source_id' => '<string>',
'available_for_replay' => true,
'chat_option' => '<string>',
'description' => '<string>',
'is_locked' => true,
'locale' => '<string>',
'manual_publish' => true,
'scheduled_end_ms' => '<string>',
'telecast_id' => '<string>',
'thumbnail_media_id' => '<string>',
'title' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.x.com/2/broadcasts/scheduled"
payload := strings.NewReader("{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.x.com/2/broadcasts/scheduled")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/broadcasts/scheduled")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduled_start_ms\": \"<string>\",\n \"source_id\": \"<string>\",\n \"available_for_replay\": true,\n \"chat_option\": \"<string>\",\n \"description\": \"<string>\",\n \"is_locked\": true,\n \"locale\": \"<string>\",\n \"manual_publish\": true,\n \"scheduled_end_ms\": \"<string>\",\n \"telecast_id\": \"<string>\",\n \"thumbnail_media_id\": \"<string>\",\n \"title\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"available_for_replay": true,
"broadcast_id": "<string>",
"chat_option": "<string>",
"description": "<string>",
"locale": "<string>",
"manual_publish": true,
"recurring_schedule_id": "<string>",
"scheduled_broadcast_id": "<string>",
"scheduled_end_ms": "<string>",
"scheduled_start_ms": "<string>",
"source_id": "<string>",
"state": "<string>",
"telecast_id": "<string>",
"thumbnail_media_id": "<string>",
"title": "<string>"
},
"errors": [
{
"detail": "<string>",
"resource_type": "<string>",
"title": "<string>",
"type": "https://api.x.com/2/problems/resource-not-found",
"parameter": "<string>",
"resource_id": "<string>",
"status": 123,
"value": "<string>"
}
]
}{
"code": 123,
"message": "<string>"
}