# X (Twitter) Profile Scraper (`api-ninja/x-twitter-profile-scraper`) Actor

🐦 Scrape tweets, followers, following, affiliates, and profile data from X (Twitter) accounts.

- **URL**: https://apify.com/api-ninja/x-twitter-profile-scraper.md
- **Developed by:** [API ninja](https://apify.com/api-ninja) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 18 total users, 18 monthly users, 100.0% runs succeeded, 4 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.30 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### What does X (Twitter) Profile Scraper do?

**X (Twitter) Profile Scraper** is an **X.com data extractor** and **Twitter scraper** for collecting public profile-based data from [X](https://x.com/) / Twitter accounts. You can scrape **tweets**, **followers**, **following**, **affiliates**, or **user profile info** from one or more accounts in a single run.

The input is simple: add profile URLs, usernames, or `@handles`, choose one category, and run the Actor. X (Twitter) Profile Scraper normalizes each profile identifier, paginates when needed, and saves the results to the Apify dataset. For tweet collection, it uses a latest-style profile query like `from:elonmusk`, paginates with `max_id`, and removes duplicates before saving.

### Why use X (Twitter) Profile Scraper on Apify?

X (Twitter) Profile Scraper is useful when you need account-centric X data rather than keyword search results. Typical use cases include influencer research, creator discovery, follower audits, profile enrichment, lead generation, media monitoring, audience analysis, and tracking account activity over time.

It is also practical for repeatable workflows. You can point the same automation at different profile lists and switch only the `category` input depending on whether you want profile metadata, recent content, or network data such as followers and following.

Apify adds the platform capabilities that turn this scraper into a reusable data product:

- Run X (Twitter) Profile Scraper on demand or on a schedule
- Access results through API endpoints and webhooks
- Monitor runs, logs, and failures in one place
- Connect the dataset to automations and downstream tools
- Scale from quick tests to larger recurring jobs

### What can this X (Twitter) scraper extract?

The Actor supports these categories:

- `tweets`
- `followers`
- `following`
- `affiliates`
- `user_info`

When category is `tweets`, you can optionally narrow results with profile tweet filters:

- `tweetSubtype`: `all`, `replies`, `self_threads`, `quotes`
- `includeNativeRetweets`
- `mediaSubtype`: `any`, `media`, `images`, `videos`
- `requireLinks`
- `requireHashtags`
- `requireMentions`

Accepted profile inputs:

- Full URLs such as `https://x.com/elonmusk`
- Plain usernames such as `elonmusk`
- Handles such as `@elonmusk`

The Actor also appends run metadata to each dataset item so you can trace where each record came from:

- `metadata.category`
- `metadata.screenname`
- `metadata.sourceInput`

### What data can you extract from X / Twitter profiles?

The exact fields depend on the selected category and the returned data shape, but these are the main fields commonly available in the dataset:

| Field                                       | Description                                |
| ------------------------------------------- | ------------------------------------------ |
| `tweet_id`                                  | Tweet identifier for tweet-like categories |
| `text`                                      | Tweet or reply text                        |
| `created_at`                                | Original creation timestamp                |
| `screen_name`                               | Account handle                             |
| `name`                                      | Display name                               |
| `user_id`                                   | Account ID                                 |
| `followers_count`                           | Follower count when provided               |
| `friends_count`                             | Following count when provided              |
| `statuses_count`                            | Number of posts on the account             |
| `verified`                                  | Verification flag                          |
| `blue_verified`                             | Premium verification flag                  |
| `profile_image` / `avatar`                  | Profile image URL                          |
| `header_image`                              | Header image URL                           |
| `description` / `desc`                      | Bio text                                   |
| `website`                                   | Website URL from profile                   |
| `location`                                  | Profile location                           |
| `views`, `retweets`, `replies`, `favorites` | Engagement fields for tweet-like results   |

### How to scrape X / Twitter profile data

1. Open the Actor in Apify Console.
2. Go to the **Input** tab.
3. Add one or more X profile URLs, usernames, or `@handles` to `urls`.
4. Select a single `category` for the whole run.
5. If category is `tweets`, optionally configure tweet subtype and content filters.
6. Set `maxResults` if you want to cap paginated outputs.
7. Enable `parseAllResults` only if you want the Actor to keep going until no more pages are available.
8. Start the run.
9. Open the **Output** tab or dataset API to inspect and download the results.

If you are looking for terms like **Twitter profile scraper**, **X profile scraper**, **download tweets**, or **X.com profile data extractor**, this Actor is designed for exactly that profile-centric workflow.

### Input

The Actor is configured from the Apify **Input** tab. Example input:

```json
{
    "urls": ["https://x.com/elonmusk", "nasa", "@apify"],
    "category": "tweets",
    "tweetSubtype": "all",
    "includeNativeRetweets": false,
    "mediaSubtype": "any",
    "requireLinks": false,
    "requireHashtags": false,
    "requireMentions": false,
    "maxResults": 100,
    "parseAllResults": false
}
````

Input fields:

- `urls`: Array of X / Twitter profile URLs, usernames, or `@handles`
- `category`: One category to scrape for all inputs in the run
- `tweetSubtype`: For tweet runs, narrow results to all posts, replies, self-threads, or quote tweets
- `includeNativeRetweets`: Include native retweets in tweet results
- `mediaSubtype`: For tweet runs, restrict results to media, images, or videos
- `requireLinks`: Only keep tweets with links
- `requireHashtags`: Only keep tweets with hashtags
- `requireMentions`: Only keep tweets with mentions
- `maxResults`: Maximum number of items to save per profile for paginated categories
- `parseAllResults`: If enabled, the Actor ignores `maxResults` and keeps paginating until no more results are returned

If your deployment uses API credentials via environment variables, configure them before running the Actor.

### Output

The Actor stores results in the default dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Example output:

```json
[
    {
        "tweet_id": "1771234567890123456",
        "created_at": "Wed Mar 20 12:34:56 +0000 2024",
        "text": "Example post text",
        "screen_name": "elonmusk",
        "name": "Elon Musk",
        "views": 125034,
        "retweets": 1820,
        "replies": 490,
        "favorites": 21455,
        "metadata": {
            "category": "tweets",
            "screenname": "elonmusk",
            "sourceInput": "https://x.com/elonmusk"
        }
    },
    {
        "screen_name": "apify",
        "name": "Apify",
        "followers_count": 19234,
        "friends_count": 321,
        "verified": false,
        "description": "Web scraping and browser automation platform.",
        "metadata": {
            "category": "user_info",
            "screenname": "apify",
            "sourceInput": "@apify"
        }
    }
]
```

### How much does it cost to scrape X / Twitter profiles?

Cost depends mainly on three things: how many profiles you process, which category you select, and how deep pagination goes.

- `user_info` is usually the cheapest category because it typically needs only one request per profile.
- `tweets` can require multiple pages depending on account activity and how narrow or broad your tweet filters are.
- `followers`, `following`, and `affiliates` can become the most expensive categories because they may paginate deeply.

To keep costs predictable:

- Leave `parseAllResults` disabled unless you truly need complete coverage.
- Set a realistic `maxResults`.
- Split large profile lists into smaller runs so they are easier to monitor and retry.

For larger runs, total cost depends on both Actor runtime and how much data you choose to collect.

### Tips and advanced options

- Use plain usernames when your source data is already normalized.
- Invalid profile inputs are skipped instead of crashing the whole run.
- Failed API calls are retried up to 4 times with a short delay.
- If one profile fails, the Actor logs the error and continues with the remaining inputs.
- Tweet pagination uses `max_id` and removes duplicates by `tweet_id` before saving.
- `parseAllResults` is convenient, but it should be used carefully on large accounts.

### Related resources

- Related Actor: [X/Twitter Advanced Search Scraper](https://apify.com/api-ninja/x-twitter-advanced-search)
- Related Actor: [X/Twitter Followers Scraper](https://apify.com/api-ninja/x-twitter-followers-scraper)
- Learn more about [Apify integrations](https://apify.com/integrations)
- See the [Apify API reference](https://docs.apify.com/api/v2)

### FAQ, disclaimers, and support

#### Is it legal to scrape X / Twitter?

This Actor is intended for public web data workflows. You are responsible for making sure your use complies with X terms, local law, privacy rules, and your internal compliance requirements. Do not use scraped data in ways that violate platform rules or applicable regulations.

#### Why do fields vary between runs or categories?

Different categories return different objects, and some accounts may expose more or fewer fields than others.

#### Why did my run return fewer items than expected?

Common reasons are invalid input handles, temporary request failures, API-side limits, strict tweet filters, or stopping at `maxResults`. If you need deeper coverage, increase `maxResults`, loosen tweet filters, or enable `parseAllResults`.

#### Where can I get help or request changes?

Use the Actor Issues tab on Apify for bug reports, field requests, or workflow-specific adjustments. If you need a custom version for your pipeline, that is the right place to start the discussion.

# Actor input Schema

## `urls` (type: `array`):

Provide X/Twitter profile URLs, usernames, or @usernames.

## `category` (type: `string`):

Select a single category to run for all input profiles in this run.

## `maxResults` (type: `integer`):

Maximum number of items to save per profile for paginated categories. Ignored when Parse all results is enabled.

## `parseAllResults` (type: `boolean`):

When enabled, keep paginating until the API has no more data to return.

## `tweetSubtype` (type: `string`):

When category is Tweets, optionally narrow results to replies, self-threads, or quote tweets. Leave as All posts to use a plain from:username latest query.

## `includeNativeRetweets` (type: `boolean`):

Include native retweets in tweet results using include:nativeretweets.

## `mediaSubtype` (type: `string`):

Restrict tweet results to any media, images only, or videos only.

## `requireLinks` (type: `boolean`):

Only keep tweets that contain links.

## `requireHashtags` (type: `boolean`):

Only keep tweets that contain hashtags.

## `requireMentions` (type: `boolean`):

Only keep tweets that contain mentions.

## `hasEngagement` (type: `boolean`):

Only keep tweets that have some engagement such as likes, replies, or retweets.

## `minRetweets` (type: `integer`):

Minimum retweet count.

## `minLikes` (type: `integer`):

Minimum like count.

## `minReplies` (type: `integer`):

Minimum reply count.

## `maxRetweets` (type: `integer`):

Maximum retweet count.

## `maxLikes` (type: `integer`):

Maximum like count.

## `maxReplies` (type: `integer`):

Maximum reply count.

## `language` (type: `string`):

Restrict tweet results to a language code such as en, es, fr, de, ja, or zh. Use 2-3 lowercase letters only.

## `since` (type: `string`):

Only keep tweets on or after this date. Format: YYYY-MM-DD.

## `until` (type: `string`):

Only keep tweets before this date. Format: YYYY-MM-DD.

## `withinTime` (type: `string`):

Only keep tweets within a recent time window. Examples: 7d, 12h, 30m.

## `sinceTime` (type: `integer`):

Only keep tweets on or after this Unix timestamp in seconds.

## `untilTime` (type: `integer`):

Only keep tweets before this Unix timestamp in seconds.

## `sinceId` (type: `string`):

Only keep tweets after this tweet snowflake ID.

## Actor input object example

```json
{
  "urls": [
    "https://x.com/elonmusk",
    "elonmusk",
    "@elonmusk"
  ],
  "category": "tweets",
  "maxResults": 100,
  "parseAllResults": false,
  "tweetSubtype": "all",
  "includeNativeRetweets": false,
  "mediaSubtype": "any",
  "requireLinks": false,
  "requireHashtags": false,
  "requireMentions": false,
  "hasEngagement": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://x.com/elonmusk",
        "elonmusk",
        "@elonmusk"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("api-ninja/x-twitter-profile-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [
        "https://x.com/elonmusk",
        "elonmusk",
        "@elonmusk",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("api-ninja/x-twitter-profile-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://x.com/elonmusk",
    "elonmusk",
    "@elonmusk"
  ]
}' |
apify call api-ninja/x-twitter-profile-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=api-ninja/x-twitter-profile-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "X (Twitter) Profile Scraper",
        "description": "🐦 Scrape tweets, followers, following, affiliates, and profile data from X (Twitter) accounts.",
        "version": "0.0",
        "x-build-id": "uoEpqt7LqH1grTzBq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/api-ninja~x-twitter-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-api-ninja-x-twitter-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/api-ninja~x-twitter-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-api-ninja-x-twitter-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/api-ninja~x-twitter-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-api-ninja-x-twitter-profile-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "🔗 Profile URLs or Usernames",
                        "type": "array",
                        "description": "Provide X/Twitter profile URLs, usernames, or @usernames.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "🗂️ Category",
                        "enum": [
                            "tweets",
                            "followers",
                            "following",
                            "affiliates",
                            "user_info"
                        ],
                        "type": "string",
                        "description": "Select a single category to run for all input profiles in this run.",
                        "default": "tweets"
                    },
                    "maxResults": {
                        "title": "Maximum results",
                        "minimum": 20,
                        "type": "integer",
                        "description": "Maximum number of items to save per profile for paginated categories. Ignored when Parse all results is enabled.",
                        "default": 100
                    },
                    "parseAllResults": {
                        "title": "Parse all results",
                        "type": "boolean",
                        "description": "When enabled, keep paginating until the API has no more data to return.",
                        "default": false
                    },
                    "tweetSubtype": {
                        "title": "Tweet subtype",
                        "enum": [
                            "all",
                            "replies",
                            "self_threads",
                            "quotes"
                        ],
                        "type": "string",
                        "description": "When category is Tweets, optionally narrow results to replies, self-threads, or quote tweets. Leave as All posts to use a plain from:username latest query.",
                        "default": "all"
                    },
                    "includeNativeRetweets": {
                        "title": "Include native retweets",
                        "type": "boolean",
                        "description": "Include native retweets in tweet results using include:nativeretweets.",
                        "default": false
                    },
                    "mediaSubtype": {
                        "title": "Media subtype",
                        "enum": [
                            "any",
                            "media",
                            "images",
                            "videos"
                        ],
                        "type": "string",
                        "description": "Restrict tweet results to any media, images only, or videos only.",
                        "default": "any"
                    },
                    "requireLinks": {
                        "title": "Require links",
                        "type": "boolean",
                        "description": "Only keep tweets that contain links.",
                        "default": false
                    },
                    "requireHashtags": {
                        "title": "Require hashtags",
                        "type": "boolean",
                        "description": "Only keep tweets that contain hashtags.",
                        "default": false
                    },
                    "requireMentions": {
                        "title": "Require mentions",
                        "type": "boolean",
                        "description": "Only keep tweets that contain mentions.",
                        "default": false
                    },
                    "hasEngagement": {
                        "title": "Require engagement",
                        "type": "boolean",
                        "description": "Only keep tweets that have some engagement such as likes, replies, or retweets.",
                        "default": false
                    },
                    "minRetweets": {
                        "title": "Minimum retweets",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum retweet count."
                    },
                    "minLikes": {
                        "title": "Minimum likes",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum like count."
                    },
                    "minReplies": {
                        "title": "Minimum replies",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum reply count."
                    },
                    "maxRetweets": {
                        "title": "Maximum retweets",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum retweet count."
                    },
                    "maxLikes": {
                        "title": "Maximum likes",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum like count."
                    },
                    "maxReplies": {
                        "title": "Maximum replies",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum reply count."
                    },
                    "language": {
                        "title": "Language",
                        "pattern": "^[a-z]{2,3}$",
                        "type": "string",
                        "description": "Restrict tweet results to a language code such as en, es, fr, de, ja, or zh. Use 2-3 lowercase letters only."
                    },
                    "since": {
                        "title": "Since date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Only keep tweets on or after this date. Format: YYYY-MM-DD."
                    },
                    "until": {
                        "title": "Until date",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Only keep tweets before this date. Format: YYYY-MM-DD."
                    },
                    "withinTime": {
                        "title": "Within time",
                        "pattern": "^[1-9][0-9]*[dhms]$",
                        "type": "string",
                        "description": "Only keep tweets within a recent time window. Examples: 7d, 12h, 30m."
                    },
                    "sinceTime": {
                        "title": "Since unix time",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep tweets on or after this Unix timestamp in seconds."
                    },
                    "untilTime": {
                        "title": "Until unix time",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only keep tweets before this Unix timestamp in seconds."
                    },
                    "sinceId": {
                        "title": "Since tweet ID",
                        "pattern": "^\\d+$",
                        "type": "string",
                        "description": "Only keep tweets after this tweet snowflake ID."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
