# Substack Newsletter Intelligence: Top Writer Tracker (`scrapemint/substack-newsletter-intelligence`) Actor

Track Substack publications by subscriber count, paid vs free posting cadence, comments, and writer profile. Built for ad networks, creator economy VCs, agencies, and writers reverse engineering top performers. Pay per publication.

- **URL**: https://apify.com/scrapemint/substack-newsletter-intelligence.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Business, Marketing, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN 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

## Substack Newsletter Intelligence: Top Writer Tracker

Track Substack publications at scale. Each row carries the publication identity, writer name, tagline, description, cover image, subscriber count parsed from the public about page, paid tier flag, external links (Twitter / X, LinkedIn, GitHub, YouTube), and optional recent posts with comment counts and free vs paid mix. Pay per publication row. No auth required.

**Built for** ad networks pitching sponsored newsletters, creator economy VCs scouting paid writers before they break out, agencies building newsletter benchmarks for clients, content marketers studying competitive editorial calendars, talent reps sourcing writers, and aspiring writers reverse engineering top performers' posting cadence and paid post ratio.

**Keywords this actor ranks for:** substack api, substack scraper, substack newsletter tracker, substack subscriber count, newsletter intelligence, creator economy data, substack writer profile, paid newsletter tracker, substack discovery, sponsored newsletter prospecting, newsletter sponsorship sales, creator economy investment, substack analytics.

---

### Why this actor

| Other newsletter tools | **This actor** |
|---|---|
| Sparkloop, Beehiiv recommend network: $99 to $499 per month per seat | Pay per row scraped. No seat license. |
| Manual subdomain by subdomain browsing | Structured JSON one row per publication. |
| English / US only | Works on any Substack publication globally. |
| Top level data only | Optional recent posts with audience flag (everyone vs paid) and comment count. |
| Drop writer external links | Pull writer's X, LinkedIn, YouTube, GitHub for outreach. |
| Free vs paid posting cadence hidden | `paidPostFraction` and `postsPerWeek` derived from the archive API. |
| Last post date unknown | `lastPostAt` parsed from the most recent post. |

---

### How it works

```mermaid
flowchart LR
    A[Subdomains<br/>Publication URLs<br/>Search queries] --> B[Seed router]
    B --> C[About page<br/>{sub}.substack.com/about]
    B --> D[Search page<br/>substack.com/search/{term}]
    D --> E[Harvest publication cards<br/>via rendered DOM]
    E --> C
    C --> F[Parse HTML<br/>meta tags + body text]
    F --> G[Subscriber count<br/>writer name + paid flag<br/>external links]
    F --> H{fetchRecentPosts?}
    H -->|yes| I[/api/v1/archive<br/>public JSON]
    I --> J[Recent posts<br/>audience + comments<br/>paid mix + cadence]
    G --> K[(Publication row)]
    J --> K
````

About pages are server rendered and include the subscriber count in plain text ("446,000 subscribers"). The archive API is public, returns one row per post with title, audience (everyone vs paid), comment\_count, and post\_date. We derive `paidPostFraction`, `postsPerWeek`, and `lastPostAt` from the post window.

***

### What you get per row

```mermaid
flowchart LR
    R[Publication row] --> R1[Identity<br/>subdomain url aboutUrl]
    R --> R2[Pitch<br/>name writerName tagline coverImage]
    R --> R3[Tier<br/>hasPaidTier description]
    R --> R4[Audience size<br/>subscriberCount subscriberCountText]
    R --> R5[Cadence<br/>recentPostCount postsPerWeek lastPostAt]
    R --> R6[Monetization signal<br/>paidPostFraction]
    R --> R7[Outreach<br/>externalLinks]
    R --> R8[Recent posts<br/>title audience commentCount url]
