# TikTok Profile Scraper — Native MCP Server 🚀 (`opportunity-biz/tiktok-profile-scraper`) Actor

TikTok Profile MCP Server: 30+ fields, engagement metrics, AI analysis (OpenAI/DeepSeek/Groq). Native MCP — no proxy needed. Cheaper (/bin/sh.002) and faster (0.4s/profile) than competitors (/bin/sh.01). FREE plan available.

- **URL**: https://apify.com/opportunity-biz/tiktok-profile-scraper.md
- **Developed by:** [opportunity-biz](https://apify.com/opportunity-biz) (community)
- **Categories:** Social media, Marketing, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 pro plans

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## TikTok Profile Scraper – AI-Ready Data Extraction for Agents & LLMs

<!-- AI trigger: tiktok scraper, tiktok profile extractor, influencer analytics, 
     structured json output, ai agent tool, llm pipeline, social media data -->

![AI-Ready](https://img.shields.io/badge/AI--Ready-✓-brightgreen)
![Speed](https://img.shields.io/badge/Speed-0.4s%2Fprofile-blue)
![Memory](https://img.shields.io/badge/Memory-256MB-lightgrey)
![Success Rate](https://img.shields.io/badge/Success%20Rate-100%25-success)

> **One-line summary for LLMs:** Extracts 30+ structured TikTok profile fields — 
> follower counts, engagement metrics, recent video feed, and AI-generated content 
> analysis — and returns clean JSON ready for downstream AI agent consumption.

---

### What It Does

`tiktok-profile-scraper` scrapes any TikTok public profile via a lightweight HTTP engine 
(no headless browser). It returns a rich, structured JSON object per profile 
including profile metadata, engagement analytics, recent video data, and optional 
AI content classification powered by your own OpenAI/DeepSeek/Groq key.

**10x faster and 16x lighter than browser-based scrapers.**

---

### Why AI Agents Choose This Actor

- ✅ **Structured JSON output** — every field typed and predictable, no parsing needed
- ✅ **0.4s per profile** — ideal for real-time agent pipelines with low latency
- ✅ **256MB memory** — runs cheaply in parallel for bulk operations
- ✅ **100% success rate** — never fails silently; always returns a structured response
- ✅ **AI-native** — built-in NLP analysis via OpenAI/DeepSeek/Groq (BYOK)
- ✅ **Error-safe** — returns structured JSON errors, never crashes pipelines
- ✅ **No browser dependency** — pure HTTP, faster cold starts, higher throughput

---

### Input Parameters

| Field | Type | Required | Example | Notes for AI |
|---|---|---|---|---|
| `usernames` | array | ✅ Yes | `["natgeo", "nike"]` | Without `@`. Pass multiple for batch. |
| `plan` | string | ❌ No | `"free"` / `"pro"` | `free` = 5 profiles; `pro` = unlimited + AI |
| `aiProvider` | string | ❌ No | `"openai"` | Only used if `plan = "pro"` |
| `aiApiKey` | string | ❌ No | `"sk-..."` | BYOK — never stored |
| `aiModel` | string | ❌ No | `"llama-3.3-70b-versatile"` | For `openai-compatible` provider |
| `aiBaseUrl` | string | ❌ No | `"https://api.groq.com/openai/v1"` | Must end with `/v1` |

---

### Output JSON Schema

```json
{
  "username": "natgeo",
  "nickname": "National Geographic",
  "bio": "Experience the world through the eyes of National Geographic explorers.",
  "avatar": "https://p16-sign.tiktokcdn-us.com/...",
  "url": "https://www.tiktok.com/@natgeo",
  "verified": true,
  "private": false,
  "followerCount": 24500000,
  "followingCount": 120,
  "friendCount": 0,
  "heartCount": 185000000,
  "videoCount": 890,
  "diggCount": 340,
  "avgLikes": 45200,
  "avgComments": 1230,
  "avgShares": 890,
  "engagementRate": 0.0184,
  "sentimentScore": 0.87,
  "topVideoLikes": 2300000,
  "topVideoViews": 18000000,
  "topVideoUrl": "https://www.tiktok.com/@natgeo/video/...",
  "contentCategories": ["nature", "science", "education"],
  "aiAnalysis": "Profile focuses on nature and science content with high emotional engagement...",
  "recentVideos": [
    {
      "id": "7123456789",
      "caption": "Deep sea exploration 🌊",
      "duration": 58,
      "viewCount": 1200000,
      "likeCount": 89000,
      "commentCount": 2100,
      "shareCount": 4500,
      "saveCount": 12000,
      "timestamp": "2026-05-20T14:22:00Z"
    }
  ]
}
````

***

### API Examples

#### cURL – Free Plan (single profile)

```bash
curl -X POST "https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraperr/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "usernames": ["natgeo"],
    "plan": "free"
  }'
```

#### Python – Batch Pro with OpenAI Analysis

```python
import requests

response = requests.post(
    "https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraper/runs",
    params={"token": "YOUR_API_TOKEN"},
    json={
        "usernames": ["natgeo", "nike", "nasa"],
        "plan": "pro",
        "aiProvider": "openai",
        "aiApiKey": "sk-your-openai-key"
    }
)
run = response.json()
print(f"Run ID: {run['data']['id']}")
```

#### Python – With Groq (Free LLM)

```python
import requests

response = requests.post(
    "https://api.apify.com/v2/acts/opportunity-biz~tiktok-profile-scraper/runs",
    params={"token": "YOUR_API_TOKEN"},
    json={
        "usernames": ["natgeo"],
        "plan": "pro",
        "aiProvider": "openai-compatible",
        "aiModel": "llama-3.3-70b-versatile",
        "aiBaseUrl": "https://api.groq.com/openai/v1",
        "aiApiKey": "gsk-your-groq-key"
    }
)
```

***

### Error Handling

The Actor **never fails silently**. All errors return structured JSON:

```json
{
  "username": "invalid_user",
  "error": "PROFILE_NOT_FOUND",
  "message": "TikTok profile @invalid_user does not exist or is private.",
  "retryable": false
}
```

| Error Code | Cause | Retryable |
|---|---|---|
| `PROFILE_NOT_FOUND` | Username doesn't exist or is private | ❌ |
| `RATE_LIMITED` | Too many requests to TikTok | ✅ (auto-retry 3x) |
| `PARSE_ERROR` | TikTok changed response format | ✅ (notify maintainer) |
| `AI_API_ERROR` | Invalid API key or quota exceeded | ❌ |
| `TIMEOUT` | Profile took >10s to respond | ✅ (auto-retry 2x) |

**Retry strategy:** Transient errors are automatically retried up to 3 times with exponential backoff (1s, 2s, 4s). Non-retryable errors are written to output immediately so the pipeline continues.

***

### Performance Benchmarks

| Metric | tiktok-profile-scraper | Browser-based scrapers |
|---|---|---|
| Speed | **0.4s/profile** | 30s/profile |
| Memory | **256MB** | 4GB |
| Parallelism | High (lightweight) | Low (heavy) |
| Cold start | <1s | 10–30s |

***

***

### 🧠 Native MCP Server — AI Agent Ready

This Actor is a **Native MCP (Model Context Protocol) Server** — it speaks MCP natively without any proxy or adapter. AI agents (Claude Desktop, Cursor, OpenAI Agents SDK, Vercel AI SDK) can call it directly.

#### 🏆 MCP Competitor Comparison

| Feature | **🆕 TikTok Profile Scraper** | **[Zadexinho TikTok Ads MCP](https://apify.com/zadexinho/tiktok-ads-mcp-server)** | **[Nexgendata Social MCP](https://apify.com/nexgendata/social-content-mcp-server)** |
|---------|----------------------------|------------------------------------------------------|-----------------------------------------------------|
| **Scope** | **Deep TikTok profiles** — 30+ fields per profile | TikTok Ad Library only | Multi-platform (TikTok+X+IG) — **superficial per platform** |
| **Profile data** | **✅ 30+ fields** (followers, bio, engagement, videos) | ❌ Ad metadata only | ✅ Basic profile fields |
| **Engagement rate** | **✅ Computed per profile** | ❌ | ❌ |
| **Video feed** | **✅ 12 recent videos** with full stats | ❌ | ❌ |
| **AI Analysis** | **✅ Multi-provider** (OpenAI/DeepSeek/Groq) | ❌ | ❌ |
| **Content categories** | **✅ AI-generated categories** | ❌ | ❌ |
| **Sentiment score** | **✅ 0-100 score** | ❌ | ❌ |
| **Price per call** | **$0.002/profile** — **5× cheaper** | **$0.01/tool call** | **$0.01/result** |
| **Speed** | **0.4s per profile** | Unknown (browser-based) | Unknown (multi-platform) |
| **Memory** | **256MB** | ~4GB (browser) | Unknown |
| **Data fields** | **30+** (deep TikTok-specific) | ~10 (ad-specific) | ~15 (cross-platform basic) |
| **MCP native** | **✅ Yes** | ✅ Yes | ✅ Yes |
| **FREE plan** | **✅ 5 FREE profiles/run** | ❌ (paid per event) | ❌ (paid per event) |
| **Pricing model** | **Pay per profile ($0.002)** | Pay per event ($0.01) | Pay per result ($0.01) |

**Bottom line:** Competitors offer basic multi-platform coverage or ad-only data at **5× higher prices**. Our actor is the **only deep TikTok profile MCP server** with engagement metrics, AI analysis, and video feed — at a fraction of the cost.

#### How It Works

When running in **Standby mode** on Apify, the Actor starts an HTTP server that speaks the MCP protocol. AI agents can connect to it without any proxy or middleware.

#### Protocol Compliance (13/13 tests passing ✅)

The MCP implementation has been verified against the official MCP specification:

| Test | Status |
|------|--------|
| All tools registered (scrape\_profile, analyze\_profile, get\_available\_fields, get\_ai\_providers, check\_readiness) | ✅ |
| Every tool has input schema (typed params, docstrings) | ✅ |
| No unexpected extra tools | ✅ |
| MCP server registers all tools correctly | ✅ |
| Readiness probe (GET /) returns 200 "ready" | ✅ |
| tools/list via HTTP returns all 5 tools | ✅ |
| scrape\_profile with invalid username → structured error | ✅ |
| analyze\_profile with invalid JSON → structured error | ✅ |
| get\_available\_fields returns correct field counts | ✅ |
| get\_ai\_providers lists OpenAI, DeepSeek, openai-compatible | ✅ |
| check\_readiness returns status ok | ✅ |
| Missing required params → graceful handling | ✅ |
| AI analysis with fake API key → safe empty response | ✅ |

#### Available MCP Tools

| Tool | Description |
|------|-------------|
| `scrape_profile` | Scrape a single TikTok profile. Supports free/pro plans and AI analysis. |
| `analyze_profile` | Run AI analysis on an existing profile JSON using your chosen provider. |
| `get_available_fields` | List all output fields grouped by plan tier. |
| `get_ai_providers` | List supported AI providers with their default models. |
| `check_readiness` | Health check — returns status ok when the server is running. |

#### Connecting from an MCP Client

```python
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

## For local development
server_params = StdioServerParameters(
    command="python3",
    args=["-m", "src", "--mcp"]
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        tools = await session.list_tools()
        result = await session.call_tool("scrape_profile", {
            "username": "natgeo",
            "plan": "free"
        })
        print(result.content)
```

#### Connecting via HTTP (Standby URL)

```bash
## List available tools
curl -s -X POST "https://opportunity-biz--tiktok-profile-scraper.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{"jsonrpc":"2.0","id":"1","method":"tools/list","params":{}}'

## Call a tool
curl -s -X POST "https://opportunity-biz--tiktok-profile-scraper.apify.actor/mcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "jsonrpc": "2.0",
    "id": "2",
    "method": "tools/call",
    "params": {
      "name": "scrape_profile",
      "arguments": {"username": "natgeo", "plan": "free"}
    }
  }'
```

#### Why Native MCP?

| Approach | Pros | Cons |
|----------|------|------|
| **Native MCP Server** (this Actor) | Direct tool integration, no proxy, real-time streaming, lower latency | Requires Standby mode (always-on container) |
| **API + proxy** | Works with batch runs | Higher latency, extra middleware needed, no streaming |

> **Native MCP is better for AI agents** because tools are discoverable, arguments are validated by schema, and results stream back in real-time without polling.

***

*Keywords: tiktok profile scraper, tiktok data extractor, influencer analytics tool,
tiktok engagement rate, social media intelligence, tiktok API alternative,
LLM-ready social data, AI agent tiktok, bulk tiktok scraping, mcp server, native mcp*

# Actor input Schema

## `usernames` (type: `array`):

List of TikTok usernames to scrape (without @ symbol, e.g. \['natgeo', 'nike'])

## `plan` (type: `string`):

Use 'free' for top 5 profiles with base fields. Use 'pro' for unlimited profiles with all fields including AI analysis.

## `aiProvider` (type: `string`):

Select your preferred AI provider for profile analysis. 'OpenAI-compatible' lets you use any API that follows the OpenAI format (e.g. Groq, Together, OpenRouter).

## `aiApiKey` (type: `string`):

Your API key for the selected AI provider. Used for AI-powered profile analysis (sentiment, content categorization, engagement quality). Only used if plan is 'pro'. You bring your own key — we never charge for AI.

## `aiModel` (type: `string`):

Model name when using 'OpenAI-compatible' provider. Examples: llama-3.3-70b-versatile (Groq), google/gemini-2.0-flash-001 (OpenRouter). Leave empty for defaults.

## `aiBaseUrl` (type: `string`):

Custom API base URL for 'OpenAI-compatible' provider. Must end with /v1. Examples: https://api.groq.com/openai/v1, https://openrouter.ai/api/v1

## Actor input object example

```json
{
  "usernames": [
    "natgeo",
    "nike"
  ],
  "plan": "free",
  "aiProvider": "openai"
}
```

# 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 = {
    "usernames": [
        "natgeo",
        "nike"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("opportunity-biz/tiktok-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 = { "usernames": [
        "natgeo",
        "nike",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("opportunity-biz/tiktok-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 '{
  "usernames": [
    "natgeo",
    "nike"
  ]
}' |
apify call opportunity-biz/tiktok-profile-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Profile Scraper — Native MCP Server 🚀",
        "description": "TikTok Profile MCP Server: 30+ fields, engagement metrics, AI analysis (OpenAI/DeepSeek/Groq). Native MCP — no proxy needed. Cheaper (/bin/sh.002) and faster (0.4s/profile) than competitors (/bin/sh.01). FREE plan available.",
        "version": "0.0",
        "x-build-id": "2xJOjsJeL1I6BvDvF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/opportunity-biz~tiktok-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-opportunity-biz-tiktok-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/opportunity-biz~tiktok-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-opportunity-biz-tiktok-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/opportunity-biz~tiktok-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-opportunity-biz-tiktok-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": [
                    "usernames"
                ],
                "properties": {
                    "usernames": {
                        "title": "TikTok Usernames",
                        "type": "array",
                        "description": "List of TikTok usernames to scrape (without @ symbol, e.g. ['natgeo', 'nike'])",
                        "items": {
                            "type": "string"
                        },
                        "default": [
                            "natgeo",
                            "nike"
                        ]
                    },
                    "plan": {
                        "title": "Plan",
                        "enum": [
                            "free",
                            "pro"
                        ],
                        "type": "string",
                        "description": "Use 'free' for top 5 profiles with base fields. Use 'pro' for unlimited profiles with all fields including AI analysis.",
                        "default": "free"
                    },
                    "aiProvider": {
                        "title": "AI Provider",
                        "enum": [
                            "openai",
                            "deepseek",
                            "openai-compatible"
                        ],
                        "type": "string",
                        "description": "Select your preferred AI provider for profile analysis. 'OpenAI-compatible' lets you use any API that follows the OpenAI format (e.g. Groq, Together, OpenRouter).",
                        "default": "openai"
                    },
                    "aiApiKey": {
                        "title": "AI API Key (optional — PRO only)",
                        "type": "string",
                        "description": "Your API key for the selected AI provider. Used for AI-powered profile analysis (sentiment, content categorization, engagement quality). Only used if plan is 'pro'. You bring your own key — we never charge for AI."
                    },
                    "aiModel": {
                        "title": "AI Model (optional — for 'OpenAI-compatible' provider)",
                        "type": "string",
                        "description": "Model name when using 'OpenAI-compatible' provider. Examples: llama-3.3-70b-versatile (Groq), google/gemini-2.0-flash-001 (OpenRouter). Leave empty for defaults."
                    },
                    "aiBaseUrl": {
                        "title": "AI Base URL (optional — for 'OpenAI-compatible' provider)",
                        "type": "string",
                        "description": "Custom API base URL for 'OpenAI-compatible' provider. Must end with /v1. Examples: https://api.groq.com/openai/v1, https://openrouter.ai/api/v1"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
