# Inspect Native X Replies and Source Post Data

**Use case:** 

Get normalized reply records together with each native X Tweet object and the source post. Use the detailed output to inspect X fields, build custom parsers, or investigate a conversation.

## Input

```json
{
  "tweets": [
    "https://x.com/SecScottBessent/status/2102804771727876490"
  ],
  "maxRepliesPerTweet": 20,
  "includeSourcePost": true,
  "includeRawReply": true
}
```

## Output

```json
{
  "status": {
    "label": "Status",
    "format": "string"
  },
  "requested_input": {
    "label": "Requested input",
    "format": "string"
  },
  "source_tweet_id": {
    "label": "Source post ID",
    "format": "string"
  },
  "source_tweet_url": {
    "label": "Source post URL",
    "format": "string"
  },
  "source_post": {
    "label": "Source post details",
    "format": "object"
  },
  "replies_stored": {
    "label": "Replies stored",
    "format": "integer"
  },
  "message": {
    "label": "Message",
    "format": "string"
  },
  "reply_tweet_id": {
    "label": "Reply post ID",
    "format": "string"
  },
  "reply_tweet_url": {
    "label": "Reply URL",
    "format": "string"
  },
  "reply_text": {
    "label": "Reply text",
    "format": "string"
  },
  "reply_display_text": {
    "label": "Reply display text",
    "format": "string"
  },
  "reply_display_text_range": {
    "label": "Reply display text range",
    "format": "array"
  },
  "reply_created_at": {
    "label": "Replied at (UTC)",
    "format": "string"
  },
  "reply_language": {
    "label": "Reply language",
    "format": "string"
  },
  "reply_source": {
    "label": "Reply client",
    "format": "string"
  },
  "reply_source_url": {
    "label": "Reply client URL",
    "format": "string"
  },
  "conversation_id": {
    "label": "Conversation ID",
    "format": "string"
  },
  "reply_to_tweet_id": {
    "label": "Parent post ID",
    "format": "string"
  },
  "reply_to_user_id": {
    "label": "Replied-to user ID",
    "format": "string"
  },
  "reply_to_username": {
    "label": "Replied-to username",
    "format": "string"
  },
  "reply_to_name": {
    "label": "Replied-to name",
    "format": "string"
  },
  "is_direct_reply": {
    "label": "Direct reply",
    "format": "boolean"
  },
  "reply_reply_count": {
    "label": "Reply replies",
    "format": "integer"
  },
  "reply_retweet_count": {
    "label": "Reply retweets",
    "format": "integer"
  },
  "reply_like_count": {
    "label": "Reply likes",
    "format": "integer"
  },
  "reply_quote_count": {
    "label": "Reply quotes",
    "format": "integer"
  },
  "reply_bookmark_count": {
    "label": "Reply bookmarks",
    "format": "integer"
  },
  "reply_view_count": {
    "label": "Reply views",
    "format": "integer"
  },
  "reply_possibly_sensitive": {
    "label": "Reply possibly sensitive",
    "format": "boolean"
  },
  "reply_hashtags": {
    "label": "Reply hashtags",
    "format": "array"
  },
  "reply_mentions": {
    "label": "Reply mentions",
    "format": "array"
  },
  "reply_urls": {
    "label": "Reply URLs",
    "format": "array"
  },
  "reply_media": {
    "label": "Reply media",
    "format": "array"
  },
  "reply_is_quote": {
    "label": "Reply quotes another post",
    "format": "boolean"
  },
  "reply_quoted_tweet_id": {
    "label": "Quoted post ID",
    "format": "string"
  },
  "reply_quoted_tweet_url": {
    "label": "Quoted post URL",
    "format": "string"
  },
  "reply_quoted_tweet_text": {
    "label": "Quoted post text",
    "format": "string"
  },
  "reply_quoted_tweet_created_at": {
    "label": "Quoted post created at (UTC)",
    "format": "string"
  },
  "reply_quoted_tweet_language": {
    "label": "Quoted post language",
    "format": "string"
  },
  "reply_quoted_author_id": {
    "label": "Quoted post author ID",
    "format": "string"
  },
  "reply_quoted_author_username": {
    "label": "Quoted post author username",
    "format": "string"
  },
  "reply_quoted_author_name": {
    "label": "Quoted post author name",
    "format": "string"
  },
  "author_id": {
    "label": "Author ID",
    "format": "string"
  },
  "author_username": {
    "label": "Author username",
    "format": "string"
  },
  "author_profile_url": {
    "label": "Author profile",
    "format": "string"
  },
  "author_name": {
    "label": "Author name",
    "format": "string"
  },
  "author_description": {
    "label": "Author bio",
    "format": "string"
  },
  "author_description_entities": {
    "label": "Author bio entities",
    "format": "object"
  },
  "author_description_language": {
    "label": "Author bio language",
    "format": "string"
  },
  "author_location": {
    "label": "Author location",
    "format": "string"
  },
  "author_created_at": {
    "label": "Author created at (UTC)",
    "format": "string"
  },
  "author_followers_count": {
    "label": "Author followers",
    "format": "integer"
  },
  "author_following_count": {
    "label": "Author following",
    "format": "integer"
  },
  "author_tweets_count": {
    "label": "Author posts",
    "format": "integer"
  },
  "author_media_count": {
    "label": "Author media posts",
    "format": "integer"
  },
  "author_favourites_count": {
    "label": "Author likes",
    "format": "integer"
  },
  "author_verified": {
    "label": "Author verified",
    "format": "boolean"
  },
  "author_blue_verified": {
    "label": "Author blue verified",
    "format": "boolean"
  },
  "author_protected": {
    "label": "Author protected",
    "format": "boolean"
  },
  "author_possibly_sensitive": {
    "label": "Author possibly sensitive",
    "format": "boolean"
  },
  "author_profile_interstitial_type": {
    "label": "Author profile interstitial",
    "format": "string"
  },
  "author_can_media_tag": {
    "label": "Author can media tag",
    "format": "boolean"
  },
  "author_professional_type": {
    "label": "Author professional type",
    "format": "string"
  },
  "author_professional_categories": {
    "label": "Author professional categories",
    "format": "array"
  },
  "author_affiliation_name": {
    "label": "Author affiliation",
    "format": "string"
  },
  "author_affiliation_url": {
    "label": "Author affiliation URL",
    "format": "string"
  },
  "author_affiliation_badge_url": {
    "label": "Author affiliation badge",
    "format": "string"
  },
  "author_pinned_tweet_ids": {
    "label": "Author pinned post IDs",
    "format": "array"
  },
  "author_account_label": {
    "label": "Author account label",
    "format": "string"
  },
  "author_profile_image_shape": {
    "label": "Author image shape",
    "format": "string"
  },
  "author_subscription_eligible": {
    "label": "Author subscription eligible",
    "format": "boolean"
  },
  "author_bio_urls": {
    "label": "Author bio URLs",
    "format": "array"
  },
  "author_bio_mentions": {
    "label": "Author bio mentions",
    "format": "array"
  },
  "author_bio_hashtags": {
    "label": "Author bio hashtags",
    "format": "array"
  },
  "author_website_url": {
    "label": "Author website",
    "format": "string"
  },
  "author_profile_image_url": {
    "label": "Author avatar",
    "format": "string"
  },
  "author_profile_banner_url": {
    "label": "Author banner",
    "format": "string"
  },
  "raw_reply": {
    "label": "Raw X reply with author",
    "format": "object"
  }
}
```