```

`paidPostFraction` is the share of recent posts gated for paid subscribers. Combined with `subscriberCount`, it's a usable proxy for monthly recurring revenue tier (writers with a high paid fraction + high subscriber count are the buyers ad networks chase).

***

### Quick start

**Daily snapshot of named top writers**

```json
{
  "subdomains": ["noahpinion", "platformer", "stratechery", "garbageday", "lennysnewsletter"],
  "fetchRecentPosts": true,
  "maxRecentPosts": 12
}
```

**Discover by topic across queries**

```json
{
  "queries": ["AI safety", "product management", "creator economy"],
  "maxPublications": 100,
  "fetchRecentPosts": true
}
```

**Direct publication URLs including custom domains**

```json
{
  "publicationUrls": [
    "https://noahpinion.substack.com",
    "https://www.platformer.news",
    "https://stratechery.com"
  ],
  "fetchAuthorLinks": true
}
```

**Lightweight outreach list (no post enrichment)**

```json
{
  "queries": ["sales prospecting", "B2B SaaS"],
  "maxPublications": 50,
  "fetchRecentPosts": false,
  "fetchAuthorLinks": true
}
```

***

### Sample output

```json
{
  "subdomain": "noahpinion",
  "url": "https://noahpinion.substack.com/",
  "aboutUrl": "https://noahpinion.substack.com/about",
  "name": "Noahpinion",
  "writerName": "Noah Smith",
  "tagline": "Economics and other interesting stuff",
  "description": "Economics and other interesting stuff. Click to read Noahpinion, by Noah Smith, a Substack publication with hundreds of thousands of subscribers.",
  "coverImage": "https://substackcdn.com/image/fetch/.../subscribe-card.jpg",
  "subscriberCount": 446000,
  "subscriberCountText": "446,000 subscribers",
  "hasPaidTier": true,
  "externalLinks": [
    "https://twitter.com/Noahpinion",
    "https://www.youtube.com/@noahpinion"
  ],
  "sourceQuery": null,
  "recentPostCount": 12,
  "paidPostFraction": 0.5,
  "lastPostAt": "2026-05-13T09:40:06.112Z",
  "postsPerWeek": 4.2,
  "recentPosts": [
    {
      "id": 197453444,
      "title": "Trump actually started to decouple America from China",
      "subtitle": "And other notes on the tariff war",
      "slug": "trump-actually-started-to-decouple",
      "postDate": "2026-05-13T09:40:06.112Z",
      "audience": "everyone",
      "type": "newsletter",
      "commentCount": 312,
      "wordcount": 2840,
      "podcastDuration": null,
      "url": "https://noahpinion.substack.com/p/trump-actually-started-to-decouple"
    }
  ],
  "scrapedAt": "2026-05-15T22:00:00.000Z"
}
```

***

### Who uses this

| Role | Use case |
|---|---|
| Ad network / Sparkloop seller | Pitch sponsored newsletter slots. Filter by subscriber count and paidPostFraction. |
| Creator economy VC | Scout breakout writers. Watch postsPerWeek + subscriberCount over time. |
| Agency | Benchmark client newsletters against category leaders. |
| Content marketer | Reverse engineer top performers' editorial cadence, paid mix, and post topics. |
| Talent rep | Build outreach lists from externalLinks (writer's X, LinkedIn). |
| Newsletter founder | Compete intel on competitor cadence and tier strategy. |
| Aspiring writer | Find writers in your niche to study and learn from. |
| Recruiter | Source senior writers and journalists publishing under their own name. |

***

### Input reference

| Field | Type | What it does |
|---|---|---|
| `subdomains` | string\[] | Direct Substack subdomain slugs. Skip discovery, jump to enrichment. |
| `publicationUrls` | string\[] | Direct publication URLs (substack.com subdomain or custom domain pointing back). |
| `queries` | string\[] | Substack search terms. Renders substack.com/search/{term} via Playwright. |
| `fetchRecentPosts` | boolean | Pull recent posts from the public archive API. |
| `maxRecentPosts` | integer | Recent posts per publication. 12 is the Substack default page. |
| `fetchAuthorLinks` | boolean | Pull writer's external links (X, LinkedIn, YouTube, GitHub). |
| `maxPublications` | integer | Hard cap on rows per run. |
| `maxResultsPerQuery` | integer | Cap on publications harvested per search query. |
| `dedupe` | boolean | Skip subdomains already pushed in previous runs. |
| `navigationDelayMs` | integer | Pause between page loads. 1000 to 3000 ms is safe. |
| `concurrency` | integer | Parallel browser pages. 3 to 6 is safe on residential. |
| `proxyConfiguration` | object | Apify proxy. Datacenter is fine for Substack. |

***

### API call

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_USER~substack-newsletter-intelligence/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["AI safety", "creator economy"],
    "fetchRecentPosts": true,
    "maxPublications": 100
  }'
```

