# X Post Scraper API

Each successful request will cost you **`5`** API credits. X Scraping API pricing is available [here](https://www.scrapingdog.com/twitter-scraper-api#pricing).

You have to send a GET request to **`http://api.scrapingdog.com/x/post`** with the below-given parameters.

| Parameter                                                          | Description                                                                                               |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
| <p>api\_key<br></p><p><mark style="color:red;">required</mark></p> | <p>Your personal API key. Available on your dashboard. <br><br>Type: <em><strong>String</strong></em></p> |
| <p>tweetId<br></p><p><mark style="color:red;">required</mark></p>  | <p>This is the tweet ID. <br><br>Type: <em><strong>String</strong></em></p>                               |

### API Example

{% tabs %}
{% tab title="cURL" %}

```json
curl "https://api.scrapingdog.com/x/post?api_key=5eaa61a6e562fc52fe763tr516e4653&tweetId=1655608985058267139"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

api_key = '5eaa61a6e562fc52fe763tr516e4653'
tweetId = '1655608985058267139'


params = {
    'api_key': api_key,
    'tweetId': tweetId
}

response = requests.get('https://api.scrapingdog.com/x/post', 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}')

```

{% endtab %}

{% tab title="Node JS" %}

```javascript
const axios = require('axios');

const api_key = '5eaa61a6e562fc52fe763tr516e4653';
const tweetId = '1655608985058267139';


const params = {
  api_key,
  tweetId
};

axios
  .get('https://api.scrapingdog.com/x/post', { 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);
  });

```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'httparty'
require 'json'

api_key = '5eaa61a6e562fc52fe763tr516e4653'
tweetId = '1655608985058267139'


# Define the API endpoint
endpoint = 'https://api.scrapingdog.com/x/post'

# Create a hash with the query parameters
params = {
  api_key: api_key,
  tweetId : tweetId
}

# 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

```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$tweetId = '1655608985058267139';


// Create an array with the query parameters
$params = array(
    'api_key' => $api_key,
    'tweetId' => $tweetId
);

// Initialize cURL session
$ch = curl_init('https://api.scrapingdog.com/x/post?' . 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);
?>

```

{% endtab %}

{% tab title="Java" %}

```java
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 endpoint = "https://api.scrapingdog.com/x/post";
        
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(endpoint + "?api_key=" + api_key + "&tweetId=" + tweetId)
                .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();
        }
    }
}

```

{% endtab %}
{% endtabs %}

### API Response

```json
{
    "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": []
    }
}
```
