# GitHub Repo Audience Scraper — Forkers, Watchers, Contributors (`haketa/github-repo-audience-scraper`) Actor

Export the developers engaged with any GitHub repository — the people who forked, watch, or contributed to it — enriched with name, company, location, website and X/Twitter. Build high-intent developer lead lists. No token needed for forkers and contributors.

- **URL**: https://apify.com/haketa/github-repo-audience-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Lead generation, Developer tools, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

<h1>🎯 GitHub Repo Audience Scraper</h1>

<p><strong>Export the developers who forked, watch, or contributed to any repository — as an enriched lead list.</strong></p>

![HighIntent](https://img.shields.io/badge/🎯-High--Intent%20Devs-2b3137) ![Forkers](https://img.shields.io/badge/🍴-Forkers-6f42c1) ![Watchers](https://img.shields.io/badge/👀-Watchers-1f6feb) ![Contributors](https://img.shields.io/badge/🛠️-Contributors-2da44e) ![Export](https://img.shields.io/badge/⬇️-Excel·CSV·JSON-24292f)

Pick any GitHub repository — including your competitors' — and this Actor exports the **developers actively engaged with it**: the people who **forked** it, who **watch** it, and who **contributed** to it. Each is enriched with **name, bio, company, location, website, X/Twitter and follower count**. These are the highest-intent developer audiences on GitHub.

> 🔓 **No token needed to start.** Forkers and contributors work right away. Add a free GitHub token only to also collect **watchers** and to speed up very large jobs.

---

### ✨ Why you'll love it

- 🎯 **The highest-intent developers** — forking, watching and contributing are far stronger signals than a passive star.
- 🍴 **Forkers = buyers** — a developer who forked a repo is actively building with that technology.
- 🧑‍💻 **Real profiles** — name, company, location, website, X/Twitter and follower count in every row.
- 🏷️ **Engagement tags** — see exactly how each developer engaged (forker, watcher, contributor — or several at once).
- ⚔️ **Competitor mining** — export the audience of a rival project and reach developers already invested in your category.
- ⚡ **Fast & scalable** — profiles are fetched in efficient batches; handles very large repositories.

---

### 👥 Who it's for

| You are… | Use it to… |
| :-- | :-- |
| 🛠️ **Dev-tool / SaaS marketer** | Reach the developers building on a competing or complementary project. |
| 🧲 **Technical recruiter** | Find engineers who use a specific technology, by company and location. |
| 🚀 **Founder / DevRel** | Understand and re-engage the developers around your project. |
| 📊 **Market researcher** | Map the active community of any framework, library or tool. |
| 🤝 **Agency / consultancy** | Build targeted outreach lists of engineers in a niche. |

---

### 🔑 Optional: add a token for watchers & speed (30 seconds)

**Forkers and contributors work with no token at all.** A free GitHub token unlocks the **watchers** audience and speeds up very large jobs:

1. Open [github.com/settings/tokens](https://github.com/settings/tokens) → **Generate new token → Tokens (classic)**.
2. For public repositories you **don't need to tick any scope**. *(Optional: tick `user:email` to also collect public emails.)*
3. Copy the token and paste it into the **GitHub token** field of this Actor.

Your token is stored securely and only used for your own runs.

---

### ⚡ Quick start

1. Open the Actor.
2. In **GitHub repositories**, type one or more repos as `owner/repo` or paste a URL — e.g. `facebook/react`, `https://github.com/vercel/next.js`.
3. Choose which **audience types** you want (forkers and contributors need no token; watchers need one).
4. Press **Start** — no token needed to begin.
5. Open the **Output** tab to preview, then **Export** → **Excel / CSV / JSON**, or send to **Google Sheets**, **Airtable**, **Zapier**, **Make**, or your app via API.

---

### 🧩 Input options

#### ⭐ GitHub repositories · `repos`
The repositories whose audience you want. Enter as `owner/repo` (`facebook/react`) or paste a repo URL. Add as many as you like.

#### 🏷️ Audience types · `audienceTypes`
Any combination of:
- 🍴 **Forkers** — developers who forked the repo (highest intent).
- 👀 **Watchers** — developers watching the repo's activity.
- 🛠️ **Contributors** — developers who committed to the repo.

#### 🔑 GitHub token · `githubToken` *(optional)*
Not needed for forkers and contributors. Add a free personal access token to also collect **watchers** and to speed up large jobs — see the section above.

#### 🔢 Max developers (total) · `maxItems`
Stop after this many developers in total. Defaults to **100**. Set **0** for no limit.

#### 🔢 Max developers per repository · `maxPerRepo`
Optional cap per repo — handy when scraping several repos at once. **0** = no per-repo cap.

#### ✨ Enrich developer profiles · `enrichProfiles`
On by default. Collects full details for every developer. Turn **off** for a faster username-only list.

---

### 🧪 Example inputs

<details open>
<summary>🎯 <strong>Full audience of one repo</strong></summary>

```json
{ "repos": ["facebook/react"], "githubToken": "ghp_xxx", "maxItems": 200 }
````

</details>

<details>
<summary>🍴 <strong>Only the developers who forked (highest intent)</strong></summary>

```json
{ "repos": ["vercel/next.js"], "audienceTypes": ["forkers"], "githubToken": "ghp_xxx", "maxItems": 500 }
```

</details>

<details>
<summary>⚔️ <strong>Compare several competitor repos</strong></summary>

```json
{
  "repos": ["sveltejs/svelte", "vuejs/core", "https://github.com/solidjs/solid"],
  "githubToken": "ghp_xxx",
  "maxItems": 900,
  "maxPerRepo": 300
}
```

</details>

***

### 📤 Output

Every developer is one flat, spreadsheet-ready row. Only the fields that exist for a given profile are included, so your export stays clean.

#### 📋 Field reference

| Field | 📖 Description |
| :-- | :-- |
| `username` | 🧑‍💻 The developer's GitHub username. |
| `name` | Their display name. |
| `bio` | Profile bio. |
| `company` | 🏢 Company / organization (often an `@handle`). |
| `location` | 📍 Location. |
| `websiteUrl` | 🔗 Personal or company website. |
| `email` | ✉️ Public email — when available and the `user:email` scope is granted. |
| `twitter` | 🐦 X / Twitter handle. |
| `followersCount` | 👥 How many followers they have (influence signal). |
| `followingCount` | How many accounts they follow. |
| `hireable` | ✅ Whether they flagged themselves open to work. |
| `avatarUrl` | 🖼️ Avatar image. |
| `profileUrl` | 🔗 Link to their GitHub profile. |
| `type` | `User` or `Organization`. |
| `repo` | ⭐ The repository they engaged with. |
| `engagements` | 🏷️ How they engaged — `forker`, `watcher`, `contributor`, or a combination. |

#### 🧑‍💻 Sample row

```json
{
  "username": "shadowspawn",
  "name": "John Gee",
  "company": "@ExampleCorp",
  "location": "Auckland, New Zealand",
  "websiteUrl": "https://johngee.dev",
  "twitter": "shadowspawn",
  "followersCount": 210,
  "profileUrl": "https://github.com/shadowspawn",
  "type": "User",
  "repo": "tj/commander.js",
  "engagements": "contributor,watcher"
}
```

***

### 💡 Use cases in detail

**🍴 Reach developers building on your category**
Export the forkers of a competing library. A fork means "I'm building with this" — the strongest possible signal of purchase intent for a developer tool.

**🧲 Technology-specific recruiting**
The audience of a framework or library is full of engineers who use that technology. Filter by `company` and `location` to source candidates with exactly the right skills.

**🚀 Re-engage your own community**
Scrape your repo's forkers, watchers and contributors to understand and reach the developers already invested in your project.

**📊 Category & competitor mapping**
Combine several repos in a space, dedupe, and analyze the whole engaged developer community by company and geography.

***

### 🧠 Tips for best results

- 🍴 **Forkers are the strongest leads** — run forkers-only for the highest-intent list.
- 🏷️ **Watch the `engagements` field** — developers tagged with several engagements are your most invested audience.
- 🔢 **Use a per-repo cap** when comparing several big repos so results stay balanced.
- ⚡ **Turn off enrichment** for a quick username-only list, then enrich the ones you care about.
- 🧹 **Deduplication is automatic** within each repo.

***

### 🔌 Export & integrations

⬇️ **Excel · CSV · JSON · XML** · 📊 **Google Sheets & Airtable** · 🔔 **Webhooks & API** · 🤖 **Make, Zapier, n8n**

***

### ❓ FAQ

**Do I need a token?** — No. Forkers and contributors work with no token. A free token (no special scopes) additionally unlocks the watchers audience and speeds up very large jobs.

**Is my token safe?** — Yes. It's stored securely as a secret input and used only for your own runs.

**What's the difference between the engagement types?** — Forkers copied the repo to build with it, watchers subscribed to its activity, and contributors committed code to it. A developer can be more than one.

**Are emails included?** — Public emails are collected when you grant the optional `user:email` scope on your token and the developer has made their email public.

**How many developers can I get per repo?** — Up to a high practical limit per repository. Use the caps to control size and speed.

**Will I get duplicates?** — No. Developers are deduplicated within each repo, and multiple engagements are merged into one row.

**Can I schedule it?** — Yes. Use Apify Schedules to refresh your lists daily, weekly or monthly.

***

### ⚖️ Legal & responsible use

This Actor collects only publicly available profile information for legitimate research, recruiting and lead generation. You are responsible for how you use the data, including compliance with applicable laws (such as GDPR and CCPA), platform terms, and anti-spam rules when contacting anyone. Do not use the data for unsolicited bulk messaging or any unlawful purpose, and always respect the privacy and preferences of the people in your results.

# Actor input Schema

## `repos` (type: `array`):

The repositories whose audience you want. Enter as owner/repo (e.g. "facebook/react") or paste a repo URL (e.g. https://github.com/vercel/next.js). Add as many as you like.

## `audienceTypes` (type: `array`):

Which engaged developers to collect. Forkers copied the repo (highest intent), watchers follow its activity, and contributors have committed to it. Forkers and contributors work without a token; watchers need a GitHub token.

## `githubToken` (type: `string`):

Optional. Forkers and contributors work without a token. Add a free personal access token to also collect watchers and to run large jobs faster (GitHub → Settings → Developer settings → Personal access tokens; no special scopes needed). Tip: tick the user:email scope to also collect public emails.

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

Stop after collecting this many developers in total across all repositories. Set 0 for no limit.

## `maxPerRepo` (type: `integer`):

Optional cap per repository — handy when scraping several repos at once. Set 0 for no per-repo cap.

## `enrichProfiles` (type: `boolean`):

Collect full details for every developer — name, bio, company, location, website, X/Twitter and follower count. Turn off for a faster username-only list.

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

Optional. This Actor talks to GitHub with your token, so a proxy is usually not needed.

## Actor input object example

```json
{
  "repos": [
    "facebook/react",
    "vercel/next.js",
    "https://github.com/sveltejs/svelte"
  ],
  "audienceTypes": [
    "forkers",
    "watchers",
    "contributors"
  ],
  "maxItems": 100,
  "maxPerRepo": 0,
  "enrichProfiles": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open to view, filter and export all collected developers (JSON, CSV, Excel).

# 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 = {
    "repos": [
        "facebook/react"
    ],
    "audienceTypes": [
        "forkers",
        "watchers",
        "contributors"
    ],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/github-repo-audience-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 = {
    "repos": ["facebook/react"],
    "audienceTypes": [
        "forkers",
        "watchers",
        "contributors",
    ],
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/github-repo-audience-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 '{
  "repos": [
    "facebook/react"
  ],
  "audienceTypes": [
    "forkers",
    "watchers",
    "contributors"
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call haketa/github-repo-audience-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "GitHub Repo Audience Scraper — Forkers, Watchers, Contributors",
        "description": "Export the developers engaged with any GitHub repository — the people who forked, watch, or contributed to it — enriched with name, company, location, website and X/Twitter. Build high-intent developer lead lists. No token needed for forkers and contributors.",
        "version": "0.1",
        "x-build-id": "qRP7JUBnCPQrE4x81"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/haketa~github-repo-audience-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-haketa-github-repo-audience-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/haketa~github-repo-audience-scraper/runs": {
            "post": {
                "operationId": "runs-sync-haketa-github-repo-audience-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/haketa~github-repo-audience-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-haketa-github-repo-audience-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",
                "properties": {
                    "repos": {
                        "title": "GitHub repositories",
                        "type": "array",
                        "description": "The repositories whose audience you want. Enter as owner/repo (e.g. \"facebook/react\") or paste a repo URL (e.g. https://github.com/vercel/next.js). Add as many as you like.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "audienceTypes": {
                        "title": "Audience types",
                        "type": "array",
                        "description": "Which engaged developers to collect. Forkers copied the repo (highest intent), watchers follow its activity, and contributors have committed to it. Forkers and contributors work without a token; watchers need a GitHub token.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "forkers",
                                "watchers",
                                "contributors"
                            ],
                            "enumTitles": [
                                "Forkers — developers who forked the repo",
                                "Watchers — developers watching the repo",
                                "Contributors — developers who contributed"
                            ]
                        },
                        "default": [
                            "forkers",
                            "watchers",
                            "contributors"
                        ]
                    },
                    "githubToken": {
                        "title": "GitHub token (optional)",
                        "type": "string",
                        "description": "Optional. Forkers and contributors work without a token. Add a free personal access token to also collect watchers and to run large jobs faster (GitHub → Settings → Developer settings → Personal access tokens; no special scopes needed). Tip: tick the user:email scope to also collect public emails."
                    },
                    "maxItems": {
                        "title": "Max developers (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after collecting this many developers in total across all repositories. Set 0 for no limit.",
                        "default": 100
                    },
                    "maxPerRepo": {
                        "title": "Max developers per repository",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional cap per repository — handy when scraping several repos at once. Set 0 for no per-repo cap.",
                        "default": 0
                    },
                    "enrichProfiles": {
                        "title": "Enrich developer profiles",
                        "type": "boolean",
                        "description": "Collect full details for every developer — name, bio, company, location, website, X/Twitter and follower count. Turn off for a faster username-only list.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. This Actor talks to GitHub with your token, so a proxy is usually not needed.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
