# Bandsintown Scraper (`solidcode/bandsintown-scraper`) Actor

\[💰 $1 / 1K] Scrape Bandsintown concerts, tour dates & artist profiles. Look up many artists by name or ID, get upcoming, past, or all events with venue locations, lineups & ticket links. No account or API key needed.

- **URL**: https://apify.com/solidcode/bandsintown-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

## Bandsintown Scraper

Pull concerts, tour dates, and artist profiles from Bandsintown at scale — venue locations with latitude/longitude, full event lineups, structured ticket offers, on-sale times, and follower counts for any artist by name or ID. Two record types in one run: live `event` rows and rich `artist` profiles, across upcoming shows, the full past-tour archive, or a custom date window. Built for event marketers, ticketing analysts, and music-data teams who need live tour data at scale without an API key or a sign-up.

### Why This Scraper?

- **Two record types in one run** — `event` rows (tour dates, venues, lineups, tickets) and `artist` profiles (followers, upcoming-show count, profile image), selectable per run with a single "What to fetch" switch.
- **Batch unlimited artists per run** — paste many artists, one per line, mixing plain names and numeric Bandsintown IDs freely; names auto-resolve to the right artist, numeric IDs skip the lookup entirely.
- **Full past-tour archive, not just upcoming** — walk an artist's entire concert history, not the six dates the public profile shows. Choose `upcoming`, `past`, `all`, or a precise `custom` date range.
- **Custom date-range filtering** — pull every show between an exact start and end date (YYYY-MM-DD) for clean tour-period analysis.
- **Precise venue geo on every detailed event** — latitude, longitude, city, region/state, and country, ready to drop onto a map or into a spatial database.
- **Structured ticket offers + on-sale datetime** — each event carries ticket/offer URLs with availability status plus the on-sale time, so you can track presales and resale links programmatically.
- **Full event lineup** — every supporting act and co-headliner on the bill, not just the artist you searched, captured as a clean array.
- **Result cap that never trims a page** — set a `maxResults` ceiling and the run stops requesting new pages once it's reached, keeping the full final page intact so you never lose half a tour.
- **No account, login, or API key** — go from an artist name to a structured dataset in a single run.

### Use Cases

**Live-Event Discovery**
- Build a city-by-city calendar of upcoming shows for a roster of artists
- Surface newly announced tour dates the moment they post
- Track which artists are touring a given country or region

**Tour & Concert Analytics**
- Reconstruct an artist's full touring history from the past-event archive
- Compare set sizes and routing across multiple tours by date range
- Measure how many shows an act plays per year over time

**Ticketing & Resale Intelligence**
- Monitor on-sale datetimes to catch presales and general-sale drops early
- Collect ticket and offer URLs with availability status across a tour
- Map demand hotspots by cross-referencing venue geo with event density

**Artist & Fan-base Research**
- Pull follower counts and upcoming-show totals to rank artist momentum
- Track verified artist profiles and profile imagery for media databases
- Discover supporting acts and co-headliners from full event lineups

**Venue & Promoter Lead Generation**
- Build venue lists with names, cities, countries, and coordinates
- Identify which promoters and venues a touring act keeps returning to
- Target outreach by mapping venues an artist plays in a specific region

**Music Market Research**
- Quantify live-music activity by market using geo-tagged event data
- Benchmark touring frequency across a genre or label roster
- Feed concert data into dashboards, recommendation engines, and reports

### Getting Started

#### Single Artist, Upcoming Shows

The simplest run — one artist, their upcoming tour dates:

