# Instagram Stories & Highlights Scraper (`fetch_cat/instagram-stories-highlights-scraper`) Actor

Collect public Instagram story and highlight metadata from profile URLs or usernames, with status rows for auth-required, private, unavailable, and rate-limited profiles.

- **URL**: https://apify.com/fetch\_cat/instagram-stories-highlights-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Social media
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 profiles

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

## Instagram Stories & Highlights Scraper

Scrape public Instagram stories and highlights from profile usernames or URLs.

Use this actor when you need current story media, permanent highlight collections, timestamps, captions, profile context, and clear status rows for profiles that are private, missing, rate-limited, or have no available media.

### What does Instagram Stories & Highlights Scraper do?

This actor processes one or more Instagram profiles and returns structured rows for active story items and saved highlight items.

It accepts usernames, `@handles`, and full Instagram profile URLs.

It can collect:

- Active 24-hour stories when available
- Saved highlight collections
- Individual media items inside each highlight
- Image or video media URLs
- Captions or text when Instagram exposes them
- Taken and expiry timestamps
- Profile metadata
- Stable IDs for deduplication
- Status rows for private, missing, empty, auth-required, and rate-limited profiles

### Who is it for?

#### Social media analysts

Track brand story activity and collect highlight archives for reporting.

#### Creator marketing teams

Review influencer story and highlight assets during campaign monitoring.

#### Agencies

Build repeatable profile checks for client or competitor monitoring.

#### Researchers

Collect public ephemeral media metadata with structured status reporting.

#### Data teams

Feed story and highlight URLs into downstream storage, dashboards, or moderation workflows.

### Why use this actor?

Instagram Stories are short-lived and Highlights are nested behind profile-specific collections.

This actor gives you one normalized dataset across both sources.

Benefits:

- Input can be a username or full URL
- One run can process many profiles
- Stories and highlights share a common output shape
- No-media profiles are still represented when enabled
- Optional cookies support authorized sessions
- Proxy configuration is built in
- PPE billing is profile-based and predictable

### What data can you extract?

| Field | Description |
| --- | --- |
| `kind` | `story`, `highlight_item`, or `profile_status` |
| `username` | Instagram username |
| `profileUrl` | Public profile URL |
| `profileId` | Instagram numeric profile ID when available |
| `fullName` | Profile display name |
| `isVerified` | Whether the profile is verified |
| `isPrivate` | Whether the profile is private |
| `status` | `ok`, `no_media`, `private`, `not_found`, `auth_required`, `rate_limited`, or `error` |
| `mediaType` | `image`, `video`, or `unknown` |
| `mediaUrl` | Best available media URL |
| `thumbnailUrl` | Image thumbnail URL |
| `caption` | Caption/text when available |
| `takenAt` | ISO timestamp when the item was posted |
| `expiringAt` | ISO timestamp when a story expires |
| `highlightId` | Highlight collection ID |
| `highlightTitle` | Highlight title |
| `highlightCoverUrl` | Highlight cover image URL |
| `sourceUrl` | Profile or highlight URL used as source context |
| `stableId` | Stable deduplication key |
| `errorMessage` | Human-readable failure/status reason |

### How much does it cost to scrape Instagram stories and highlights?

The actor uses pay-per-event pricing.

You pay a small start event and one profile event per processed Instagram profile.

The profile charge covers profile lookup, active story checks, highlight discovery, and saved highlight item collection for that profile.

Keep test runs small by starting with one or two profiles.

### How to use Instagram Stories & Highlights Scraper

1. Add Instagram usernames or profile URLs to `targets`.
2. Choose whether to include active stories, highlights, or both.
3. Keep `maxProfiles` low for your first run.
4. Use Apify Proxy for more reliable access.
5. Add `instagramCookies` only when you are authorized to view the target profiles.
6. Start the actor.
7. Download the dataset as JSON, CSV, Excel, or via API.

### Input example

