curl --request POST \
--url https://api.twitterapi.io/twitter/create_tweet_v2 \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"login_cookies": "<string>",
"tweet_text": "<string>",
"proxy": "<string>",
"reply_to_tweet_id": "<string>",
"attachment_url": "<string>",
"community_id": "<string>",
"is_note_tweet": true,
"media_ids": [
"<string>"
]
}
'import requests
url = "https://api.twitterapi.io/twitter/create_tweet_v2"
payload = {
"login_cookies": "<string>",
"tweet_text": "<string>",
"proxy": "<string>",
"reply_to_tweet_id": "<string>",
"attachment_url": "<string>",
"community_id": "<string>",
"is_note_tweet": True,
"media_ids": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
login_cookies: '<string>',
tweet_text: '<string>',
proxy: '<string>',
reply_to_tweet_id: '<string>',
attachment_url: '<string>',
community_id: '<string>',
is_note_tweet: true,
media_ids: ['<string>']
})
};
fetch('https://api.twitterapi.io/twitter/create_tweet_v2', 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.twitterapi.io/twitter/create_tweet_v2",
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([
'login_cookies' => '<string>',
'tweet_text' => '<string>',
'proxy' => '<string>',
'reply_to_tweet_id' => '<string>',
'attachment_url' => '<string>',
'community_id' => '<string>',
'is_note_tweet' => true,
'media_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.twitterapi.io/twitter/create_tweet_v2"
payload := strings.NewReader("{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.twitterapi.io/twitter/create_tweet_v2")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.twitterapi.io/twitter/create_tweet_v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"tweet_id": "<string>",
"status": "<string>",
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}Create/Reply tweet v2
Create a tweet.You must set the login_cookies.You can get the login_cookies from /twitter/user_login_v2.Price: 200 credits ($0.002 per call).
curl --request POST \
--url https://api.twitterapi.io/twitter/create_tweet_v2 \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"login_cookies": "<string>",
"tweet_text": "<string>",
"proxy": "<string>",
"reply_to_tweet_id": "<string>",
"attachment_url": "<string>",
"community_id": "<string>",
"is_note_tweet": true,
"media_ids": [
"<string>"
]
}
'import requests
url = "https://api.twitterapi.io/twitter/create_tweet_v2"
payload = {
"login_cookies": "<string>",
"tweet_text": "<string>",
"proxy": "<string>",
"reply_to_tweet_id": "<string>",
"attachment_url": "<string>",
"community_id": "<string>",
"is_note_tweet": True,
"media_ids": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
login_cookies: '<string>',
tweet_text: '<string>',
proxy: '<string>',
reply_to_tweet_id: '<string>',
attachment_url: '<string>',
community_id: '<string>',
is_note_tweet: true,
media_ids: ['<string>']
})
};
fetch('https://api.twitterapi.io/twitter/create_tweet_v2', 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.twitterapi.io/twitter/create_tweet_v2",
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([
'login_cookies' => '<string>',
'tweet_text' => '<string>',
'proxy' => '<string>',
'reply_to_tweet_id' => '<string>',
'attachment_url' => '<string>',
'community_id' => '<string>',
'is_note_tweet' => true,
'media_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.twitterapi.io/twitter/create_tweet_v2"
payload := strings.NewReader("{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.twitterapi.io/twitter/create_tweet_v2")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.twitterapi.io/twitter/create_tweet_v2")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"login_cookies\": \"<string>\",\n \"tweet_text\": \"<string>\",\n \"proxy\": \"<string>\",\n \"reply_to_tweet_id\": \"<string>\",\n \"attachment_url\": \"<string>\",\n \"community_id\": \"<string>\",\n \"is_note_tweet\": true,\n \"media_ids\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"tweet_id": "<string>",
"status": "<string>",
"message": "<string>"
}{
"error": 123,
"message": "<string>"
}Authorizations
Body
The login cookies of the user.You can get the login_cookie from /twitter/user_login_v2.Must be set
The text of the tweet.Must be set
The proxy to use.Please use high-quality residential proxies and avoid free proxies.Required.Example: http://username:password@ip:port [blocked] . You can get proxy from: https://www.webshare.io/?referral_code=4e0q1n00a504
The id of the tweet to reply to.Optional
URL of the tweet to quote (quote tweet). Optional. e.g. https://x.com/sama/status/1947640330318156074. Not applied when reply_to_tweet_id is set.
The id of the community to post to.Optional
If this option is set to True, tweets longer than 280 characters can be posted (Twitter Premium only).
List of media IDs (strings) to attach. Optional. Obtain each from /twitter/upload_media_v2.