```json
{
    "artists": ["Radiohead"],
    "queryType": "events",
    "dateFilter": "upcoming"
}
````

#### Several Artists by Name and ID

Mix plain names with numeric Bandsintown IDs in one batch:

```json
{
    "artists": ["Metallica", "Tame Impala", "25874"],
    "queryType": "both",
    "dateFilter": "upcoming",
    "maxResults": 300
}
```

#### Full Tour History with Rich Detail

Walk the complete archive and enrich every event with geo, lineup, and ticket offers:

```json
{
    "artists": ["Foo Fighters"],
    "queryType": "events",
    "dateFilter": "all",
    "includeEventDetails": true,
    "maxResults": 500
}
```

#### Custom Date Range

Pull only the shows inside an exact window:

```json
{
    "artists": ["Coldplay", "1234567"],
    "queryType": "events",
    "dateFilter": "custom",
    "dateFrom": "2024-01-01",
    "dateTo": "2024-12-31",
    "includeEventDetails": true,
    "maxResults": 1000
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `artists` | string\[] | `["Radiohead"]` | Artists to look up, one per line. Enter an artist name (e.g. Radiohead, Metallica) or a numeric Bandsintown artist ID (e.g. 25874). Numeric entries are treated as IDs and skip the name lookup; everything else is searched by name. |
| `queryType` | select | `Events only` | What to return per artist: just the artist profile, just their events, or both. |

#### Date Filter

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `dateFilter` | select | `Upcoming events` | Which events to include: upcoming, past, all, or a custom range. |
| `dateFrom` | string | `null` | Start of the custom range (YYYY-MM-DD). Used only when `dateFilter` is "Custom date range". Leave empty for no lower bound. |
| `dateTo` | string | `null` | End of the custom range (YYYY-MM-DD). Used only when `dateFilter` is "Custom date range". Leave empty for no upper bound. |

#### Options & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeEventDetails` | boolean | `false` | Enrich every event with venue coordinates, full lineup, structured ticket offers, and on-sale times. Adds depth at the cost of run time — leave off for a fast list of events with basic venue and ticket info. |
| `maxResults` | integer | `100` | Maximum number of event rows to collect across all artists. Set to `0` for no cap (an internal safety ceiling still applies). Artist profile rows do not count against this limit. |

### Output

This actor returns two record types, distinguished by the `recordType` field. Each is documented separately below.

#### Event Record (`recordType: "event"`)

```json
{
    "recordType": "event",
    "id": "1035274821",
    "title": "Radiohead at Madison Square Garden",
    "url": "https://www.bandsintown.com/e/1035274821",
    "datetime": "2026-07-14T20:00:00",
    "onSaleDatetime": "2026-05-01T10",
    "description": "An evening with Radiohead",
    "artistId": "25874",
    "artistName": "Radiohead",
    "venueName": "Madison Square Garden",
    "venueCity": "New York",
    "venueRegion": "NY",
    "venueCountry": "United States",
    "venueLatitude": 40.7505,
    "venueLongitude": -73.9934,
    "lineup": ["Radiohead", "The Smile"],
    "offers": [
        { "type": "tickets", "url": "https://www.bandsintown.com/t/1035274821", "status": "https://schema.org/InStock" }
    ],
    "socialUrl": "https://www.facebook.com/radiohead"
}
```

##### Core Event Fields

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `"event"` |
| `id` | string | Bandsintown event ID |
| `title` | string | Event title (festival or billing name when present) |
| `url` | string | Event page URL |
| `datetime` | string | Event start time, ISO 8601 |
| `onSaleDatetime` | string | Ticket on-sale time (nullable; populated with full detail) |
| `description` | string | Event description (nullable; populated with full detail) |
| `artistId` | string | Bandsintown ID of the queried artist |
| `artistName` | string | Name of the queried artist |

##### Venue & Location

| Field | Type | Description |
|-------|------|-------------|
| `venueName` | string | Venue name |
| `venueCity` | string | City |
| `venueRegion` | string | Region or state (populated with full detail) |
| `venueCountry` | string | Country |
| `venueLatitude` | number | Latitude (populated with full detail) |
| `venueLongitude` | number | Longitude (populated with full detail) |

##### Tickets & Lineup

| Field | Type | Description |
|-------|------|-------------|
| `lineup` | string\[] | All acts on the bill (populated with full detail) |
| `offers` | object\[] | Ticket offers: `type`, `url`, `status` |
| `socialUrl` | string | A social link for the event or artist (nullable) |

#### Artist Record (`recordType: "artist"`)

Returned when `queryType` is "Artist profile only" or "Both".

```json
{
    "recordType": "artist",
    "id": "25874",
    "name": "Radiohead",
    "url": "https://www.bandsintown.com/a/25874",
    "imageUrl": "https://photos.bandsintown.com/large/25874.jpg",
    "thumbUrl": "https://photos.bandsintown.com/thumb/25874.jpg",
    "followerCount": 2841093,
    "upcomingEventCount": 12,
    "verified": true
}
```

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `"artist"` |
| `id` | string | Bandsintown artist ID |
| `name` | string | Artist name |
| `url` | string | Artist profile URL |
| `imageUrl` | string | Full-size artist image |
| `thumbUrl` | string | Thumbnail image |
| `followerCount` | number | Bandsintown followers tracking this artist |
| `upcomingEventCount` | number | Number of upcoming shows |
| `verified` | boolean | Whether the profile is verified |

### Tips for Best Results

- **Use numeric IDs to skip name ambiguity** — when two artists share a name, a plain name resolves to the top match. Drop the numeric Bandsintown ID instead to lock onto the exact artist every time.
- **Enable full event details only when you need geo or lineup** — coordinates, region, full lineup, ticket offers, and on-sale times require one extra fetch per event. Leave it off for a fast tour-date list; turn it on when you're building maps or ticketing pipelines.
- **Pair `all` with a custom range for historical tour analysis** — `all` pulls the complete archive, then a `custom` window narrows to the exact tour period you're studying, so you only keep the dates that matter.
- **Set a `maxResults` cap on globally-touring acts** — a single world-touring artist on `all` can return hundreds of dates. Cap it to control volume; the run keeps the full final page rather than trimming mid-tour.
- **Artist rows are free of the result cap** — run `queryType: both` to collect every artist's profile alongside their events without the profile rows eating into your `maxResults` budget.
- **Batch your whole roster in one run** — paste every artist you track, one per line, instead of running them one at a time.
- **Start small to validate** — run a single artist with a low `maxResults` first to confirm the fields match your pipeline, then scale up.

### Pricing

**From $1 per 1,000 results** — pay only for the rows you get, with progressively lower prices for Bronze, Silver, and Gold loyalty subscribers. The table below shows the total cost for each volume at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.12 | $0.11 | $0.105 | $0.10 |
| 1,000 | $1.20 | $1.10 | $1.05 | $1.00 |
| 10,000 | $12.00 | $11.00 | $10.50 | $10.00 |
| 100,000 | $120.00 | $110.00 | $105.00 | $100.00 |

A "result" is any row in the output dataset — one per event and one per artist profile.

#### Optional event-details add-on

Turning on **event details** adds an extra **$0.003 per enriched event** — for precise location (latitude/longitude, country, region), the full event lineup, and structured ticket offers. This fee applies only when the toggle is on, and only to events that actually get enriched (any event that comes through with just its basic fields is never charged the add-on).

Example: 1,000 events with details on = **$1.00 for the results + $3.00 for enrichment = $4.00 total** (at Gold pricing).

**No compute or time-based charges** — you pay per result, plus a small optional per-enriched-event fee when you turn on event details, and a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate live-music research, event discovery, market analysis, and lead generation. You are responsible for complying with applicable laws and Bandsintown's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose, and be mindful of how you store and process any personal data.

# Actor input Schema

## `artists` (type: `array`):

Artists to look up, one per line. Enter an artist name (e.g. Radiohead, Metallica) or a Bandsintown numeric artist ID (e.g. 25874). Numeric entries are treated as IDs and skip the name lookup; everything else is searched by name.

## `queryType` (type: `string`):

Choose what to return for each artist: just the artist profile, just their events, or both.

## `includeEventDetails` (type: `boolean`):

Add precise location (latitude/longitude, country, region), the full event lineup, and structured ticket offers for each event. This is best-effort on very large runs — any event whose details can't be loaded still comes through with its basic venue and ticket info. Turning this on adds a small extra per-enriched-event fee (see Pricing); leave it off for a fast list of events with basic venue and ticket info at the standard per-result price.

## `dateFilter` (type: `string`):

Filter events by date. Use 'Custom range' together with the start and end dates below to pull a specific window.

## `dateFrom` (type: `string`):

Start of the custom date range (YYYY-MM-DD). Only used when 'Which events' is set to 'Custom date range'. Leave empty for no lower bound. Dates are compared against each show's local start date (the venue's own time zone), so events are kept or excluded by their date where the concert happens.