```json
{
  "targets": ["instagram", "https://www.instagram.com/natgeo/"],
  "includeStories": true,
  "includeHighlights": true,
  "maxProfiles": 2,
  "maxHighlightsPerProfile": 10,
  "maxItemsPerHighlight": 20,
  "saveProfileOnNoMedia": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
````

### Output example

```json
{
  "kind": "highlight_item",
  "username": "instagram",
  "profileUrl": "https://www.instagram.com/instagram/",
  "profileId": "25025320",
  "fullName": "Instagram",
  "isVerified": true,
  "isPrivate": false,
  "status": "ok",
  "mediaType": "video",
  "mediaUrl": "https://...",
  "thumbnailUrl": "https://...",
  "caption": "Behind the scenes",
  "takenAt": "2026-06-20T10:15:00.000Z",
  "expiringAt": null,
  "highlightId": "17900000000000000",
  "highlightTitle": "Events",
  "sourceUrl": "https://www.instagram.com/stories/highlights/17900000000000000/",
  "stableId": "25025320:highlight_item:17900000000000000:123456789",
  "errorMessage": null
}
```

### Understanding status rows

When `saveProfileOnNoMedia` is enabled, the actor can emit `profile_status` rows.

These rows help you distinguish a successful empty profile check from a failed run.

Common statuses:

- `no_media`: profile was processed but no accessible stories/highlights were found
- `private`: profile is private
- `not_found`: username does not exist or is unavailable
- `auth_required`: Instagram asked for login or the provided session is not authorized
- `rate_limited`: Instagram throttled the current proxy/session
- `error`: unexpected response or parsing problem

### Cookies and authentication

Public Instagram data availability changes by region, IP reputation, and session state.

For some profiles or networks, Instagram may require an authenticated browser session.

You can paste an authorized Cookie header into `instagramCookies`.

Only use cookies from accounts and sessions you control or are authorized to use.

The actor does not bypass Instagram privacy controls.

### Proxy recommendations

Instagram is rate-limited.

The input schema prefills Apify Residential Proxy because it is usually more reliable for Instagram than shared datacenter IPs.

For small tests:

- Use 1-2 profiles
- Keep highlight caps low
- Avoid repeated retries with the same blocked session
- Try a different proxy country or session if you see `rate_limited`

### Tips for better results

- Use profile URLs copied directly from Instagram when possible.
- Keep batches small for story monitoring jobs.
- Schedule frequent small runs instead of one large run for ephemeral stories.
- Enable status rows for monitoring dashboards.
- Use stable IDs to deduplicate across scheduled runs.
- Store media URLs quickly because upstream URLs may expire.

### Integrations

You can connect the actor to:

- Google Sheets for daily profile monitoring
- Slack alerts for new story rows
- Airtable campaign trackers
- S3 or GCS media archiving workflows
- BI dashboards for creator activity
- Webhooks for status changes

### API usage with Node.js

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/instagram-stories-highlights-scraper').call({
  targets: ['instagram'],
  includeStories: true,
  includeHighlights: true,
  maxProfiles: 1,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### API usage with Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/instagram-stories-highlights-scraper').call(run_input={
    'targets': ['instagram'],
    'includeStories': True,
    'includeHighlights': True,
    'maxProfiles': 1,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

### API usage with cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~instagram-stories-highlights-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"targets":["instagram"],"maxProfiles":1,"includeStories":true,"includeHighlights":true}'
```

### MCP usage

Use the actor through Apify MCP tools in Claude Desktop or Claude Code.

Example prompts:

- "Run the Instagram Stories & Highlights Scraper for @instagram and summarize available highlights."
- "Check whether these five profiles have accessible current stories."
- "Export highlight media URLs for this campaign profile list."

MCP URL format:

`https://mcp.apify.com/?tools=fetch_cat/instagram-stories-highlights-scraper`

Claude Code setup:

```bash
claude mcp add apify-instagram-stories --transport http --url "https://mcp.apify.com/?tools=fetch_cat/instagram-stories-highlights-scraper"
```