## How it works

### 1. Sign up on Apify or log in

The X (Twitter) Replies Scraper — Thread Context Actor is ready to run with the inputs already set for "Inspect Native X Replies and Source Post Data". [Sign up or log in](https://console.apify.com/create-task-from-example/YJACcNLSzWDheRfOi) and you'll land in Apify Console with a copy of this exact task.

### 2. Start the "Inspect Native X Replies and Source Post Data" task

The X (Twitter) Replies Scraper — Thread Context Actor will start running based on the input automatically. You can also change all the input fields, like x post ids or urls, maximum replies per post, and more, to match your specific use case.

### 3. Receive the "Inspect Native X Replies and Source Post Data" output

Monitor the progress in real time. You will be notified as soon as your dataset is complete and ready for review. Each result includes data such as status, requested input, source post id, and more.

### 4. Integrate into your workflow

The final output is delivered in JSON, CSV, or Excel format, ready to be plugged into your workflow. You can also [run the "Inspect Native X Replies and Source Post Data" task via API](https://apify.com/arjun_code/x-twitter-replies-scraper.md).

## About this Actor

This example demonstrates how to use [X (Twitter) Replies Scraper — Thread Context](https://apify.com/arjun_code/x-twitter-replies-scraper.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/arjun_code/x-twitter-replies-scraper.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/arjun_code/x-twitter-replies-scraper.md

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).
