# Facebook Profile Scraper | $4/1K | No Login (Real-Time) (`apivault_labs/facebook-profile-scraper`) Actor

Real-time Facebook profile and page scraper. Live data, not stale database. Get name, bio, followers, email, website, category, work history. Choose fields to extract. Batch up to 20 concurrent. No login, no cookies. JSON output for lead gen and marketing.

- **URL**: https://apify.com/apivault\_labs/facebook-profile-scraper.md
- **Developed by:** [Apivault Labs](https://apify.com/apivault_labs) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 28 total users, 13 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 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

## 📘 Facebook Profile Scraper | $4/1K | No Login, Real-Time, Multi-Strategy

> **Direct Facebook scraping for public profiles and pages — name, bio, followers, likes, public emails + phones, websites, verification badge, page category, and a 0-100 activity score. Multi-strategy fallback (mbasic, mobile, embed, OG-meta) survives Facebook's 2026 anti-bot updates. Residential proxy. No login.**

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue?logo=apify)](https://apify.com/apivault_labs/facebook-profile-scraper-4-1k-no-login-real-time)
[![Pricing](https://img.shields.io/badge/pricing-$4%20per%201,000-orange)](https://apify.com/apivault_labs/facebook-profile-scraper-4-1k-no-login-real-time)

---

### ✨ What's new in v2.0 (May 2026)

**🔧 Direct fetch (no Thunderbit)** — the previous Thunderbit-based pipeline was blocked by Facebook in early 2026. v2.0 fetches Facebook directly through 5 fallback strategies (mbasic, mobile, desktop, Googlebot, embed iframe) so a block on one route is automatically routed around.

**🛡️ Residential proxy by default** — Facebook heavily rate-limits datacenter IPs. v2.0 uses Apify residential proxy (country-pinnable) for much higher success rates.

**👥 Page vs profile detection** — different layouts get different extraction logic. `profileType` is one of `page` / `profile` / `group` / `unknown`.

**✅ Verification badge detection** — surface the blue tick / verified-page status as a boolean.

**📊 Activity score (0-100)** — composite signal combining followers + verification + has-website + has-email + has-phone + page-vs-profile. Tier classifier: `small` / `growing` / `established` / `major`.

**📧 Email + phone scraping** — pulls public emails and phones from page text, JSON-LD blocks, and Open Graph meta. Filtered through 30+ Facebook CDN domain blacklist.

**🌐 Website unwrapping** — Facebook wraps external links in `l.facebook.com/l.php?u=…`. v2.0 unwraps them so you get the page's real website URL.

**🎯 Best-contact-channel + cross-platform search URLs** — one field that says "email this" or "DM this Facebook page", plus 1-click search links for Instagram, LinkedIn, TikTok, Twitter/X, YouTube and Google.

**🌍 Locale detection** — `og:locale` exposes the page's primary language for international segmentation.

---

### Why direct scraping won

| Approach | Status (May 2026) | Why |
|---|---|---|
| **Thunderbit** | ❌ Blocked | Facebook tightened anti-bot in early 2026 |
| **Browser automation (Playwright)** | ⚠️ Slow + expensive | Takes 30-60s per profile, 10× cost |
| **Direct mbasic + residential proxy** ✅ | ✅ Working | mbasic.facebook.com still serves no-JS HTML for accessibility |
| **Open Graph meta tags fallback** ✅ | ✅ Always works | OG tags are always served for link-preview crawlers |

---

### What you get for $0.004 per profile

#### Core fields (always returned when scrape succeeds)
- `username`, `fullName`, `bio`, `category`, `locale`
- `profileUrl`, `avatarUrl`
- `profileType` — `page` / `profile` / `group` / `unknown`
- `verified` — boolean for blue badge

#### Counts
- `followerCount` — primary follower number
- `likeCount` — page likes (different from followers on pages)

#### Contact data
- `emails[]`, `primaryEmail` — public emails scraped from page
- `phones[]`, `primaryPhone` — public phones scraped
- `websites[]`, `primaryWebsite` — external sites unwrapped from `l.facebook.com/l.php?u=…`
- `bestContact: {channel, value, label}` — single highest-confidence outreach path

#### Lead intelligence (NEW)
- `activityScore` (0-100) — composite quality signal
- `activityScoreReasons[]` — every contributing signal in plain English
- `activityTier` — `small` / `growing` / `established` / `major`

#### Cross-platform helpers
- `socialSearchUrls{}` — 1-click links to find this person/page on Instagram, LinkedIn, TikTok, Twitter, YouTube, Google

#### Diagnostics
- `fetchStrategy` — which Facebook endpoint succeeded (`mbasic` / `mobile` / `desktop` / `googlebot` / `embed`)
- `fetchStatus` — HTTP status of the successful fetch

---

### Input

```json
{
  "profileUrls": [
    "https://www.facebook.com/NASA",
    "https://www.facebook.com/cocacola",
    "https://www.facebook.com/Microsoft"
  ],
  "maxConcurrency": 3,
  "useResidentialProxy": true,
  "proxyCountry": "US"
}
````

| Parameter | Type | Default | Description |
|---|---|---|---|
| `profileUrls` | array | required | Public FB profile or page URLs (`/username/` or `/profile.php?id=...`) |
| `maxConcurrency` | int | 3 | Parallel scrapes (1-10) — keep low to avoid rate limits |
| `timeout` | int | 45 | Seconds to wait per profile |
| `useResidentialProxy` | bool | true | Use Apify residential proxy (strongly recommended) |
| `proxyCountry` | str | "US" | ISO country code for residential proxy |

***

### Sample output (NASA page)

```json
{
  "success": true,
  "inputUrl": "https://www.facebook.com/NASA",
  "profileType": "page",
  "fetchStrategy": "mbasic",
  "fetchStatus": 200,

  "username": "NASA",
  "fullName": "NASA",
  "bio": "Explore the universe and discover our home planet.",
  "category": "Government organization",
  "locale": "en_us",
  "verified": true,

  "profileUrl": "https://www.facebook.com/NASA",
  "avatarUrl": "https://scontent.fbcdn.net/...",

  "followerCount": 26000000,
  "likeCount": 25800000,

  "websites": ["https://www.nasa.gov/"],
  "primaryWebsite": "https://www.nasa.gov/",
  "emails": ["public-inquiries@hq.nasa.gov"],
  "primaryEmail": "public-inquiries@hq.nasa.gov",
  "phones": [],
  "primaryPhone": null,

  "bestContact": {
    "channel": "email",
    "value": "public-inquiries@hq.nasa.gov",
    "label": "public email from page"
  },

  "socialSearchUrls": {
    "instagram": "https://www.google.com/search?q=%22NASA%22+site%3Ainstagram.com",
    "linkedin":  "https://www.google.com/search?q=%22NASA%22+site%3Alinkedin.com",
    "tiktok":    "https://www.google.com/search?q=%22NASA%22+site%3Atiktok.com",
    "twitter":   "https://www.google.com/search?q=%22NASA%22+site%3Ax.com+OR+site%3Atwitter.com",
    "youtube":   "https://www.google.com/search?q=%22NASA%22+site%3Ayoutube.com",
    "googleSearch": "https://www.google.com/search?q=%22NASA%22"
  },

  "activityScore": 85,
  "activityTier": "major",
  "activityScoreReasons": [
    "verified page (blue badge)",
    "business page (extracts more data)",
    "26,000,000 followers — major brand",
    "has external website",
    "has public email"
  ]
}
```

#### Aggregate summary record (always last)

```json
{
  "_summary": true,
  "totalScraped": 8,
  "totalFailed": 0,
  "verifiedCount": 5,
  "withEmailCount": 6,
  "withPhoneCount": 2,
  "withWebsiteCount": 7,
  "avgActivityScore": 67.5,
  "activityTierBreakdown": {"small": 0, "growing": 2, "established": 3, "major": 3}
}
```

***

### Use cases

#### 🏢 B2B Lead Generation

Pull a list of competitor pages, filter to those with `primaryEmail` populated, sort by `activityScore`. Hand to your SDR team.

#### 📊 Brand Monitoring

Daily snapshot of follower counts, verification status, and category for a watchlist of brands.

#### 🎯 Influencer Discovery

Filter pages by `activityTier == "growing"` (10K-100K followers) — these are micro-influencers with engaged audiences but reasonable rates.

#### 🔗 CRM Enrichment

Already have FB URLs in your CRM? Run this actor and merge `bestContact`, `primaryEmail`, `primaryWebsite`, `verified` back into your records.

#### 🌍 International Expansion Research

Use `locale` to find pages in target markets. Cross-reference `socialSearchUrls` to find their other-platform presence.

#### 📰 Media Watchlist

Scrape news outlets and government pages periodically. Track follower growth and verification status changes.

***

### How activity score works

| Signal | Points |
|---|---|
| Verified blue badge | +25 |
| Is business page (not personal) | +5 |
| Followers ≥ 1M | +20 |
| Followers 100K-999K | +15 |
| Followers 10K-99K | +10 |
| Followers 1K-9K | +5 |
| Has external website | +10 |
| Has public email | +10 |
| Has public phone | +5 |
| Has bio | +5 |
| Has avatar | +3 |

Score is clamped 0-100. Tiers: `small` (<30), `growing` (30-49), `established` (50-69), `major` (70+).

***

### How fetch fallback works

Each profile cycles through 5 endpoints until one returns parseable HTML:

1. **mbasic.facebook.com** — no-JS accessibility version, lightest HTML, easiest to parse
2. **m.facebook.com** — modern mobile site
3. **www.facebook.com** — desktop, heaviest but always serves Open Graph meta
4. **Googlebot UA** — sometimes opens content blocked from regular browsers
5. **embed iframe** (`/plugins/page.php?href=…`) — designed to be embedded, never login-walled

The first endpoint that returns >5 KB of HTML and isn't a login wall wins. mbasic and mobile typically return immediately — desktop and embed are fallbacks.

***

### Pricing

Pay per successful profile:

| Volume | Cost |
|---|---|
| 1 profile | $0.004 |
| 100 profiles | $0.40 |
| 1,000 profiles | $4.00 |
| 10,000 profiles | $40.00 |

Free Apify tier (~$5/month) covers ~1,250 profiles per month for free.

You only pay for **successful** scrapes. If Facebook blocks all 5 strategies for a URL, that record is marked `success: false` and you're not charged for it.

***

### FAQ

**Q: Why was the previous version broken?**
A: Thunderbit (the third-party scraper used in v1) was blocked by Facebook in early 2026. v2.0 fetches Facebook directly through public HTML endpoints + residential proxy, sidestepping the Thunderbit ban.

**Q: How accurate is the verification detection?**
A: When `verified: true`, the badge has been confirmed via either JSON-LD `identifier` field or the `verification_badge` HTML token near the `<title>`. False negatives possible (some old pages don't expose the badge in HTML even when verified on the live site).

**Q: Will this work on personal profiles?**
A: Yes for public profiles. Personal profiles return less data than pages — typically just name, bio, avatar, and (sometimes) follower count. No category or page email.

**Q: Will it scrape private profiles or logged-in features?**
A: No — only data Facebook serves to logged-out browsers. Friends lists, post content, etc. are not exposed.

**Q: How accurate is the email scraping?**
A: When the page lists a public email in its About section or contact info, the actor finds it. When the page hides emails behind a "Contact Us" button or login prompt, no email is returned. Email extraction also filters out 30+ Facebook CDN domains and image-asset filenames.

**Q: What about phone numbers?**
A: Same as emails — pages that publish them get them extracted. Phone regex requires 10-15 digits.

**Q: Speed?**
A: Typically 5-15 seconds per profile. The actor returns early as soon as mbasic or mobile yields a good response, falling through to slower endpoints only if needed.

**Q: Can I use my own proxy?**
A: Currently the actor uses Apify residential proxy. Custom proxy support is on the roadmap.

***

### Disclaimer

This Actor scrapes only publicly accessible data Facebook serves to logged-out users. Use responsibly and respect Facebook's Terms of Service for your jurisdiction. Do not use scraped data for spam, harassment, or any unlawful purpose.

# Actor input Schema

## `profileUrls` (type: `array`):

Public Facebook profile or page URLs. Supports both /username/ and /profile.php?id=... formats. Multiple URLs are scraped in parallel.

## `maxConcurrency` (type: `integer`):

How many profiles to scrape in parallel. Higher values are faster but more likely to trigger Facebook rate limits — recommended 3-5.

## `timeout` (type: `integer`):

Maximum time to wait for each profile. Facebook responses are usually <10s, but pages with lots of media can be slower.

## `useResidentialProxy` (type: `boolean`):

Use Apify residential proxy. Strongly recommended — Facebook blocks most datacenter IPs. Disable only if running locally outside Apify.

## `proxyCountry` (type: `string`):

ISO 2-letter country code for residential proxy (e.g. US, GB, DE). Pinning a country avoids region-redirects to localised Facebook variants. Empty = automatic.

## Actor input object example

```json
{
  "profileUrls": [
    "https://www.facebook.com/NASA",
    "https://www.facebook.com/cocacola",
    "https://www.facebook.com/Microsoft"
  ],
  "maxConcurrency": 3,
  "timeout": 45,
  "useResidentialProxy": true,
  "proxyCountry": "US"
}
```

# 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 = {
    "profileUrls": [
        "https://www.facebook.com/NASA",
        "https://www.facebook.com/cocacola",
        "https://www.facebook.com/Microsoft"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("apivault_labs/facebook-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 = { "profileUrls": [
        "https://www.facebook.com/NASA",
        "https://www.facebook.com/cocacola",
        "https://www.facebook.com/Microsoft",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("apivault_labs/facebook-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 '{
  "profileUrls": [
    "https://www.facebook.com/NASA",
    "https://www.facebook.com/cocacola",
    "https://www.facebook.com/Microsoft"
  ]
}' |
apify call apivault_labs/facebook-profile-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Profile Scraper | $4/1K | No Login (Real-Time)",
        "description": "Real-time Facebook profile and page scraper. Live data, not stale database. Get name, bio, followers, email, website, category, work history. Choose fields to extract. Batch up to 20 concurrent. No login, no cookies. JSON output for lead gen and marketing.",
        "version": "1.0",
        "x-build-id": "qZD6XH8QOegJAkDmx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/apivault_labs~facebook-profile-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-apivault_labs-facebook-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/apivault_labs~facebook-profile-scraper/runs": {
            "post": {
                "operationId": "runs-sync-apivault_labs-facebook-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/apivault_labs~facebook-profile-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-apivault_labs-facebook-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": [
                    "profileUrls"
                ],
                "properties": {
                    "profileUrls": {
                        "title": "Facebook Profile / Page URLs",
                        "type": "array",
                        "description": "Public Facebook profile or page URLs. Supports both /username/ and /profile.php?id=... formats. Multiple URLs are scraped in parallel.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many profiles to scrape in parallel. Higher values are faster but more likely to trigger Facebook rate limits — recommended 3-5.",
                        "default": 3
                    },
                    "timeout": {
                        "title": "Timeout per profile (seconds)",
                        "minimum": 15,
                        "maximum": 120,
                        "type": "integer",
                        "description": "Maximum time to wait for each profile. Facebook responses are usually <10s, but pages with lots of media can be slower.",
                        "default": 45
                    },
                    "useResidentialProxy": {
                        "title": "Use residential proxy (recommended)",
                        "type": "boolean",
                        "description": "Use Apify residential proxy. Strongly recommended — Facebook blocks most datacenter IPs. Disable only if running locally outside Apify.",
                        "default": true
                    },
                    "proxyCountry": {
                        "title": "Proxy country code",
                        "type": "string",
                        "description": "ISO 2-letter country code for residential proxy (e.g. US, GB, DE). Pinning a country avoids region-redirects to localised Facebook variants. Empty = automatic.",
                        "default": "US"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
