Create Posts
curl --request POST \
--url https://api.x.com/2/tweets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"card_uri": "<string>",
"community_id": "<string>",
"direct_message_deep_link": "<string>",
"for_super_followers_only": true,
"made_with_ai": true,
"nullcast": true,
"paid_partnership": true,
"quote_tweet_id": "<string>",
"share_with_followers": true,
"text": ""
}
'import requests
url = "https://api.x.com/2/tweets"
payload = {
"card_uri": "<string>",
"community_id": "<string>",
"direct_message_deep_link": "<string>",
"for_super_followers_only": True,
"made_with_ai": True,
"nullcast": True,
"paid_partnership": True,
"quote_tweet_id": "<string>",
"share_with_followers": True,
"text": ""
}
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({
card_uri: '<string>',
community_id: '<string>',
direct_message_deep_link: '<string>',
for_super_followers_only: true,
made_with_ai: true,
nullcast: true,
paid_partnership: true,
quote_tweet_id: '<string>',
share_with_followers: true,
text: ''
})
};
fetch('https://api.x.com/2/tweets', 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/tweets",
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([
'card_uri' => '<string>',
'community_id' => '<string>',
'direct_message_deep_link' => '<string>',
'for_super_followers_only' => true,
'made_with_ai' => true,
'nullcast' => true,
'paid_partnership' => true,
'quote_tweet_id' => '<string>',
'share_with_followers' => true,
'text' => ''
]),
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/tweets"
payload := strings.NewReader("{\n \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\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/tweets")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/tweets")
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 \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"text": "<string>",
"edit_history_post_ids": [
"<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>"
}media.media_ids is subject to size and duration limits based on the posting user’s X Premium / verified status and the media_category used at upload. See size and duration limits.Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Card URI parameter.
Community to post the tweet to.
^[0-9]{1,19}$Direct message deep link.
Edit an existing tweet rather than creating a new one.
Show child attributes
Show child attributes
Restrict tweet to super followers.
Geo location for the tweet.
Show child attributes
Show child attributes
Disclose that the tweet contains AI-generated media.
Media attachments.
Show child attributes
Show child attributes
If true, the tweet is not shown in the public timeline.
Disclose that the tweet is a paid partnership.
Poll configuration.
Show child attributes
Show child attributes
Tweet ID to quote.
^[0-9]{1,19}$Tweet reply configuration.
Show child attributes
Show child attributes
Who can reply to this tweet.
following, mentionedUsers, subscribers, verified Share an exclusive (super-follower) tweet with all followers.
Text of the tweet. Required unless media is provided. Defaulted to an empty string so it is always sent: the backend's tweet_text variable is non-null and rejects an absent value.
curl --request POST \
--url https://api.x.com/2/tweets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"card_uri": "<string>",
"community_id": "<string>",
"direct_message_deep_link": "<string>",
"for_super_followers_only": true,
"made_with_ai": true,
"nullcast": true,
"paid_partnership": true,
"quote_tweet_id": "<string>",
"share_with_followers": true,
"text": ""
}
'import requests
url = "https://api.x.com/2/tweets"
payload = {
"card_uri": "<string>",
"community_id": "<string>",
"direct_message_deep_link": "<string>",
"for_super_followers_only": True,
"made_with_ai": True,
"nullcast": True,
"paid_partnership": True,
"quote_tweet_id": "<string>",
"share_with_followers": True,
"text": ""
}
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({
card_uri: '<string>',
community_id: '<string>',
direct_message_deep_link: '<string>',
for_super_followers_only: true,
made_with_ai: true,
nullcast: true,
paid_partnership: true,
quote_tweet_id: '<string>',
share_with_followers: true,
text: ''
})
};
fetch('https://api.x.com/2/tweets', 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/tweets",
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([
'card_uri' => '<string>',
'community_id' => '<string>',
'direct_message_deep_link' => '<string>',
'for_super_followers_only' => true,
'made_with_ai' => true,
'nullcast' => true,
'paid_partnership' => true,
'quote_tweet_id' => '<string>',
'share_with_followers' => true,
'text' => ''
]),
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/tweets"
payload := strings.NewReader("{\n \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\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/tweets")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.x.com/2/tweets")
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 \"card_uri\": \"<string>\",\n \"community_id\": \"<string>\",\n \"direct_message_deep_link\": \"<string>\",\n \"for_super_followers_only\": true,\n \"made_with_ai\": true,\n \"nullcast\": true,\n \"paid_partnership\": true,\n \"quote_tweet_id\": \"<string>\",\n \"share_with_followers\": true,\n \"text\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"text": "<string>",
"edit_history_post_ids": [
"<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>"
}