X Scraping API 2.0
With X Scraping API you scrape any tweet. You just have to pass the URL of that tweet and our API will return the parsed JSON data.
Last updated
With X Scraping API you scrape any tweet. You just have to pass the URL of that tweet and our API will return the parsed JSON data.
Last updated
Each successful request will cost you 5
API credits. Twitter Scraping API pricing is available .
You have to send a GET request to http://api.scrapingdog.com/x/v2
with the below-given parameters.
The difference between the legacy Twitter Scraping API and X Scraping API 2.0 is that the new API is much faster, returns detailed information about the tweet, and consumes fewer credits.
api_key
required
Your personal API key. Available on your dashboard. Type: String
parsed
This is a boolean that tells our server to return JSON or HTML. If you pass true
then our server will return a JSON response and if you pass false
then HTML will be returned.
Type: Boolean
tweetId
required
This is the tweet ID. Type: String
curl "https://api.scrapingdog.com/x/v2?api_key=5eaa61a6e562fc52fe763tr516e4653&tweetId=1655608985058267139&parsed=true"
import requests
api_key = '5eaa61a6e562fc52fe763tr516e4653'
tweetId = '1655608985058267139'
parsed = 'true' # Use 'true' or 'false' based on your requirements
params = {
'api_key': api_key,
'tweetId': tweetId,
'parsed': parsed
}
response = requests.get('https://api.scrapingdog.com/x/v2', params=params)
if response.status_code == 200:
# Parse the JSON response using response.json()
response_data = response.json()
# Now you can work with the response_data as a Python dictionary
print(response_data)
else:
print(f'Request failed with status code: {response.status_code}')
const axios = require('axios');
const api_key = '5eaa61a6e562fc52fe763tr516e4653';
const tweetId = '1655608985058267139';
const parsed = 'true'; // Use 'true' or 'false' based on your requirements
const params = {
api_key,
tweetId,
parsed,
};
axios
.get('https://api.scrapingdog.com/x/v2', { params })
.then((response) => {
if (response.status === 200) {
// Parse the JSON response
const responseData = response.data;
console.log(responseData);
} else {
console.error(`Request failed with status code: ${response.status}`);
}
})
.catch((error) => {
console.error('An error occurred:', error);
});
<?php
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$tweetId = '1655608985058267139';
$parsed = 'true'; // Use 'true' or 'false' based on your requirements
// Create an array with the query parameters
$params = array(
'api_key' => $api_key,
'tweetId' => $tweetId,
'parsed' => $parsed
);
// Initialize cURL session
$ch = curl_init('https://api.scrapingdog.com/x/v2?' . http_build_query($params));
// Set cURL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Execute the cURL request
$response = curl_exec($ch);
// Check for cURL errors
if (curl_errno($ch)) {
echo 'cURL error: ' . curl_error($ch);
} else {
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode === 200) {
// Parse the JSON response
$responseData = json_decode($response, true);
print_r($responseData);
} else {
echo 'Request failed with status code: ' . $httpCode;
}
}
// Close cURL session
curl_close($ch);
?>
require 'httparty'
require 'json'
api_key = '5eaa61a6e562fc52fe763tr516e4653'
tweetId = '1655608985058267139'
parsed = 'true' # Use 'true' or 'false' based on your requirements
# Define the API endpoint
endpoint = 'https://api.scrapingdog.com/x/v2'
# Create a hash with the query parameters
params = {
api_key: api_key,
tweetId : tweetId,
parsed: parsed
}
# Make the GET request
response = HTTParty.get(endpoint, query: params)
# Check the HTTP response code
if response.code == 200
# Parse the JSON response
parsed_response = JSON.parse(response.body)
puts parsed_response
else
puts "Request failed with status code: #{response.code}"
end
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import org.json.JSONObject;
public class TwitterApiExample {
public static void main(String[] args) {
String api_key = "5eaa61a6e562fc52fe763tr516e4653";
String tweetId = "1655608985058267139";
String parsed = "true"; // Use 'true' or 'false' based on your requirements
String endpoint = "https://api.scrapingdog.com/x/v2";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(endpoint + "?api_key=" + api_key + "&tweetId=" + tweetId + "&parsed=" + parsed)
.get()
.build();
try {
Response response = client.newCall(request).execute();
ResponseBody responseBody = response.body();
if (response.isSuccessful() && responseBody != null) {
String jsonString = responseBody.string();
JSONObject jsonResponse = new JSONObject(jsonString);
System.out.println(jsonResponse.toString(4)); // Pretty print the JSON response
} else {
System.err.println("Request failed with status code: " + response.code());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
{
"views": "78802082",
"retweets": 35858,
"quotes": 16507,
"likes": 370782,
"bookmarks": 2934,
"tweet": "We’re purging accounts that have had no activity at all for several years, so you will probably see follower count drop",
"created_at": "Mon May 08 16:21:56 +0000 2023",
"tweet_id": "1655608985058267139",
"post_url": "https://www.x.com/elonmusk/status/1655608985058267139",
"user": {
"typename": "User",
"id": "VXNlcjo0NDE5NjM5Nw==",
"rest_id": "44196397",
"affiliates_highlighted_label": {
"label": {
"url": {
"url": "https://twitter.com/X",
"urlType": "DeepLink"
},
"badge": {
"url": "https://pbs.twimg.com/profile_images/1683899100922511378/5lY42eHs_bigger.jpg"
},
"description": "X",
"userLabelType": "BusinessLabel",
"userLabelDisplayType": "Badge"
}
},
"parody_commentary_fan_label": "None",
"is_blue_verified": true,
"profile_picture": "https://pbs.twimg.com/profile_images/1893803697185910784/Na5lOWi5_normal.jpg",
"profile_name": "Elon Musk",
"profile_handle": "elonmusk",
"profile_url": "https://www.x.com/elonmusk",
"description": "",
"likes_count": 141367,
"followers_count": 219187202,
"following_count": 1108,
"listed_count": 162033,
"location": "",
"media_count": 3781,
"pinned_tweet_ids_str": [],
"statuses_count": 77070,
"verified": false,
"translator_type": "none",
"withheld_in_countries": []
}
}