## `dateTo` (type: `string`):

End of the custom date range (YYYY-MM-DD), inclusive. Only used when 'Which events' is set to 'Custom date range'. Leave empty for no upper bound. Dates are compared against each show's local start date (the venue's own time zone), so events are kept or excluded by their date where the concert happens.

## `maxResults` (type: `integer`):

Maximum number of event rows to collect across all artists. Default 100 — increase for bigger tours, or set to 0 for no cap (an internal safety ceiling still applies). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots. Artist profile rows do not count against this limit.

## Actor input object example

```json
{
  "artists": [
    "Radiohead"
  ],
  "queryType": "events",
  "includeEventDetails": false,
  "dateFilter": "upcoming",
  "maxResults": 100
}
```

# Actor output Schema

## `events` (type: `string`):

Table of events with date, venue, location, and ticket links.

## `artists` (type: `string`):

Table of artist profiles with followers, links, and event counts.

# 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 = {
    "artists": [
        "Radiohead"
    ],
    "queryType": "events",
    "dateFilter": "upcoming",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/bandsintown-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 = {
    "artists": ["Radiohead"],
    "queryType": "events",
    "dateFilter": "upcoming",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/bandsintown-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 '{
  "artists": [
    "Radiohead"
  ],
  "queryType": "events",
  "dateFilter": "upcoming",
  "maxResults": 100
}' |
apify call solidcode/bandsintown-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bandsintown Scraper",
        "description": "[💰 $1 / 1K] Scrape Bandsintown concerts, tour dates & artist profiles. Look up many artists by name or ID, get upcoming, past, or all events with venue locations, lineups & ticket links. No account or API key needed.",
        "version": "1.0",
        "x-build-id": "7gcgYhFISfPCrHhY5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~bandsintown-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-bandsintown-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/solidcode~bandsintown-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-bandsintown-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/solidcode~bandsintown-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-bandsintown-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "artists": {
                        "title": "Artists",
                        "type": "array",
                        "description": "Artists to look up, one per line. Enter an artist name (e.g. Radiohead, Metallica) or a Bandsintown numeric artist ID (e.g. 25874). Numeric entries are treated as IDs and skip the name lookup; everything else is searched by name.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "queryType": {
                        "title": "What to fetch",
                        "enum": [
                            "events",
                            "artist",
                            "both"
                        ],
                        "type": "string",
                        "description": "Choose what to return for each artist: just the artist profile, just their events, or both.",
                        "default": "events"
                    },
                    "includeEventDetails": {
                        "title": "Include full event details",
                        "type": "boolean",
                        "description": "Add precise location (latitude/longitude, country, region), the full event lineup, and structured ticket offers for each event. This is best-effort on very large runs — any event whose details can't be loaded still comes through with its basic venue and ticket info. Turning this on adds a small extra per-enriched-event fee (see Pricing); leave it off for a fast list of events with basic venue and ticket info at the standard per-result price.",
                        "default": false
                    },
                    "dateFilter": {
                        "title": "Which events",
                        "enum": [
                            "upcoming",
                            "past",
                            "all",
                            "custom"
                        ],
                        "type": "string",
                        "description": "Filter events by date. Use 'Custom range' together with the start and end dates below to pull a specific window.",
                        "default": "upcoming"
                    },
                    "dateFrom": {
                        "title": "Range start date",
                        "type": "string",
                        "description": "Start of the custom date range (YYYY-MM-DD). Only used when 'Which events' is set to 'Custom date range'. Leave empty for no lower bound. Dates are compared against each show's local start date (the venue's own time zone), so events are kept or excluded by their date where the concert happens."
                    },
                    "dateTo": {
                        "title": "Range end date",
                        "type": "string",
                        "description": "End of the custom date range (YYYY-MM-DD), inclusive. Only used when 'Which events' is set to 'Custom date range'. Leave empty for no upper bound. Dates are compared against each show's local start date (the venue's own time zone), so events are kept or excluded by their date where the concert happens."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of event rows to collect across all artists. Default 100 — increase for bigger tours, or set to 0 for no cap (an internal safety ceiling still applies). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots. Artist profile rows do not count against this limit.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