Claude Desktop JSON configuration:

```json
{
  "mcpServers": {
    "apify-instagram-stories": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/instagram-stories-highlights-scraper"
    }
  }
}
```

### Scheduling

Stories expire quickly.

For monitoring, schedule small runs every few hours and deduplicate rows by `stableId`.

Highlights change less often, so daily or weekly collection may be enough.

### Limits

The actor depends on what Instagram returns to the current session.

Limitations:

- Private profiles are not publicly accessible
- Some story data may require login
- Some media URLs can expire
- Instagram may rate-limit repeated requests
- Deleted or expired story items cannot be recovered

### FAQ

#### Can this actor access private stories?

Only when you provide an authorized Instagram session that can view that profile. The actor does not bypass privacy controls.

#### Do I need cookies?

Cookies are optional for public checks, but Instagram often requires login for story and highlight media. Add authorized cookies when you see `auth_required`.

#### How do I get an Instagram Cookie header?

Use only cookies from an Instagram account and browser session you control or are authorized to use.

1. Log in to Instagram in your browser.
2. Open Developer Tools and go to the Network tab.
3. Reload Instagram, open a profile, or open a stories page.
4. Select a request to `instagram.com`.
5. Copy the full `Cookie` request header value.
6. Paste that value into the actor input field `instagramCookies`.

Refresh the cookie value if the session expires, you log out, change the account password, or Instagram asks you to log in again.

#### Can this actor download media files?

The actor returns public media URLs, thumbnails, timestamps, captions/text when exposed, and metadata/status rows. It does not store private media or promise permanent downloads of expired or restricted Instagram content.

#### Why do I get a status row instead of media?

A status row means the profile was private, unavailable, auth-required, rate-limited, had no available media, or returned an error. Use the `status` and `errorMessage` fields to decide whether to retry, add authorized cookies, or skip the profile.

### Troubleshooting

#### Why did I get `auth_required`?

Instagram returned a login or checkpoint response. Add authorized cookies, reduce the batch size, or try a different proxy session.

#### Why did I get `rate_limited`?

Instagram throttled the current IP/session. Wait before retrying, use fewer profiles, or change proxy settings.

#### Why is `mediaUrl` empty?

A status row does not have media. For media rows, Instagram may occasionally omit original media URLs; check `thumbnailUrl` and `raw` for available metadata.

### Legality

This actor is intended for publicly available data and authorized access workflows.

You are responsible for ensuring your use complies with applicable laws, platform terms, privacy rules, and rights in the content you collect.

Do not use the actor to access private data without authorization.

### Related scrapers

More Apify actors from the same catalog can complement this actor:

