Article Data
curl --request POST \
--url https://api.sorsa.io/v3/article \
--header 'ApiKey: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"tweet_link": "<string>"
}
'import requests
url = "https://api.sorsa.io/v3/article"
payload = { "tweet_link": "<string>" }
headers = {
"ApiKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {ApiKey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({tweet_link: '<string>'})
};
fetch('https://api.sorsa.io/v3/article', 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.sorsa.io/v3/article",
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([
'tweet_link' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <api-key>",
"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.sorsa.io/v3/article"
payload := strings.NewReader("{\n \"tweet_link\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<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.sorsa.io/v3/article")
.header("ApiKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"tweet_link\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sorsa.io/v3/article")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tweet_link\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"author": {
"bio_urls": [
"<string>"
],
"can_dm": false,
"created_at": "2009-06-02T20:12:29Z",
"description": "Bio text",
"display_name": "Elon Musk",
"favourites_count": 1200,
"followers_count": 100000,
"followings_count": 500,
"id": "44196397",
"location": "Austin, TX",
"media_count": 300,
"pinned_tweet_ids": [
"<string>"
],
"possibly_sensitive": false,
"profile_background_image_url": "https://pbs.twimg.com/profile_banners/44196397/123",
"profile_image_url": "https://pbs.twimg.com/profile_images/123/photo.jpg",
"protected": false,
"tweets_count": 5000,
"username": "elonmusk",
"verified": true
},
"bookmark_count": 123,
"cover_image_url": "<string>",
"full_text": "<string>",
"likes_count": 123,
"preview_text": "<string>",
"published_at": "<string>",
"quote_count": 123,
"reply_count": 123,
"retweet_count": 123,
"views_count": 123
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Tweets
Article Data
Returns full data for a Twitter/X Article (long-form post) by its URL. The response includes the complete article text, a short preview excerpt, cover image URL, publication date, engagement metrics, and the author’s profile.
POST
/
article
Article Data
curl --request POST \
--url https://api.sorsa.io/v3/article \
--header 'ApiKey: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"tweet_link": "<string>"
}
'import requests
url = "https://api.sorsa.io/v3/article"
payload = { "tweet_link": "<string>" }
headers = {
"ApiKey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {ApiKey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({tweet_link: '<string>'})
};
fetch('https://api.sorsa.io/v3/article', 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.sorsa.io/v3/article",
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([
'tweet_link' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <api-key>",
"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.sorsa.io/v3/article"
payload := strings.NewReader("{\n \"tweet_link\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<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.sorsa.io/v3/article")
.header("ApiKey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"tweet_link\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sorsa.io/v3/article")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tweet_link\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"author": {
"bio_urls": [
"<string>"
],
"can_dm": false,
"created_at": "2009-06-02T20:12:29Z",
"description": "Bio text",
"display_name": "Elon Musk",
"favourites_count": 1200,
"followers_count": 100000,
"followings_count": 500,
"id": "44196397",
"location": "Austin, TX",
"media_count": 300,
"pinned_tweet_ids": [
"<string>"
],
"possibly_sensitive": false,
"profile_background_image_url": "https://pbs.twimg.com/profile_banners/44196397/123",
"profile_image_url": "https://pbs.twimg.com/profile_images/123/photo.jpg",
"protected": false,
"tweets_count": 5000,
"username": "elonmusk",
"verified": true
},
"bookmark_count": 123,
"cover_image_url": "<string>",
"full_text": "<string>",
"likes_count": 123,
"preview_text": "<string>",
"published_at": "<string>",
"quote_count": 123,
"reply_count": 123,
"retweet_count": 123,
"views_count": 123
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Body
application/json
Article request
Full URL of the tweet or article (e.g. https://x.com/user/status/123) or just the tweet ID.
Response
OK
Author profile data.
Show child attributes
Show child attributes
Number of bookmarks.
URL of the article's cover image.
Complete article text.
Number of likes.
Short preview or excerpt of the article.
Publication date in ISO 8601 format.
Number of quote tweets.
Number of replies.
Number of retweets.
Number of views (impressions).
Was this page helpful?
⌘I