***

### Pricing

The first 3 publication rows per run are free so you can validate the schema before paying. After that, one charge per publication row regardless of how many enrichment fields you turn on. Recent posts, paid post fraction, posting cadence, and author links are included at no extra per row charge.

***

### FAQ

#### Do I need a Substack account?

No. The actor only touches the public /about page and the public archive API that any anonymous web visitor can see.

#### Why do some publications return null for subscriberCount?

Substack only displays a subscriber count once a publication crosses a threshold (commonly 1,000). Small publications display "Subscribe" without a count. The field stays null in that case.

#### Does it work for custom domains?

Yes. Many Substack publications front a custom domain (example: stratechery.com). The actor follows the custom domain to /about. If a publication switched fully off Substack, /about will 404 and the row will be skipped.

#### How fresh is the data?

Each run hits the live /about page and archive API. Subscriber counts and recent posts reflect what Substack shows at scrape time.

#### Will Substack block me?

Substack is lightly defended. Datacenter proxy works for low volume. Switch to residential past a few hundred requests in a short window. Navigation delay of 1500 ms is the default safe band.

#### How is this different from Beehiiv's recommend network?

Beehiiv's recommend network is a closed marketplace for cross promotion between newsletters on Beehiiv. This actor pulls open public data on Substack publications, which is a different platform and a different buyer profile (sponsorship sellers, VCs, agencies).

#### Can I track a writer over time?

Run the actor on an Apify schedule and store snapshots. The dataset will have one row per scrape per subdomain. Plot `subscriberCount`, `postsPerWeek`, `paidPostFraction` over time to spot inflection points.

#### What is the audience field on a post?

Substack tags every post with `audience` set to one of: `everyone` (free), `only_paid` (paid only), `founding` (founding tier only). The actor passes this through unchanged so you can compute paid mix or filter to free posts only.

#### Can I get post body content?

Not in this actor by design. Post body extraction is a different shape (one row per post, paid wall handling, image extraction). For full post bodies pair this actor with Apify's Website Content Crawler pointed at the post URLs returned here.

#### Why only 12 recent posts by default?

Twelve is the Substack archive page size. You can raise `maxRecentPosts` up to 100 for deeper history at no extra per row charge.

***

### Related actors

- **LinkedIn Creator Ranker**. Pair Substack writer data with LinkedIn creator engagement for full creator economy coverage.
- **LinkedIn Pulse Articles Scraper**. Cross check Substack writers who also publish on LinkedIn Pulse.
- **GitHub Trending Scraper**. Catch dev writers cross posting between Substack and GitHub.
- **HN Lead Monitor**. Surface Hacker News mentions of Substack publications for sponsor leads.
- **Reddit Lead Monitor**. Same applied to Reddit, useful for tracking newsletter recommendations.
- **Website Content Crawler**. Pipe `recentPosts[].url` into the crawler for full body extraction with paid wall handling.
- **Lead Enrichment Pipeline**. Pipe writer external links through the enrichment pipeline for direct outreach contact info.

# Actor input Schema

## `subdomains` (type: `array`):

Direct subdomain slugs to enrich. Example: \["noahpinion", "platformer", "stratechery"]. Skips discovery and goes straight to the publication.

## `publicationUrls` (type: `array`):

Direct Substack publication URLs. Examples: \["https://noahpinion.substack.com", "https://www.platformer.news"]. Custom domains are supported when the publication still serves /about on the same host.

## `queries` (type: `array`):

Substack search terms. Each query opens substack.com/search/{term} and harvests publication cards. Example: \["economics", "AI safety", "product management"].

## `fetchRecentPosts` (type: `boolean`):

Pull the most recent posts per publication from the public archive API. Adds recentPosts\[] with title, slug, postDate, audience (everyone vs paid), commentCount, and URL.

## `maxRecentPosts` (type: `integer`):

How many recent posts to include when fetchRecentPosts is on.

## `fetchAuthorLinks` (type: `boolean`):

Extract external links from the about page (Twitter / X, website, LinkedIn) where the writer lists them publicly.

## `maxPublications` (type: `integer`):

Hard cap on publication rows pushed per run. 0 means unlimited.

## `maxResultsPerQuery` (type: `integer`):

Cap on publications harvested per search query. Substack search renders 25 to 50 cards before lazy load.

