# 🧵 Threads Search Post Scraper (`scraper-engine/threads-search-post-scraper`) Actor

Threads Search Post Scraper extracts posts from Threads search results based on keywords, hashtags, or topics. Collect post text, usernames, profile links, timestamps, likes, replies, and other public data in structured output. Great for trend tracking, research, and monitoring conversations.

- **URL**: https://apify.com/scraper-engine/threads-search-post-scraper.md
- **Developed by:** [Scraper Engine](https://apify.com/scraper-engine) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 9 total users, 4 monthly users, 91.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### 🧵 Threads Search Post Scraper

🧵 Threads Search Post Scraper is a production-ready Threads data scraping tool that extracts flat, structured “post + replies” objects from public Threads search results and post pages. It solves the pain of manual copy-paste by turning keywords, hashtags, or post links into clean JSON you can analyze or export. Built for marketers, developers, data analysts, and researchers, this Meta Threads search scraper runs at scale and returns consistent fields for trend tracking, conversation monitoring, and analytics.

### What data / output can you get?

Below are representative fields this Threads posts extractor saves to your Apify dataset. Results are normalized into flat post objects with consistent keys, letting you export as JSON, CSV, or Excel via the Apify platform.

| Data type | Description | Example value |
| --- | --- | --- |
| post_url | Canonical Threads URL composed from username and code | https://www.threads.com/@zuck/post/AbCdEfGhIjK |
| pk | Post primary key (numeric string) | "123456789012345" |
| code | Post code (used in URLs) | "AbCdEfGhIjK" |
| caption | Post caption object or string (normalized for preview) | {"text":"Big launch today…"} |
| like_count | Number of likes on the post | 1542 |
| taken_at | Timestamp of post creation (epoch or string) | 1713446400 |
| user | Author object with stable structure (id, pk, username, etc.) | {"username":"zuck","is_verified":true,…} |
| text_post_app_info | Text-post metadata including share_info, text_fragments, reply flags | {"share_info":{"can_quote_post":true}, …} |
| image_versions2 | Image renditions for media posts (if present) | {"candidates":[…]} |
| video_versions | Video renditions for media posts (if present) | [{"type":101,"url":"…"}] |
| media_type | Media type indicator (image/video/text) | 1 |
| has_liked | Whether the current (logged-out) flow infers a like by viewer | false |
| canonical_url | Canonical content URL if provided by API | "https://www.threads.net/…" |

Bonus: You’ll also get structured metadata such as accessibility_caption, usertags, sharing_friction_info, gen_ai_detection_method, and more — ideal for analytics and downstream pipelines.

### Key features

- 🔎 Public search + post resolution  
  Resolves targets from Threads search phrases, hashtags, numeric post IDs, or direct post URLs, then fetches the replies connection for that root post. Perfect for a Threads search results scraper or Threads hashtag scraper workflow.

- 🧱 Flat, normalized post objects  
  Outputs the same flattened shape as the dedicated extractor module, making this a reliable Threads post scraper and Threads data extractor for analytics-ready pipelines.

- 🌐 Tiered proxy escalation (built-in)  
  Starts with no proxy, escalates to SHADER (datacenter), then RESIDENTIAL if needed, and retries up to 3 times on residential. Great for robust Threads API scraping without manual tweaks.

- 🗂️ Batch input for scale  
  Feed multiple targets at once (links, IDs, or phrases). This makes it a practical Threads keyword search scraper for large monitoring jobs.

- 🔒 No login required  
  Discovers GraphQL credentials from the public Threads search page and uses a logged-out request flow. No cookies or session management required.

- 🧰 Developer-friendly  
  Access results via Apify Dataset API and export to CSV, JSON, or Excel. Integrate with your existing Threads scraping Python or Node.js workflows through the Apify API.

- 🧪 Sensible defaults  
  Uses serp_type=default, sort_order=TOP for replies, and feed_index=0 internally — consistent, predictable behavior for repeat runs.

- 🧱 Production-ready on Apify  
  Built on Apify infrastructure with clear logging and incremental row saves, so your Instagram Threads scraper workflows stay reliable at scale.

### How to use 🧵 Threads Search Post Scraper - step by step

1. Create or log in to your Apify account.
2. Open the actor and locate the “Input” section.
3. Add your targets to urls:  
   - Full post URLs on threads.com or threads.net  
   - Numeric post IDs (10+ digits)  
   - Search phrases (e.g., “Mark Zuckerberg”) — the first thread from that search’s HTML is used to fetch replies.
4. (Optional) Configure proxyConfiguration if you want Apify Proxy. The run automatically escalates: no proxy → SHADER → RESIDENTIAL (with up to 3 retries on residential).
5. Click Start. Watch logs for steps like “Locating thread…”, “Downloading replies…”, and “Parsed X item(s)”.
6. When finished, open the dataset to preview posts at a glance (post_url, pk, code, caption, like_count, taken_at, user).
7. Export your data as JSON, CSV, or Excel, or fetch it via the Apify Dataset API.

Pro tip: Chain this Threads data scraping tool with your analytics pipeline. Pull JSON via API into your data warehouse, or wire it into dashboards for real-time trend tracking.

### Use cases

| Use case name | Description |
| --- | --- |
| Social listening & trend analysis | Monitor keywords or hashtags to quantify engagement and surface top replies for research and reporting. |
| Brand & campaign tracking | Track conversation threads around brand terms to measure sentiment and community reactions over time. |
| Competitor watch | Capture replies on competitor announcements to analyze audience response and benchmark content performance. |
| Academic & media research | Collect structured, public replies for qualitative and quantitative studies on platform discourse. |
| Product feedback mining | Extract replies to product posts to categorize feedback, ideas, and common pain points. |
| API pipeline for analytics | Feed normalized JSON into your ETL/ELT stack using the Apify API for downstream BI and ML workflows. |

### Why choose 🧵 Threads Search Post Scraper?

This focused Threads posts extractor is built for precision, automation, and reliability on public data.

- ✅ Accurate normalization: Consistent, flat post objects ready for analysis.
- 🔄 Robust connectivity: Automatic tiered proxy escalation with up to 3 residential retries.
- 🧪 No login required: Uses public Threads search for credential discovery.
- 📦 Batch-friendly: Handle multiple URLs, IDs, or search phrases in a single run.
- 🔗 Easy exports & API: Download CSV/JSON/Excel or fetch via the Apify Dataset API.
- 🧑‍💻 Developer-ready: Fits seamlessly into Threads scraping Python scripts or Node.js pipelines via API.
- 🧱 Better than ad-hoc tools: Avoid brittle browser extensions and one-off scripts with a production-ready solution.

Bottom line: if you need a reliable Meta Threads search scraper and Threads post scraper, this actor delivers clean, structured results at scale.

### Is it legal / ethical to use 🧵 Threads Search Post Scraper?

Yes — when used responsibly. This actor accesses publicly available Threads pages and does not authenticate or access private profiles. Always:

- Scrape only public data you’re permitted to access.
- Respect platform terms and applicable regulations (e.g., GDPR, CCPA).
- Avoid collecting or distributing sensitive personal information.
- Consult your legal team for edge cases and jurisdiction-specific requirements.

### Input parameters & output format

#### Example JSON input
```json
{
  "urls": [
    "Mark Zuckerberg",
    "https://www.threads.com/@zuck/post/AbCdEfGhIjK",
    "123456789012345"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

Parameters

- urls (array)
  - Description: Each line: a full post URL (threads.com or threads.net), a numeric post ID (10+ digits), or a search phrase. Phrases behave like the standalone script’s search query: the first thread from that search’s HTML is used to fetch replies. Example URL: https://www.threads.com/@zuck/post/AbCdEfGhIjK — example phrase: Mark Zuckerberg
  - Required: Yes
  - Default: none (UI prefill shows \["Mark Zuckerberg"])

- proxyConfiguration (object)
  - Description: Leave off for a simple run. Turn on Apify Proxy here when you want Apify to route requests through its network — useful on busy or sensitive targets.
  - Required: No
  - Default: {"useApifyProxy": false}

#### Example JSON output

```json
{
  "post_url": "https://www.threads.com/@zuck/post/AbCdEfGhIjK",
  "pk": "123456789012345",
  "user": {
    "friendship_status": {
      "muting": false,
      "following": false,
      "followed_by": false,
      "outgoing_request": null,
      "blocking": null
    },
    "id": "987654321",
    "pk": "987654321",
    "text_app_last_visited_time": 0,
    "profile_pic_url": "https://example.com/pic.jpg",
    "username": "zuck",
    "full_name": "Mark Zuckerberg",
    "transparency_label": null,
    "transparency_product": null,
    "transparency_product_enabled": null,
    "is_verified": true,
    "text_post_app_is_private": null,
    "has_onboarded_to_text_post_app": null
  },
  "text_post_app_info": {
    "is_post_unavailable": null,
    "pinned_post_info": null,
    "id": "123456789012345",
    "share_info": {
      "reposted_post": null,
      "is_reposted_by_viewer": false,
      "can_quote_post": true,
      "quoted_attachment_author_attribution_allowed": true,
      "quoted_attachment_post_unavailable": false,
      "quoted_attachment_post": null,
      "quoted_post": null
    },
    "show_header_follow": null,
    "self_thread_info": null,
    "is_spoiler_media": null,
    "is_markup": null,
    "special_effects_enabled_str": null,
    "reply_control": null,
    "can_reply": null,
    "can_private_reply": null,
    "is_ghost_post": null,
    "tag_header": null,
    "direct_reply_count": null,
    "ghost_post_exp_time_ms": null,
    "ghost_post_approximate_like_count_str": null,
    "ghost_post_approximate_reply_count_str": null,
    "ghost_post_reply_type": null,
    "repost_count": null,
    "quote_count": null,
    "reshare_count": null,
    "text_fragments": {
      "fragments": [
        {
          "fragment_type": "PLAIN",
          "link_fragment": null,
          "mention_fragment": null,
          "plaintext": "Big launch today…",
          "linkified_web_url": null,
          "linkified_in_app_url": null,
          "styling_info": null
        }
      ]
    },
    "custom_feed_preview_info": null,
    "platform_podcast_episode_info": null,
    "platform_podcast_info": null,
    "link_preview_attachment": null,
    "link_preview_response": null,
    "linked_inline_media": null,
    "snippet_attachment_info": null,
    "algo_tweaks_info": null,
    "is_reply": null,
    "reply_to_author": null,
    "reply_approval_info": null,
    "hush_info": null,
    "system_status_message": null,
    "private_reply_partner": null,
    "fediverse_info": {
      "is_federated": false,
      "enqueued_for_federation": null,
      "federated_like_count": null
    },
    "self_thread_count": null,
    "root_post_author": null,
    "is_liked_by_root_author": null,
    "related_trends_info": null,
    "post_unavailable_reason": null,
    "post_tombstone_info": null
  },
  "id": "123456789012345",
  "logging_info_token": null,
  "is_paid_partnership": null,
  "audio": null,
  "caption": {
    "text": "Big launch today…"
  },
  "caption_is_edited": null,
  "transcription_data": null,
  "carousel_media": null,
  "code": "AbCdEfGhIjK",
  "image_versions2": null,
  "original_height": null,
  "original_width": null,
  "accessibility_caption": null,
  "usertags": null,
  "video_versions": null,
  "has_audio": null,
  "media_type": 1,
  "caption_add_on": null,
  "has_liked": false,
  "like_count": 1542,
  "taken_at": 1713446400,
  "media_overlay_info": null,
  "sharing_friction_info": {
    "should_have_sharing_friction": false,
    "sharing_friction_payload": null
  },
  "canonical_url": "https://www.threads.com/@zuck/post/AbCdEfGhIjK",
  "giphy_media_info": null,
  "metaPlace": null,
  "meta_place": null,
  "gen_ai_detection_method": {
    "detection_method": "NONE"
  },
  "organic_tracking_token": null,
  "__token": null,
  "like_and_view_counts_disabled": null
}
```

Notes:

- The actor pushes one dataset item per post/reply in the thread.
- Field presence may vary by post type and availability in the public API.

### FAQ

#### Do I need to log in or provide cookies to scrape Threads posts?

No. The actor discovers required GraphQL credentials from the public Threads search page and performs logged-out requests. You only need to provide URLs, numeric IDs, or search phrases.

#### What inputs are supported — URLs, IDs, or keywords?

All three. You can input full post URLs on threads.com or threads.net, numeric post IDs (10+ digits), or search phrases (including topics/hashtags). Search phrases resolve the first thread from that search’s HTML.

#### Does this collect replies or just the root post?

It fetches the replies connection for the specified post ID and saves each post as a flat, normalized object. This makes it a practical Threads comments scraper for reply analysis.

#### How reliable is the connection? What if requests fail?

The run escalates connectivity automatically: it tries no proxy first, then SHADER (datacenter), then RESIDENTIAL, and retries up to 3 times on residential with new session IDs. This design improves resilience for Threads API scraping.

#### What sorting is used for replies?

By default, the actor uses sort\_order=TOP when building the replies GraphQL variables, mirroring the internal helper behavior.

#### Can I use this with Python or Node.js?

Yes. While the actor itself is implemented in Python, you can consume results from any stack using the Apify Dataset API. This makes it easy to integrate with Threads scraping Python scripts or Node.js pipelines.

#### What formats can I export to?

You can export results from the Apify dataset to JSON, CSV, or Excel, or pull them programmatically via the API.

#### Which fields are included in the output?

Top-level fields include post\_url, pk, code, caption, like\_count, taken\_at, user, text\_post\_app\_info, media\_type, has\_liked, canonical\_url, gen\_ai\_detection\_method, and others. See the example output above for the full structure.

#### Is this suitable for hashtags and keyword monitoring?

Yes. Provide a search phrase (e.g., a hashtag or topic) and the actor will resolve the first thread from that public search’s HTML and fetch its replies — ideal for a Threads search scraper or Threads posts extractor workflow.

#### Is it safe and compliant to use?

Yes, when used responsibly with public data only. Always respect platform terms and applicable data protection laws, and consult your legal team for your specific use case.

### Closing thoughts

🧵 Threads Search Post Scraper is built to turn Threads search phrases, post URLs, and IDs into flat, analytics-ready post objects at scale. With robust proxy escalation, no-login operation, and clean JSON output, it’s ideal for marketers, researchers, and developers. Export to CSV/JSON/Excel or connect via the Apify API to power dashboards and data pipelines. Start extracting smarter insights from Threads conversations today.

# Actor input Schema

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

Each line: a full post URL (threads.com or threads.net), a numeric post ID (10+ digits), or a search phrase. Phrases behave like the standalone script’s search query: the first thread from that search’s HTML is used to fetch replies. Example URL: https://www.threads.com/@zuck/post/AbCdEfGhIjK — example phrase: Mark Zuckerberg

## `maxItems` (type: `integer`):

Cap on how many rows to save across the whole run. Leave empty (or 0) for no limit.

## `proxyConfiguration` (type: `object`):

Leave off for a simple run. Turn on Apify Proxy here when you want Apify to route requests through its network — useful on busy or sensitive targets.

## Actor input object example

```json
{
  "urls": [
    "Mark Zuckerberg"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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": [
        "Mark Zuckerberg"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper-engine/threads-search-post-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": ["Mark Zuckerberg"],
    "maxItems": 10,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraper-engine/threads-search-post-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": [
    "Mark Zuckerberg"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraper-engine/threads-search-post-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraper-engine/threads-search-post-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🧵 Threads Search Post Scraper",
        "description": "Threads Search Post Scraper extracts posts from Threads search results based on keywords, hashtags, or topics. Collect post text, usernames, profile links, timestamps, likes, replies, and other public data in structured output. Great for trend tracking, research, and monitoring conversations.",
        "version": "1.0",
        "x-build-id": "v9pdRcbWtIIzyZB6N"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraper-engine~threads-search-post-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraper-engine-threads-search-post-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/scraper-engine~threads-search-post-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraper-engine-threads-search-post-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/scraper-engine~threads-search-post-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraper-engine-threads-search-post-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": "🔗 Targets to collect",
                        "type": "array",
                        "description": "Each line: a full post URL (threads.com or threads.net), a numeric post ID (10+ digits), or a search phrase. Phrases behave like the standalone script’s search query: the first thread from that search’s HTML is used to fetch replies. Example URL: https://www.threads.com/@zuck/post/AbCdEfGhIjK — example phrase: Mark Zuckerberg",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "🔢 Max items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on how many rows to save across the whole run. Leave empty (or 0) for no limit."
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy (optional)",
                        "type": "object",
                        "description": "Leave off for a simple run. Turn on Apify Proxy here when you want Apify to route requests through its network — useful on busy or sensitive targets."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