- [YouTube Channel Videos Scraper](https://apify.com/fetch_cat/youtube-channel-videos-scraper)
- [YouTube Shorts Scraper](https://apify.com/fetch_cat/youtube-shorts-scraper)
- [TikTok Profile Scraper](https://apify.com/fetch_cat/tiktok-profile-scraper)
- [Website Content Crawler Lite](https://apify.com/fetch_cat/website-content-crawler-lite)

### Data quality checklist

After each run, review:

- Number of `ok` rows
- Number of status rows
- Profiles with `rate_limited`
- Missing `mediaUrl` values
- Duplicate `stableId` values across schedules

### First run checklist

- Start with one public profile
- Keep `maxHighlightsPerProfile` at 10 or lower
- Keep `maxItemsPerHighlight` at 20 or lower
- Use status rows
- Review the dataset before scaling up

### Support notes

If a profile has public highlights in your browser but returns `auth_required` in the actor, Instagram is likely requiring a logged-in session for that proxy/session.

Add authorized cookies or retry later with a fresh proxy session.

### Changelog

#### 0.1

Initial build with username/profile URL inputs, active story extraction, highlight extraction, optional cookies, proxy support, structured output, and status rows.

# Actor input Schema

## `targets` (type: `array`):

One or more Instagram usernames, @handles, or profile URLs. Public profiles work best; private profiles require an authenticated session that can view them.

## `includeStories` (type: `boolean`):

Collect currently active 24-hour story items when Instagram makes them available for the profile.

## `includeHighlights` (type: `boolean`):

Collect highlight collections and their individual saved story items.

## `maxProfiles` (type: `integer`):

Safety cap for how many input profiles to process in one run.

## `maxHighlightsPerProfile` (type: `integer`):

Limit highlight collections per profile to control runtime and proxy cost.

## `maxItemsPerHighlight` (type: `integer`):

Limit saved story items extracted from each highlight collection.

## `saveProfileOnNoMedia` (type: `boolean`):

Emit a profile\_status row for profiles with no accessible stories/highlights so you can distinguish no media from a failed run.

## `instagramCookies` (type: `string`):

Optional Cookie header from a browser session that is allowed to view the target profiles. Use only cookies you are authorized to use.

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

Apify Proxy configuration. Instagram is heavily rate limited; residential or ISP proxies may be required for reliable collection.

## Actor input object example

```json
{
  "targets": [
    "instagram",
    "natgeo"
  ],
  "includeStories": true,
  "includeHighlights": true,
  "maxProfiles": 2,
  "maxHighlightsPerProfile": 10,
  "maxItemsPerHighlight": 20,
  "saveProfileOnNoMedia": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "targets": [
        "instagram",
        "natgeo"
    ],
    "instagramCookies": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/instagram-stories-highlights-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 = {
    "targets": [
        "instagram",
        "natgeo",
    ],
    "instagramCookies": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/instagram-stories-highlights-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 '{
  "targets": [
    "instagram",
    "natgeo"
  ],
  "instagramCookies": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call fetch_cat/instagram-stories-highlights-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Stories & Highlights Scraper",
        "description": "Collect public Instagram story and highlight metadata from profile URLs or usernames, with status rows for auth-required, private, unavailable, and rate-limited profiles.",
        "version": "0.1",
        "x-build-id": "fGaEtvnIlzR3WhAN1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~instagram-stories-highlights-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-instagram-stories-highlights-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/fetch_cat~instagram-stories-highlights-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-instagram-stories-highlights-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/fetch_cat~instagram-stories-highlights-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-instagram-stories-highlights-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": [
                    "targets"
                ],
                "properties": {
                    "targets": {
                        "title": "👤 Instagram profiles",
                        "minItems": 1,
                        "type": "array",
                        "description": "One or more Instagram usernames, @handles, or profile URLs. Public profiles work best; private profiles require an authenticated session that can view them.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeStories": {
                        "title": "Include active stories",
                        "type": "boolean",
                        "description": "Collect currently active 24-hour story items when Instagram makes them available for the profile.",
                        "default": true
                    },
                    "includeHighlights": {
                        "title": "Include saved highlights",
                        "type": "boolean",
                        "description": "Collect highlight collections and their individual saved story items.",
                        "default": true
                    },
                    "maxProfiles": {
                        "title": "Maximum profiles",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Safety cap for how many input profiles to process in one run.",
                        "default": 2
                    },
                    "maxHighlightsPerProfile": {
                        "title": "Maximum highlights per profile",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Limit highlight collections per profile to control runtime and proxy cost.",
                        "default": 10
                    },
                    "maxItemsPerHighlight": {
                        "title": "Maximum items per highlight",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Limit saved story items extracted from each highlight collection.",
                        "default": 20
                    },
                    "saveProfileOnNoMedia": {
                        "title": "Save status rows when no media is found",
                        "type": "boolean",
                        "description": "Emit a profile_status row for profiles with no accessible stories/highlights so you can distinguish no media from a failed run.",
                        "default": true
                    },
                    "instagramCookies": {
                        "title": "Instagram cookies (optional)",
                        "type": "string",
                        "description": "Optional Cookie header from a browser session that is allowed to view the target profiles. Use only cookies you are authorized to use."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Instagram is heavily rate limited; residential or ISP proxies may be required for reliable collection.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