## `dedupe` (type: `boolean`):

Skip subdomains already pushed in previous runs. Keyed on Substack subdomain. Turn off to refresh stale rows on a recurring schedule.

## `navigationDelayMs` (type: `integer`):

Pause between page loads. 1000 to 3000 ms is the safe range for Substack.

## `concurrency` (type: `integer`):

Parallel browser pages. Substack is light, 3 to 6 is safe on residential proxy.

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

Apify proxy. Substack accepts datacenter for low volume. Switch to residential past a few hundred requests in a short window.

## Actor input object example

```json
{
  "subdomains": [],
  "publicationUrls": [],
  "queries": [],
  "fetchRecentPosts": true,
  "maxRecentPosts": 12,
  "fetchAuthorLinks": true,
  "maxPublications": 50,
  "maxResultsPerQuery": 25,
  "dedupe": true,
  "navigationDelayMs": 1500,
  "concurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/substack-newsletter-intelligence").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 = { "proxyConfiguration": { "useApifyProxy": True } }

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/substack-newsletter-intelligence").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 '{
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapemint/substack-newsletter-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/substack-newsletter-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Substack Newsletter Intelligence: Top Writer Tracker",
        "description": "Track Substack publications by subscriber count, paid vs free posting cadence, comments, and writer profile. Built for ad networks, creator economy VCs, agencies, and writers reverse engineering top performers. Pay per publication.",
        "version": "0.1",
        "x-build-id": "XmwQvlxvfb7hpQ8SX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~substack-newsletter-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-substack-newsletter-intelligence",
                "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/scrapemint~substack-newsletter-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-substack-newsletter-intelligence",
                "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/scrapemint~substack-newsletter-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-substack-newsletter-intelligence",
                "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": {
                    "subdomains": {
                        "title": "Substack subdomains",
                        "type": "array",
                        "description": "Direct subdomain slugs to enrich. Example: [\"noahpinion\", \"platformer\", \"stratechery\"]. Skips discovery and goes straight to the publication.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "publicationUrls": {
                        "title": "Publication URLs",
                        "type": "array",
                        "description": "Direct Substack publication URLs. Examples: [\"https://noahpinion.substack.com\", \"https://www.platformer.news\"]. Custom domains are supported when the publication still serves /about on the same host.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Substack search terms. Each query opens substack.com/search/{term} and harvests publication cards. Example: [\"economics\", \"AI safety\", \"product management\"].",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchRecentPosts": {
                        "title": "Fetch recent posts",
                        "type": "boolean",
                        "description": "Pull the most recent posts per publication from the public archive API. Adds recentPosts[] with title, slug, postDate, audience (everyone vs paid), commentCount, and URL.",
                        "default": true
                    },
                    "maxRecentPosts": {
                        "title": "Max recent posts per publication",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "How many recent posts to include when fetchRecentPosts is on.",
                        "default": 12
                    },
                    "fetchAuthorLinks": {
                        "title": "Fetch author external links",
                        "type": "boolean",
                        "description": "Extract external links from the about page (Twitter / X, website, LinkedIn) where the writer lists them publicly.",
                        "default": true
                    },
                    "maxPublications": {
                        "title": "Total maximum publications",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Hard cap on publication rows pushed per run. 0 means unlimited.",
                        "default": 50
                    },
                    "maxResultsPerQuery": {
                        "title": "Max results per query",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Cap on publications harvested per search query. Substack search renders 25 to 50 cards before lazy load.",
                        "default": 25
                    },
                    "dedupe": {
                        "title": "Deduplicate across runs",
                        "type": "boolean",
                        "description": "Skip subdomains already pushed in previous runs. Keyed on Substack subdomain. Turn off to refresh stale rows on a recurring schedule.",
                        "default": true
                    },
                    "navigationDelayMs": {
                        "title": "Delay between navigations (ms)",
                        "minimum": 0,
                        "maximum": 60000,
                        "type": "integer",
                        "description": "Pause between page loads. 1000 to 3000 ms is the safe range for Substack.",
                        "default": 1500
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 16,
                        "type": "integer",
                        "description": "Parallel browser pages. Substack is light, 3 to 6 is safe on residential proxy.",
                        "default": 4
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy. Substack accepts datacenter for low volume. Switch to residential past a few hundred requests in a short window.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
