# Skool All-in-One API (`cristiantala/skool-all-in-one-api`) Actor

The most complete Skool API on Apify. Read AND write posts, comments, members and more. Automatic authentication with cookie caching. Perfect for AI agents and community automation.

- **URL**: https://apify.com/cristiantala/skool-all-in-one-api.md
- **Developed by:** [Cristian Tala S.](https://apify.com/cristiantala) (community)
- **Categories:** Social media, Automation, Lead generation
- **Stats:** 7 total users, 4 monthly users, 51.4% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## Skool All-in-One API

The most complete Skool automation on Apify. Full **read AND write** access to posts, comments, members, and more. The only Skool actor with write capabilities.

### What makes this different

- **Read AND Write** — Create posts, reply to comments, approve members. Not just scraping.
- **Fast cookie-based auth** — Login once (~10s), then reuse cookies for all calls (~2s each).
- **Nested comments** — Full comment trees with replies, not flat lists.
- **User mentions** — Tag users with `[@Name](obj://user/{id})`.
- **AI-agent friendly** — Clean `action:operation` format, perfect for n8n, OpenClaw, Claude, and other agents.

### How much does it cost?

| Scenario | Estimated cost |
|----------|---------------|
| Login (once every ~3.5 days) | ~$0.02 (Playwright) |
| List 1 page of posts (~32 posts) | ~$0.005 |
| Get comments on a post | ~$0.005 |
| Create a post | ~$0.01 (write fee) + ~$0.005 |
| Reply to a comment | ~$0.01 (write fee) + ~$0.005 |
| Approve 10 pending members | ~$0.10 (write fees) + ~$0.005 |

Platform compute costs (~$0.002/run) included. Write operations have premium pricing.

### Recommended Flow (Fast)

#### Step 1: Login once — get cookies

```json
{
  "action": "auth:login",
  "email": "your@email.com",
  "password": "your-password",
  "groupSlug": "your-community"
}
````

**Output:**

```json
{
  "success": true,
  "cookies": "auth_token=eyJ...; client_id=abc...; aws-waf-token=xyz...",
  "expiresAt": "2026-03-30T06:00:00.000Z",
  "expiresInDays": 3.5,
  "note": "Pass this cookies string in subsequent calls to skip Playwright login."
}
```

#### Step 2: Use cookies for all operations (fast, ~2s each)

```json
{
  "action": "posts:list",
  "cookies": "auth_token=eyJ...; client_id=abc...; aws-waf-token=xyz...",
  "groupSlug": "your-community",
  "params": { "page": 1 }
}
```

#### Step 3: When cookies expire (~3.5 days) → login again

If you get an error about expired auth, simply run `auth:login` again.

#### Alternative: email + password every time (slower)

You can skip Step 1 and pass email + password directly in any action. This uses Playwright every time (~10s instead of ~2s), but it's simpler for one-off operations.

```json
{
  "action": "posts:list",
  "email": "your@email.com",
  "password": "your-password",
  "groupSlug": "your-community",
  "params": { "page": 1 }
}
```

### Input Reference

| Field | Required | Description |
|-------|----------|-------------|
| `action` | Always | What to do: `auth:login`, `posts:list`, `posts:createComment`, etc. |
| `groupSlug` | Always | Community slug from URL: `skool.com/{slug}` |
| `cookies` | Option A | Cookie string from `auth:login`. Fast, no browser. |
| `email` | Option B | Skool email. Uses Playwright, slower. Required for `auth:login`. |
| `password` | Option B | Skool password. Required for `auth:login`. |
| `params` | Varies | Action-specific parameters (see below). |

### Actions Reference

#### Authentication

| Action | Auth | Description |
|--------|------|-------------|
| `auth:login` | email + password | Login via Playwright, returns cookies for reuse. Run once every ~3.5 days. |

#### Posts (read)

| Action | Params | Description |
|--------|--------|-------------|
| `posts:list` | `page?` (default 1), `sortType?` | List posts from community feed |
| `posts:get` | `postId` | Get single post by ID |
| `posts:getComments` | `postId` | Get comment tree with nested replies |

#### Posts (write — $0.01 per operation)

| Action | Params | Description |
|--------|--------|-------------|
| `posts:create` | `title`, `content`, `labelId?` | Create new post |
| `posts:update` | `postId`, `title?`, `content?` | Edit post or comment |
| `posts:delete` | `postId` | Delete post or comment |
| `posts:pin` | `postId` | Pin post to top |
| `posts:unpin` | `postId` | Unpin post |
| `posts:vote` | `postId`, `vote` (`"up"` or `""`) | Like or unlike |
| `posts:createComment` | `content`, `rootId`, `parentId` | Reply to post or comment |

#### Members (read)

| Action | Params | Description |
|--------|--------|-------------|
| `members:list` | `page?` | List active members |
| `members:pending` | — | List pending approval requests |

#### Members (write — $0.01 per operation)

| Action | Params | Description |
|--------|--------|-------------|
| `members:approve` | `memberId` | Approve pending member |
| `members:reject` | `memberId` | Reject pending member |
| `members:ban` | `memberId` | Ban member |

### Content Format

Posts and comments use **plain text**, NOT HTML.

```
CORRECT: "Hello world! Great post."
WRONG:   "<p>Hello world! Great post.</p>"
```

#### Mentioning Users

Tag users in posts and comments:

```
[@Display Name](obj://user/{userId})
```

Example: `Hey [@John Smith](obj://user/abc123def456...)! Welcome.`

Get user IDs from `members:list`.

### Important: Posts = Comments

In Skool, posts and comments are the **same object**.

- **Reply to a post:** `rootId = postId`, `parentId = postId`
- **Reply to a comment (nested):** `rootId = postId`, `parentId = commentId`
- **Edit a comment:** use `posts:update` with the comment's ID
- **Delete a comment:** use `posts:delete` with the comment's ID

There is no `comments:` namespace. Everything is `posts:`.

### Example Workflows

#### Auto-approve pending members

```
1. auth:login → save cookies
2. members:pending → get list of pending members
3. For each: members:approve with memberId
```

#### Reply to unanswered posts

```
1. auth:login → save cookies
2. posts:list → filter by commentCount === 0
3. For each: posts:createComment with rootId = postId, parentId = postId
```

#### Create post with user mention

```json
{
  "action": "posts:create",
  "cookies": "...",
  "groupSlug": "my-community",
  "params": {
    "title": "Weekly Update",
    "content": "Great work this week [@John Smith](obj://user/abc123...)! Keep it up.",
    "labelId": "category-id"
  }
}
```

#### Get full comment thread for a post

```json
{
  "action": "posts:getComments",
  "cookies": "...",
  "groupSlug": "my-community",
  "params": { "postId": "32-char-hex-post-id" }
}
```

Returns nested tree:

```json
[
  {
    "id": "comment-1",
    "content": "Great post!",
    "replies": [
      { "id": "reply-1", "content": "Thanks!", "replies": [] }
    ]
  }
]
```

### Output

#### Post object

```json
{
  "id": "32-char-hex",
  "title": "Post Title",
  "content": "Plain text content",
  "author": { "id": "...", "firstName": "John", "lastName": "Smith", "slug": "john-smith" },
  "createdAt": "2026-03-26T18:00:00Z",
  "likes": 5,
  "commentCount": 12,
  "isPinned": false,
  "url": "https://www.skool.com/community/post-slug"
}
```

#### auth:login output

```json
{
  "success": true,
  "cookies": "auth_token=...; client_id=...; aws-waf-token=...",
  "expiresAt": "2026-03-30T06:00:00Z",
  "expiresInDays": 3.5
}
```

### Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| "Auth required" | No cookies or email/password | Provide cookies or credentials |
| "Invalid cookies" | Malformed cookie string | Run `auth:login` to get fresh cookies |
| 403 / WAF expired | Cookies expired (~3.5 days) | Run `auth:login` again |
| 422 "must select category" | Community requires labelId | Pass `labelId` in params |
| 429 Too Many Requests | Rate limit (~20-30 writes/min) | Wait and retry |

### Integration Examples

#### n8n Workflow

1. **HTTP Request node** → `auth:login` → save cookies to variable
2. **HTTP Request node** → `posts:list` with cookies → process posts
3. **IF node** → filter unanswered posts
4. **HTTP Request node** → `posts:createComment` with cookies

#### Apify API (JavaScript)

```javascript
// Login once
const loginRun = await fetch('https://api.apify.com/v2/acts/cristiantala~skool-all-in-one-api/runs?token=YOUR_TOKEN', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ action: 'auth:login', email: '...', password: '...', groupSlug: '...' })
}).then(r => r.json());

// Get cookies from dataset
const items = await fetch(`https://api.apify.com/v2/actor-runs/${loginRun.data.id}/dataset/items?token=YOUR_TOKEN`).then(r => r.json());
const cookies = items[0].cookies;

// Use cookies for fast operations
const listRun = await fetch('https://api.apify.com/v2/acts/cristiantala~skool-all-in-one-api/runs?token=YOUR_TOKEN', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ action: 'posts:list', cookies, groupSlug: '...', params: { page: 1 } })
}).then(r => r.json());
```

### Roadmap

- \[x] Posts CRUD (create, read, update, delete)
- \[x] Comments with nesting (reply to posts and comments)
- \[x] Members (list, pending, approve, reject, ban)
- \[x] User mentions
- \[x] Cookie-based fast auth
- \[ ] Courses (classroom) — read and create lessons
- \[ ] Events — list, create, RSVP
- \[ ] Analytics — engagement, revenue, member growth
- \[ ] Chat / DMs
- \[ ] Search
- \[ ] File uploads
- \[ ] "Send email to all members" toggle

### Technical Details

- Built on `skool-js` TypeScript library
- Reads use Next.js SSR data endpoints (fast, no browser)
- Writes use `api2.skool.com` REST endpoints
- Playwright only for `auth:login` (cookie extraction)
- Rate limiter: 60 reads/min, 30 writes/min
- Auto-retry on transient errors with exponential backoff

# Actor input Schema

## `action` (type: `string`):

What to do.

auth:login → Login with email+password, returns cookies for reuse (~10s, Playwright)
All other actions → Use cookies (fast, ~2s) or email+password (slow, ~10s)

Recommended flow:

1. Run auth:login once → save cookies from output
2. Pass cookies in all subsequent runs (fast, no browser)
3. When you get 403 error → run auth:login again (~every 3.5 days)

## `email` (type: `string`):

Required for auth:login. Optional for other actions if you provide cookies instead.

## `password` (type: `string`):

Required for auth:login. Optional for other actions if you provide cookies instead.

## `cookies` (type: `string`):

Cookie string from a previous auth:login call. Using cookies skips Playwright login entirely (~2s vs ~10s). Format: auth\_token=xxx; client\_id=yyy; aws-waf-token=zzz

## `groupSlug` (type: `string`):

The community slug from the URL: skool.com/{slug}

## `params` (type: `object`):

Parameters for the selected action.

Common params:
• page (number) — page number for list actions
• postId (string) — 32-char hex post ID
• memberId (string) — 32-char hex member ID
• title (string) — post title (plain text)
• content (string) — post/comment body (plain text, NOT HTML)
• labelId (string) — category ID (required in some communities)
• rootId (string) — for comments: always the original post ID
• parentId (string) — for comments: post ID (top-level) or comment ID (nested reply)
• vote (string) — 'up' to like, '' to unlike

Mentions: [@Name](obj://user/{userId})

## Actor input object example

```json
{
  "action": "posts:list",
  "groupSlug": "my-community",
  "params": {
    "page": 1
  }
}
```

# Actor output Schema

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

The main output dataset containing posts, comments, or members depending on the action used

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("cristiantala/skool-all-in-one-api").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("cristiantala/skool-all-in-one-api").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 '{}' |
apify call cristiantala/skool-all-in-one-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=cristiantala/skool-all-in-one-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Skool All-in-One API",
        "description": "The most complete Skool API on Apify. Read AND write posts, comments, members and more. Automatic authentication with cookie caching. Perfect for AI agents and community automation.",
        "version": "0.1",
        "x-build-id": "BkYHrY002YccfAxrt"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/cristiantala~skool-all-in-one-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-cristiantala-skool-all-in-one-api",
                "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/cristiantala~skool-all-in-one-api/runs": {
            "post": {
                "operationId": "runs-sync-cristiantala-skool-all-in-one-api",
                "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/cristiantala~skool-all-in-one-api/run-sync": {
            "post": {
                "operationId": "run-sync-cristiantala-skool-all-in-one-api",
                "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": [
                    "action",
                    "groupSlug"
                ],
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "auth:login",
                            "posts:list",
                            "posts:filter",
                            "posts:get",
                            "posts:create",
                            "posts:update",
                            "posts:delete",
                            "posts:pin",
                            "posts:unpin",
                            "posts:vote",
                            "posts:getComments",
                            "posts:createComment",
                            "members:list",
                            "members:pending",
                            "members:approve",
                            "members:reject",
                            "members:ban",
                            "members:batchApprove",
                            "events:list",
                            "events:upcoming"
                        ],
                        "type": "string",
                        "description": "What to do.\n\nauth:login → Login with email+password, returns cookies for reuse (~10s, Playwright)\nAll other actions → Use cookies (fast, ~2s) or email+password (slow, ~10s)\n\nRecommended flow:\n1. Run auth:login once → save cookies from output\n2. Pass cookies in all subsequent runs (fast, no browser)\n3. When you get 403 error → run auth:login again (~every 3.5 days)"
                    },
                    "email": {
                        "title": "Skool Email",
                        "type": "string",
                        "description": "Required for auth:login. Optional for other actions if you provide cookies instead."
                    },
                    "password": {
                        "title": "Skool Password",
                        "type": "string",
                        "description": "Required for auth:login. Optional for other actions if you provide cookies instead."
                    },
                    "cookies": {
                        "title": "Cookies (from auth:login)",
                        "type": "string",
                        "description": "Cookie string from a previous auth:login call. Using cookies skips Playwright login entirely (~2s vs ~10s). Format: auth_token=xxx; client_id=yyy; aws-waf-token=zzz"
                    },
                    "groupSlug": {
                        "title": "Community Slug",
                        "type": "string",
                        "description": "The community slug from the URL: skool.com/{slug}"
                    },
                    "params": {
                        "title": "Action Parameters",
                        "type": "object",
                        "description": "Parameters for the selected action.\n\nCommon params:\n• page (number) — page number for list actions\n• postId (string) — 32-char hex post ID\n• memberId (string) — 32-char hex member ID\n• title (string) — post title (plain text)\n• content (string) — post/comment body (plain text, NOT HTML)\n• labelId (string) — category ID (required in some communities)\n• rootId (string) — for comments: always the original post ID\n• parentId (string) — for comments: post ID (top-level) or comment ID (nested reply)\n• vote (string) — 'up' to like, '' to unlike\n\nMentions: [@Name](obj://user/{userId})"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
