# Snapshot DAO Governance Scraper (`crawlerbros/snapshot-dao-governance-scraper`) Actor

Scrape Snapshot.org DAO governance data - proposals (by space, state, or ID), spaces (DAO profiles), and votes (by proposal or voter address). Public GraphQL API, no login required.

- **URL**: https://apify.com/crawlerbros/snapshot-dao-governance-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Integrations, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Snapshot DAO Governance Scraper

Scrape [Snapshot.org](https://snapshot.box) DAO governance data — proposals, spaces (DAOs), and votes — for any of the tens of thousands of DAOs that use Snapshot for off-chain voting (ENS, Aave, Uniswap, Arbitrum, Optimism, and thousands more). HTTP-only via the public `hub.snapshot.org/graphql` API. No login, no API key, no cookies.

### What this actor does

- **6 modes:** `proposals`, `proposalByIds`, `spaces`, `spaceByIds`, `votes`, `votesByVoter`
- **Proposal search:** by space/DAO, voting state (pending/active/closed), title text, network, author address, voting type, min vote count
- **Space discovery:** search DAOs by name, filter to verified spaces, sort by creation date (see FAQ on sort reliability)
- **Vote-level data:** every vote on a proposal, or every vote cast by a specific wallet address
- **Empty fields are omitted**

### Output per record

Fields vary by `recordType`:

- **proposal** — `proposalId`, `title`, `body`, `spaceId`, `spaceName`, `state`, `type`, `choices[]`, `scores[]`, `scoresTotal`, `votesCount`, `author`, `network`, `symbol`, `quorum`, `startDate`, `endDate`, `createdDate`, `updatedDate`, `snapshotBlock`, `proposalUrl`
- **space** — `spaceId`, `name`, `about`, `network`, `symbol`, `membersCount`, `adminsCount`, `followersCount`, `proposalsCount`, `votesCount`, `verified`, `turbo`, `private`, `website`, `twitter`, `github`, `coingecko`, `createdDate`, `avatarUrl`, `spaceUrl`
- **vote** — `voteId`, `voter`, `proposalId`, `proposalTitle`, `spaceId`, `choice`, `votingPower`, `vpState`, `reason`, `createdDate`, `voterProfileUrl`, `voterAvatarUrl`, `proposalUrl`

Every record also carries `recordType` and `scrapedAt`.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `proposals` | One of the 6 modes above |
| `space` | string | – | DAO/space ENS name (mode=proposals, narrows votesByVoter). Omitted = all spaces |
| `state` | string | any | `pending` / `active` / `closed` (mode=proposals) |
| `titleContains` | string | – | Substring match on proposal title (mode=proposals) |
| `network` | string | – | Chain ID filter, e.g. `1`, `137`, `42161` |
| `authorAddress` | string | – | Only proposals created by this 0x wallet address (mode=proposals) |
| `proposalType` | select | any | Voting system: `single-choice` / `approval` / `quadratic` / `ranked-choice` / `weighted` / `basic` (mode=proposals) |
| `minVotes` | int | – | Minimum vote count (mode=proposals) |
| `proposalOrderBy` | string | `created` | `created` / `votes` / `scores_total_value`\* / `start` / `end` |
| `proposalIds` | array | – | Proposal IDs (mode=proposalByIds) |
| `searchText` | string | – | Space name search (mode=spaces). Omitted = browse all spaces |
| `verifiedOnly` | bool | `false` | Only Snapshot-verified spaces (mode=spaces) |
| `spaceOrderBy` | string | `created` | `followersCount`\* / `proposalsCount`\* / `votesCount`\* / `created` |
| `spaceIds` | array | – | Space IDs (mode=spaceByIds) |
| `voteProposalId` | string | – | Proposal ID to fetch votes for (mode=votes) |
| `voterAddress` | string | – | Wallet address (mode=votesByVoter) |
| `minVotingPower` | number | – | Minimum voting power filter |
| `voteOrderBy` | string | `created` | `created` / `vp` |
| `orderDirection` | string | `desc` | `desc` / `asc` |
| `maxItems` | int | `25` | Hard cap on emitted records |
| `proxyConfiguration` | object | AUTO | Optional; only used as an automatic fallback on 403/429 |

#### Example: active ENS DAO proposals

```json
{ "mode": "proposals", "space": "ens.eth", "state": "active", "maxItems": 20 }
````

#### Example: approval-vote proposals by a specific author

```json
{ "mode": "proposals", "authorAddress": "0x66a28531E6f390A8CD44aB0C57a0F1aeb7E673FF", "proposalType": "approval", "maxItems": 20 }
```

#### Example: search for DAOs

```json
{ "mode": "spaces", "searchText": "uniswap", "verifiedOnly": false, "maxItems": 20 }
```

#### Example: votes on a specific proposal

```json
{ "mode": "votes", "voteProposalId": "0xa736ce4411be14ceaab141989ac271ce1ca96aee6d3ac26bb893ec3c898385d0", "maxItems": 50 }
```

#### Example: a wallet's voting history

```json
{ "mode": "votesByVoter", "voterAddress": "0x1F3D3A7A9c548bE39539b39D7400302753E20591", "maxItems": 50 }
```

### Use cases

- **Governance dashboards** — track proposal activity and outcomes across one or many DAOs
- **DAO research** — compare voter participation, quorum, and voting-power concentration
- **Delegate/voter analytics** — audit a wallet's full cross-DAO voting history
- **Alerting** — poll `state=active` proposals to notify token holders before voting closes
- **DAO discovery** — search/filter DAOs by name, network, and verification status

### FAQ

**Do I need a Snapshot or wallet account?** No. Every endpoint used here is Snapshot's public, unauthenticated GraphQL API (`hub.snapshot.org/graphql`).

**What's a "space"?** Snapshot's term for a DAO's individual voting hub, identified by an ENS name (e.g. `ens.eth`, `aavedao.eth`).

**What do `scores[]` and `choices[]` mean?** They're parallel arrays — `scores[i]` is the total voting power behind `choices[i]`. `scoresTotal` is the sum across all choices.

**What is `choice` on a vote record?** Depends on the proposal type: a single number (single-choice), a list of numbers (ranked-choice/approval), or an object mapping choice index to weight (weighted/quadratic voting).

**What's `votingPower` (`vp`)?** The voter's token/strategy-weighted voting power at the proposal's snapshot block — not a simple 1-address-1-vote count.

**How fresh is the data?** Near-real-time — Snapshot's hub indexes proposals and votes as they're submitted on-chain/off-chain.

**Is there a rate limit?** Yes — Snapshot's public API allows 100 requests/minute without an API key. The actor backs off automatically on 429s.

**Why does `spaceOrderBy=followersCount`/`proposalsCount`/`votesCount` (marked with \*) sometimes look unsorted?** These are computed/aggregate fields on Snapshot's backend, and its own public GraphQL API does not reliably honor a server-side sort on them (confirmed by testing the raw API directly, independent of this actor) — it silently falls back to its own created-date order instead of erroring. The same applies to `proposalOrderBy=scores_total_value`. This is an upstream API limitation, not a bug in this actor: every record returned is still complete and correct, it just may not be arranged in the order you requested for these specific fields. `created`, `votes`, `start`, `end` (proposals) and `created`, `vp` (votes) all sort correctly server-side.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `space` (type: `string`):

Filter proposals to a single space, e.g. `ens.eth`, `aavedao.eth`, `uniswapgovernance.eth`. Also narrows mode=votesByVoter.

## `state` (type: `string`):

Filter by voting state.

## `titleContains` (type: `string`):

Case-insensitive substring match on the proposal title.

## `network` (type: `string`):

Filter by blockchain network ID, e.g. `1` (Ethereum), `137` (Polygon), `42161` (Arbitrum), `8453` (Base), `10` (Optimism), `56` (BNB Chain), `100` (Gnosis).

## `authorAddress` (type: `string`):

Only return proposals created by this 0x wallet address. Confirmed honored server-side by Snapshot's own API.

## `proposalType` (type: `string`):

Filter by the proposal's voting system. Confirmed honored server-side by Snapshot's own API.

## `minVotes` (type: `integer`):

Only include proposals with at least this many votes cast.

## `proposalOrderBy` (type: `string`):

Sort field for proposal results (mode=proposals). Note: `scores_total_value` is not reliably honored by Snapshot's own API (confirmed via direct testing -- it silently falls back to created-date order); `created`, `votes`, `start`, and `end` all sort correctly.

## `proposalIds` (type: `array`):

Snapshot proposal IDs (0x-prefixed hashes).

## `searchText` (type: `string`):

Full-text search against space name/ENS domain.

## `verifiedOnly` (type: `boolean`):

Only emit spaces Snapshot has marked as verified.

## `spaceOrderBy` (type: `string`):

Sort field for space results (mode=spaces). Note: `followersCount`/`proposalsCount`/`votesCount` are NOT reliably honored by Snapshot's own API (confirmed via direct testing -- it silently falls back to created-date order for these three); only `created` reliably sorts server-side. Results are still complete/correct either way, just not necessarily in the requested order for the three unreliable fields.

## `spaceIds` (type: `array`):

Snapshot space IDs (ENS names), e.g. `ens.eth`.

## `voteProposalId` (type: `string`):

Fetch every vote cast on this proposal.

## `voterAddress` (type: `string`):

0x wallet address. Returns this voter's cast votes, optionally narrowed with `space`.

## `minVotingPower` (type: `number`):

Only include votes with at least this much voting power.

## `voteOrderBy` (type: `string`):

Sort field for vote results (modes=votes/votesByVoter).

## `orderDirection` (type: `string`):

Sort direction applied to the chosen order-by field.

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

Hard cap on emitted records.

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

Optional. Snapshot's public GraphQL API is not blocked from Apify's datacenter IPs; this is only used as an automatic fallback if it starts returning 403/429 responses.

## Actor input object example

```json
{
  "mode": "proposals",
  "space": "ens.eth",
  "state": "",
  "proposalType": "",
  "proposalOrderBy": "created",
  "proposalIds": [],
  "searchText": "uniswap",
  "verifiedOnly": false,
  "spaceOrderBy": "created",
  "spaceIds": [],
  "voteOrderBy": "created",
  "orderDirection": "desc",
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `snapshotRecords` (type: `string`):

Dataset containing all scraped Snapshot records.

# 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 = {
    "mode": "proposals",
    "space": "ens.eth",
    "state": "",
    "proposalType": "",
    "proposalOrderBy": "created",
    "proposalIds": [],
    "searchText": "uniswap",
    "verifiedOnly": false,
    "spaceOrderBy": "created",
    "spaceIds": [],
    "voteOrderBy": "created",
    "orderDirection": "desc",
    "maxItems": 25,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/snapshot-dao-governance-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 = {
    "mode": "proposals",
    "space": "ens.eth",
    "state": "",
    "proposalType": "",
    "proposalOrderBy": "created",
    "proposalIds": [],
    "searchText": "uniswap",
    "verifiedOnly": False,
    "spaceOrderBy": "created",
    "spaceIds": [],
    "voteOrderBy": "created",
    "orderDirection": "desc",
    "maxItems": 25,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/snapshot-dao-governance-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 '{
  "mode": "proposals",
  "space": "ens.eth",
  "state": "",
  "proposalType": "",
  "proposalOrderBy": "created",
  "proposalIds": [],
  "searchText": "uniswap",
  "verifiedOnly": false,
  "spaceOrderBy": "created",
  "spaceIds": [],
  "voteOrderBy": "created",
  "orderDirection": "desc",
  "maxItems": 25,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlerbros/snapshot-dao-governance-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Snapshot DAO Governance Scraper",
        "description": "Scrape Snapshot.org DAO governance data - proposals (by space, state, or ID), spaces (DAO profiles), and votes (by proposal or voter address). Public GraphQL API, no login required.",
        "version": "1.0",
        "x-build-id": "AY9NN7cOCFIP1LsYa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~snapshot-dao-governance-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-snapshot-dao-governance-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/crawlerbros~snapshot-dao-governance-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-snapshot-dao-governance-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/crawlerbros~snapshot-dao-governance-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-snapshot-dao-governance-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "proposals",
                            "proposalByIds",
                            "spaces",
                            "spaceByIds",
                            "votes",
                            "votesByVoter"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "proposals"
                    },
                    "space": {
                        "title": "Space / DAO (ENS name)",
                        "type": "string",
                        "description": "Filter proposals to a single space, e.g. `ens.eth`, `aavedao.eth`, `uniswapgovernance.eth`. Also narrows mode=votesByVoter."
                    },
                    "state": {
                        "title": "Proposal state (mode=proposals)",
                        "enum": [
                            "",
                            "pending",
                            "active",
                            "closed"
                        ],
                        "type": "string",
                        "description": "Filter by voting state.",
                        "default": ""
                    },
                    "titleContains": {
                        "title": "Title contains (mode=proposals)",
                        "type": "string",
                        "description": "Case-insensitive substring match on the proposal title."
                    },
                    "network": {
                        "title": "Network / chain ID",
                        "type": "string",
                        "description": "Filter by blockchain network ID, e.g. `1` (Ethereum), `137` (Polygon), `42161` (Arbitrum), `8453` (Base), `10` (Optimism), `56` (BNB Chain), `100` (Gnosis)."
                    },
                    "authorAddress": {
                        "title": "Author address (mode=proposals)",
                        "type": "string",
                        "description": "Only return proposals created by this 0x wallet address. Confirmed honored server-side by Snapshot's own API."
                    },
                    "proposalType": {
                        "title": "Proposal voting type (mode=proposals)",
                        "enum": [
                            "",
                            "single-choice",
                            "approval",
                            "quadratic",
                            "ranked-choice",
                            "weighted",
                            "basic"
                        ],
                        "type": "string",
                        "description": "Filter by the proposal's voting system. Confirmed honored server-side by Snapshot's own API.",
                        "default": ""
                    },
                    "minVotes": {
                        "title": "Min vote count (mode=proposals)",
                        "minimum": 0,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Only include proposals with at least this many votes cast."
                    },
                    "proposalOrderBy": {
                        "title": "Order proposals by",
                        "enum": [
                            "created",
                            "votes",
                            "scores_total_value",
                            "start",
                            "end"
                        ],
                        "type": "string",
                        "description": "Sort field for proposal results (mode=proposals). Note: `scores_total_value` is not reliably honored by Snapshot's own API (confirmed via direct testing -- it silently falls back to created-date order); `created`, `votes`, `start`, and `end` all sort correctly.",
                        "default": "created"
                    },
                    "proposalIds": {
                        "title": "Proposal IDs (mode=proposalByIds)",
                        "type": "array",
                        "description": "Snapshot proposal IDs (0x-prefixed hashes).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchText": {
                        "title": "Search text (mode=spaces)",
                        "type": "string",
                        "description": "Full-text search against space name/ENS domain."
                    },
                    "verifiedOnly": {
                        "title": "Verified spaces only (mode=spaces)",
                        "type": "boolean",
                        "description": "Only emit spaces Snapshot has marked as verified.",
                        "default": false
                    },
                    "spaceOrderBy": {
                        "title": "Order spaces by",
                        "enum": [
                            "followersCount",
                            "proposalsCount",
                            "votesCount",
                            "created"
                        ],
                        "type": "string",
                        "description": "Sort field for space results (mode=spaces). Note: `followersCount`/`proposalsCount`/`votesCount` are NOT reliably honored by Snapshot's own API (confirmed via direct testing -- it silently falls back to created-date order for these three); only `created` reliably sorts server-side. Results are still complete/correct either way, just not necessarily in the requested order for the three unreliable fields.",
                        "default": "created"
                    },
                    "spaceIds": {
                        "title": "Space IDs (mode=spaceByIds)",
                        "type": "array",
                        "description": "Snapshot space IDs (ENS names), e.g. `ens.eth`.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "voteProposalId": {
                        "title": "Proposal ID (mode=votes)",
                        "type": "string",
                        "description": "Fetch every vote cast on this proposal."
                    },
                    "voterAddress": {
                        "title": "Voter address (mode=votesByVoter)",
                        "type": "string",
                        "description": "0x wallet address. Returns this voter's cast votes, optionally narrowed with `space`."
                    },
                    "minVotingPower": {
                        "title": "Min voting power (modes=votes/votesByVoter)",
                        "minimum": 0,
                        "maximum": 1000000000000,
                        "type": "number",
                        "description": "Only include votes with at least this much voting power."
                    },
                    "voteOrderBy": {
                        "title": "Order votes by",
                        "enum": [
                            "created",
                            "vp"
                        ],
                        "type": "string",
                        "description": "Sort field for vote results (modes=votes/votesByVoter).",
                        "default": "created"
                    },
                    "orderDirection": {
                        "title": "Order direction",
                        "enum": [
                            "desc",
                            "asc"
                        ],
                        "type": "string",
                        "description": "Sort direction applied to the chosen order-by field.",
                        "default": "desc"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted records.",
                        "default": 25
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Optional. Snapshot's public GraphQL API is not blocked from Apify's datacenter IPs; this is only used as an automatic fallback if it starts returning 403/429 responses.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
