# DaFont Scraper (`crawlerbros/dafont-scraper`) Actor

Scrape DaFont.com - 100,000+ free fonts. Search by keyword, browse Top downloads, New releases, or 80 categories/themes (incl. Bitmap), or list an author's fonts with lifetime stats. Get license type, downloads, preview images, glyph counts, style variants.

- **URL**: https://apify.com/crawlerbros/dafont-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Agents
- **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

## DaFont Scraper

Scrape [DaFont.com](https://www.dafont.com) — a directory of 100,000+ free and freemium fonts. Search by keyword, browse Top downloads (daily or all-time), New releases, any of 80 categories/themes (Script, Gothic, Techno, Dingbats, Holiday, Bitmap, and more), or list every font from a specific author/foundry — including that author's lifetime stats. No login, no cookies, no paid proxy required.

### What this actor does

- **Five modes:** `search`, `top`, `new`, `byCategory`, `byAuthor`
- **80 categories/themes:** every main theme (Fancy, Foreign look, Techno, Gothic, Basic, Script, Dingbats, Holiday, Bitmap) plus every one of its subcategories, exposed as a dropdown — no need to know DaFont's internal category codes
- **Rich per-font detail:** license type, download counts, glyph count, all style-variant previews, illustration image, first-seen/updated dates, author info
- **Author lifetime stats (mode=byAuthor):** profile URL, avatar, total font count, lifetime/yesterday download totals, forum matching-requests count — parsed from the same author page already fetched for pagination, at no extra request cost
- **Filters:** license type (including "Unknown / unspecified"), min/max total downloads, accented-characters support, Euro-symbol support
- **Direct, hotlink-friendly preview images** — no login or referer header needed to view them
- **Empty fields are omitted** — every record only contains the data actually available for that font

### Output per font

- `fontName`, `fontSlug`, `fontUrl`, `fontId`
- `authorName`, `authorSlug`, `authorUrl`, `authorWebsite`
- `authorProfileUrl`, `authorUserId`, `authorAvatarUrl`, `authorFontsCount`, `authorDownloadsTotal`, `authorDownloadsYesterday`, `authorForumRequestsCount` — author lifetime stats (mode=byAuthor only, parsed from the author page's own header)
- `themeMain`, `themeMainUrl`, `themeSub`, `themeSubUrl` — DaFont's category taxonomy
- `licenseType` — e.g. `Free for personal use`, `100% Free`, `Donationware`, `Shareware`, `Demo`, `Public domain / GPL / OFL` (omitted entirely, not guessed, when DaFont itself marks the license "Unknown" — filter for these with `license: "unknown"`)
- `downloadsTotal`, `downloadsYesterday`, `commentsCount`, `commentsUrl`
- `fontFilesCount`, `fileSize`, `pixelSize` (bitmap fonts only)
- `hasAccents`, `hasEuro` — character-set support flags
- `previewImageUrl` — the default rendered preview image
- `downloadUrl` — direct `.zip` download link
- `styles[]` — every style/weight variant with its own filename and preview image (when `includeFullDetails` is on)
- `illustrationImageUrl`, `charmapImageUrl`, `glyphCount` (when `includeFullDetails` is on)
- `firstSeenDate`, `updatedDate`, `oldVersionUrl` (when `includeFullDetails` is on)
- `authorNote` — the author's own description of the font, if provided
- `forumRequestsCount` — matching font-identification requests on DaFont's forum
- `sourceUrl`, `recordType: "font"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `top` / `new` / `byCategory` / `byAuthor` |
| `searchQuery` | string | `script` | Keyword (mode=search) |
| `category` | string | `Script > Calligraphy` | Category/theme dropdown, 80 values (mode=byCategory) |
| `authorUrls` | array | – | Author slugs or URLs (mode=byAuthor) |
| `topPeriod` | string | `daily` | `daily` (yesterday) / `allTime` (mode=top) |
| `sortBy` | string | `popularity` | `popularity` / `newest` / `name` |
| `license` | string | `all` | Filter to one license type, including `unknown` (no license link on DaFont) |
| `minDownloads` / `maxDownloads` | int | – | Total-download range filter |
| `accentsOnly` | bool | `false` | Only fonts with accented-character support |
| `euroOnly` | bool | `false` | Only fonts with the Euro glyph |
| `includeFullDetails` | bool | `true` | Fetch each font's detail page for the richer field set above |
| `maxItems` | int | `30` | Hard cap (1–500) |

#### Example: search fonts by keyword

```json
{
  "mode": "search",
  "searchQuery": "handwritten",
  "license": "hundredPercentFree",
  "maxItems": 50
}
````

#### Example: today's most-downloaded fonts

```json
{
  "mode": "top",
  "topPeriod": "daily",
  "maxItems": 25
}
```

#### Example: browse a category

```json
{
  "mode": "byCategory",
  "category": "603",
  "sortBy": "newest",
  "maxItems": 40
}
```

#### Example: every font by an author

```json
{
  "mode": "byAuthor",
  "authorUrls": ["mans-greback.d2878"],
  "maxItems": 100
}
```

Every record in this mode also carries that author's lifetime stats (`authorFontsCount`, `authorDownloadsTotal`, `authorDownloadsYesterday`, `authorProfileUrl`, `authorAvatarUrl`, `authorForumRequestsCount`), so you can profile the foundry without a second call.

#### Example: browse Bitmap (pixel) fonts

```json
{
  "mode": "byCategory",
  "category": "m9",
  "maxItems": 40
}
```

#### Example: fonts with an unclear/unspecified license

```json
{
  "mode": "byCategory",
  "category": "601",
  "license": "unknown",
  "maxItems": 40
}
```

### Use cases

- **Design tooling** — build a font-picker or mood-board feature backed by real DaFont metadata
- **License auditing** — bulk-check which fonts in a category are safe for commercial use
- **Trend tracking** — snapshot daily/all-time Top downloads to see what's rising
- **Font discovery pipelines** — feed category/theme browsing into a recommendation engine
- **Foundry research** — pull an author's full catalog in one call
- **Digital asset archiving** — collect preview images and metadata for a design library

### FAQ

**Do I need a DaFont account or cookies?**  No. Every mode works on fully public pages.

**Are the preview images real, hotlinkable URLs?**  Yes — they're static PNGs served directly by DaFont with no login or referer header required, so they display normally in any app or spreadsheet.

**What does `includeFullDetails` change?**  When on (default), the actor visits each font's own page to add glyph counts, every style-variant preview, the illustration image, and first-seen/updated dates. Turning it off skips that extra request per font for a faster, listing-only scrape.

**What license values can I filter on?**  `Public domain / GPL / OFL`, `100% Free`, `Free for personal use`, `Donationware`, `Shareware`, `Demo`, plus `unknown` for fonts DaFont itself flags as having no license link at all (its own "Unknown" checkbox). A font with no license link is left with no `licenseType` field rather than a guessed value — always double-check the license on the font's own page before commercial use, as DaFont itself notes the license shown is only an indication.

**Why only two `topPeriod` options?**  DaFont's own Top listing only supports "yesterday" and "all-time" — there's no weekly/monthly window on the site itself.

**How many categories are there?**  80 — 8 main themes with subcategories (Fancy, Foreign look, Techno, Gothic, Basic, Script, Dingbats, Holiday) totaling 71 subcategories, plus Bitmap (`m9`), which DaFont lists as its own top-level theme with no further subcategories. Pick a main theme to get everything in it, or a subcategory for a narrower browse.

**What author-level fields does `byAuthor` add?**  `authorProfileUrl`, `authorUserId`, `authorAvatarUrl`, `authorFontsCount`, `authorDownloadsTotal`, `authorDownloadsYesterday`, and `authorForumRequestsCount` — all parsed from the header block of the author page itself (the same page already fetched to list that author's fonts), so there's no extra request per author.

### Limitations

- **Search and alphabetical browsing are excluded from DaFont's own crawler policy** (`robots.txt` disallows `/search.php` and `/alpha.php` for automated crawlers). The `search` mode is kept because it is fully public, returns no personal data, and is core to font discovery — but be mindful of DaFont's crawl policy if you run this at high volume. Alphabetical (A–Z) browsing was left out of scope for this reason, since category, search, top, new, and author browsing already cover the same ground.
- **Custom preview text** (typing your own sample text on DaFont's site) is rendered client-side and has no stable image URL, so it isn't available as an output field — only the site's own default preview images are returned.
- **Author browsing by country** (DaFont's author-directory-by-country listing) returns author profiles, not font records, and is out of scope for this font-focused actor.

# Actor input Schema

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

What to fetch.

## `searchQuery` (type: `string`):

Free-text keyword to search font names/authors for.

## `category` (type: `string`):

Browse a main theme (all its subcategories) or a single subcategory.

## `authorUrls` (type: `array`):

DaFont author slugs (e.g. `mans-greback.d2878`) or full author page URLs.

## `topPeriod` (type: `string`):

DaFont's Top listing only supports these two windows.

## `sortBy` (type: `string`):

Applies to search/byCategory/byAuthor listings (top/new have their own fixed order). For byCategory/byAuthor this is sorted by DaFont itself; for search, DaFont's own sort parameter doesn't work, so the actor sorts the fetched results itself instead.

## `license` (type: `string`):

Only emit fonts with this license type. Leave as 'All licenses' for no filter.

## `minDownloads` (type: `integer`):

Drop fonts with fewer total downloads than this.

## `maxDownloads` (type: `integer`):

Drop fonts with more total downloads than this.

## `accentsOnly` (type: `boolean`):

Only emit fonts that support accented Latin characters (à, é, ñ, ...).

## `euroOnly` (type: `boolean`):

Only emit fonts that include the Euro (€) glyph.

## `includeFullDetails` (type: `boolean`):

Fetch each font's detail page for glyph count, all style previews, illustration image, and first-seen/updated dates. Slower but much richer output. Turn off for a faster, listing-only scrape.

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

Hard cap on emitted font records.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "script",
  "category": "601",
  "authorUrls": [
    "mans-greback.d2878"
  ],
  "topPeriod": "daily",
  "sortBy": "popularity",
  "license": "all",
  "accentsOnly": false,
  "euroOnly": false,
  "includeFullDetails": true,
  "maxItems": 30
}
```

# Actor output Schema

## `fonts` (type: `string`):

Dataset containing all scraped DaFont fonts.

# 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": "search",
    "searchQuery": "script",
    "category": "601",
    "authorUrls": [
        "mans-greback.d2878"
    ],
    "topPeriod": "daily",
    "sortBy": "popularity",
    "license": "all",
    "accentsOnly": false,
    "euroOnly": false,
    "includeFullDetails": true,
    "maxItems": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/dafont-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": "search",
    "searchQuery": "script",
    "category": "601",
    "authorUrls": ["mans-greback.d2878"],
    "topPeriod": "daily",
    "sortBy": "popularity",
    "license": "all",
    "accentsOnly": False,
    "euroOnly": False,
    "includeFullDetails": True,
    "maxItems": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/dafont-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": "search",
  "searchQuery": "script",
  "category": "601",
  "authorUrls": [
    "mans-greback.d2878"
  ],
  "topPeriod": "daily",
  "sortBy": "popularity",
  "license": "all",
  "accentsOnly": false,
  "euroOnly": false,
  "includeFullDetails": true,
  "maxItems": 30
}' |
apify call crawlerbros/dafont-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "DaFont Scraper",
        "description": "Scrape DaFont.com - 100,000+ free fonts. Search by keyword, browse Top downloads, New releases, or 80 categories/themes (incl. Bitmap), or list an author's fonts with lifetime stats. Get license type, downloads, preview images, glyph counts, style variants.",
        "version": "1.0",
        "x-build-id": "dCqfYYusHtZ3i7tZ2"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~dafont-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-dafont-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~dafont-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-dafont-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~dafont-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-dafont-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": [
                            "search",
                            "top",
                            "new",
                            "byCategory",
                            "byAuthor"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Free-text keyword to search font names/authors for.",
                        "default": "script"
                    },
                    "category": {
                        "title": "Category / theme (mode=byCategory)",
                        "enum": [
                            "m1",
                            "101",
                            "102",
                            "103",
                            "104",
                            "105",
                            "106",
                            "107",
                            "108",
                            "109",
                            "110",
                            "111",
                            "112",
                            "113",
                            "114",
                            "115",
                            "116",
                            "117",
                            "118",
                            "m2",
                            "201",
                            "202",
                            "203",
                            "204",
                            "205",
                            "206",
                            "m3",
                            "301",
                            "302",
                            "303",
                            "304",
                            "m4",
                            "401",
                            "402",
                            "403",
                            "404",
                            "405",
                            "m5",
                            "501",
                            "502",
                            "503",
                            "504",
                            "m6",
                            "601",
                            "602",
                            "603",
                            "604",
                            "605",
                            "606",
                            "607",
                            "608",
                            "m7",
                            "701",
                            "702",
                            "703",
                            "704",
                            "705",
                            "706",
                            "707",
                            "708",
                            "709",
                            "710",
                            "711",
                            "712",
                            "713",
                            "714",
                            "715",
                            "716",
                            "717",
                            "718",
                            "719",
                            "720",
                            "721",
                            "m8",
                            "801",
                            "802",
                            "803",
                            "804",
                            "805",
                            "m9"
                        ],
                        "type": "string",
                        "description": "Browse a main theme (all its subcategories) or a single subcategory.",
                        "default": "601"
                    },
                    "authorUrls": {
                        "title": "Author references (mode=byAuthor)",
                        "type": "array",
                        "description": "DaFont author slugs (e.g. `mans-greback.d2878`) or full author page URLs.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "topPeriod": {
                        "title": "Top period (mode=top)",
                        "enum": [
                            "daily",
                            "allTime"
                        ],
                        "type": "string",
                        "description": "DaFont's Top listing only supports these two windows.",
                        "default": "daily"
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "popularity",
                            "newest",
                            "name"
                        ],
                        "type": "string",
                        "description": "Applies to search/byCategory/byAuthor listings (top/new have their own fixed order). For byCategory/byAuthor this is sorted by DaFont itself; for search, DaFont's own sort parameter doesn't work, so the actor sorts the fetched results itself instead.",
                        "default": "popularity"
                    },
                    "license": {
                        "title": "License filter",
                        "enum": [
                            "all",
                            "publicDomain",
                            "hundredPercentFree",
                            "freeForPersonalUse",
                            "donationware",
                            "shareware",
                            "demo",
                            "unknown"
                        ],
                        "type": "string",
                        "description": "Only emit fonts with this license type. Leave as 'All licenses' for no filter.",
                        "default": "all"
                    },
                    "minDownloads": {
                        "title": "Min total downloads",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Drop fonts with fewer total downloads than this."
                    },
                    "maxDownloads": {
                        "title": "Max total downloads",
                        "minimum": 0,
                        "maximum": 1000000000,
                        "type": "integer",
                        "description": "Drop fonts with more total downloads than this."
                    },
                    "accentsOnly": {
                        "title": "Accented characters only",
                        "type": "boolean",
                        "description": "Only emit fonts that support accented Latin characters (à, é, ñ, ...).",
                        "default": false
                    },
                    "euroOnly": {
                        "title": "Euro symbol only",
                        "type": "boolean",
                        "description": "Only emit fonts that include the Euro (€) glyph.",
                        "default": false
                    },
                    "includeFullDetails": {
                        "title": "Include full font-page details",
                        "type": "boolean",
                        "description": "Fetch each font's detail page for glyph count, all style previews, illustration image, and first-seen/updated dates. Slower but much richer output. Turn off for a faster, listing-only scrape.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on emitted font records.",
                        "default": 30
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
