# Instagram Hashtag Scraper - Cheap and Fast (`fabri-lab/instagram-hashtag-scraper-cheap-and-fast`) Actor

Track fresh public Instagram hashtag content without login. This Actor is optimized for fast public discovery and returns up to 10 recent posts or reels per hashtag with captions, usernames, URLs, hashtags, timestamps, likes, comments, and media links when available.

- **URL**: https://apify.com/fabri-lab/instagram-hashtag-scraper-cheap-and-fast.md
- **Developed by:** [Yusuf Barış](https://apify.com/fabri-lab) (community)
- **Categories:** Automation, Social media
- **Stats:** 4 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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.

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 Hashtag Recent Posts & Reels Scraper

Track fresh public Instagram hashtag content in minutes. Get up to 10 recent public posts and reels per hashtag without login.

Built for fast scouting, monitoring, and lead discovery. Add one or more hashtags and get clean structured data from Instagram's public hashtag surfaces, including usernames, post URLs, captions, media URLs, timestamps, likes, comments, hashtags, and mentions when available.

**Pricing: $1.50 per 1,000 successful results.**

This Actor is unofficial and is not affiliated with Instagram or Meta.

### Why people use it

- See fresh public hashtag content quickly
- Start without cookies, accounts, or login flows
- Keep cost predictable with per-hashtag and total-run limits
- Export clean output for research, monitoring, or outreach workflows

### What this Actor is for

- Recent public hashtag discovery
- Hashtag monitoring
- Trend spotting
- Content research
- Influencer and account discovery
- Lead scouting from public posts

### Product positioning

This Actor is optimized for **up to 10 recent public results per hashtag** by default.

You can request more than 10 results with `maxResultsPerHashtag`, but actual counts vary by hashtag and Instagram public availability. Public no-login hashtag pagination is not guaranteed, so the product promise should stay centered on recent public discovery rather than deep crawl depth.

### Features

- Get up to 10 recent public Instagram posts and reels per hashtag by default
- No login or cookies required
- Support multiple hashtags in one run
- Extract usernames and profile URLs
- Extract post URLs and shortcodes
- Extract captions
- Extract hashtags and mentions from captions
- Extract likes count and comments count when available
- Extract image and video URLs when available
- Use a browser-assisted public collection mode for better no-login coverage
- Remove duplicate posts in the same run
- Optionally skip posts collected in previous runs
- Filter by caption words, minimum likes, minimum comments, and minimum post date
- Export results as JSON, CSV, Excel, or via API

### Input

```json
{
  "hashtags": ["webscraping", "marketing", "ai"],
  "contentType": "posts_and_reels",
  "maxResultsPerHashtag": 10,
  "maxResultsTotal": 30,
  "sortBy": "recent",
  "minPostDate": "2026-05-01",
  "mustContainWords": [],
  "excludeWords": [],
  "minLikes": 0,
  "minComments": 0,
  "enrichPostDetails": true,
  "publicBrowserMode": true,
  "publicSeedRetries": 2,
  "deduplicateAgainstPreviousRuns": false,
  "previousShortCodes": [],
  "previousPostUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
````

### Input fields

`hashtags` is required. You can enter hashtags with or without `#`. For example, both `webscraping` and `#webscraping` work.

`contentType` can be `posts`, `reels`, or `posts_and_reels`.

`maxResultsPerHashtag` defaults to `10`. This is the main product setting and should be the default store expectation. You can raise it, but actual counts vary by hashtag and Instagram public visibility.

`maxResultsTotal` is a hard stop for the whole run. Use this to control total cost across all hashtags. Set it to `0` to rely only on the per-hashtag limit.

`sortBy` supports `recent` in V1.

`minPostDate` applies post-processing date filtering. Instagram does not provide a native hashtag date filter, so filtering happens after collection when timestamps are available.

`mustContainWords` keeps only posts whose caption contains at least one of these words.

`excludeWords` skips posts whose caption contains any of these words.

`minLikes` and `minComments` keep only posts that meet these engagement thresholds when metrics are available.

`enrichPostDetails` fetches each public post page to fill missing likes, comments, timestamps, and media URLs when the hashtag surface does not include them.

`publicBrowserMode` uses a headless browser to harvest hydrated public hashtag results before raw HTML fallback. This improves no-login coverage for hashtags where Instagram renders additional items client-side.

`publicSeedRetries` retries the hashtag with a small set of public HTML variants and fresh proxy sessions when Instagram blocks deeper public endpoints. The default is `2` to keep runtime tighter. Raise it only when you explicitly want to trade speed for a chance at a few extra public results.

`deduplicateAgainstPreviousRuns`, `previousShortCodes`, and `previousPostUrls` let you skip posts already collected in earlier runs.

`proxyConfiguration` supports standard Apify proxy settings and is enabled by default. Each Instagram request uses a fresh Apify proxy session so blocked or login-redirect responses can be retried from a different proxy IP.

`INSTAGRAM_REQUEST_ATTEMPTS` controls how many times blocked requests are retried with a fresh proxy session. The default is `3`; the maximum is `10`.

### Output

Each result is one public Instagram post or reel.

```json
{
  "hashtag": "fitness",
  "contentType": "post",
  "shortCode": "C123example",
  "postUrl": "https://www.instagram.com/p/C123example/",
  "username": "example_user",
  "profileUrl": "https://www.instagram.com/example_user/",
  "caption": "Example caption with #fitness and protein",
  "hashtags": ["fitness"],
  "mentions": [],
  "likesCount": 120,
  "commentsCount": 14,
  "timestamp": "2026-05-12T10:30:00.000Z",
  "imageUrl": "https://example.com/image.jpg",
  "videoUrl": null,
  "isVideo": false,
  "isReel": false,
  "engagementScore": 134,
  "matchedFilters": {
    "hashtag": "fitness",
    "matchedWords": ["protein"],
    "passedMinLikes": true,
    "passedMinComments": true
  },
  "scrapedAt": "2026-05-12T11:00:00.000Z"
}
```

Some fields can be `null` when Instagram does not return them: `caption`, `likesCount`, `commentsCount`, `timestamp`, `imageUrl`, and `videoUrl`.

`engagementScore` is calculated as:

```text
likesCount + commentsCount
```

If likes or comments are missing, they count as `0`.

### Cost safety and duplicate protection

Only unique posts are saved and charged.

Pricing logic:

- 1 successful unique dataset item = 1 charged event
- Empty results are not charged
- Duplicate results are not charged
- Previous-run duplicates are not charged
- Parse-failed posts are not charged
- Filtered-out posts are not charged
- Items missing `shortCode`, `postUrl`, or `username` are not saved or charged

Same-run duplicate key:

```text
shortCode
```

Optional previous-run duplicate keys:

```text
previousShortCodes
previousPostUrls
```

### Example configurations

#### Default product-shaped run

```json
{
  "hashtags": ["fitness", "gym", "workout"],
  "maxResultsPerHashtag": 10,
  "maxResultsTotal": 30
}
```

#### Previous-run deduplication

```json
{
  "hashtags": ["webscraping"],
  "maxResultsPerHashtag": 10,
  "deduplicateAgainstPreviousRuns": true,
  "previousShortCodes": ["C123abc", "C456def"]
}
```

#### Filtered scouting

```json
{
  "hashtags": ["fitness"],
  "maxResultsPerHashtag": 10,
  "mustContainWords": ["protein", "gym"],
  "excludeWords": ["giveaway"],
  "minLikes": 100,
  "minComments": 5
}
```

#### Higher-limit experimental run

```json
{
  "hashtags": ["technology"],
  "maxResultsPerHashtag": 25,
  "publicBrowserMode": true,
  "publicSeedRetries": 8
}
```

Use higher limits only as an advanced setting. The Actor will try to collect more, but public no-login availability can still cap the final result count below your requested limit.

### Notes and limitations

This Actor extracts publicly available Instagram hashtag data.

No Instagram login is required.

Actual result count varies by hashtag and Instagram public availability.

This Actor does not scrape private profiles, stories, direct messages, emails, follower counts, likers, detailed comments, or private data.

Instagram can change public page and API responses without notice. If Instagram does not return timestamps, media URLs, likes, comments, or reels for a hashtag, those fields may be `null` or the run may return fewer results than requested.

If you need stable deep hashtag pagination or authenticated access patterns, that should be a separate session-based product rather than an extension of this no-login Actor.

### Suggested Apify Store short description

Track recent public Instagram hashtag posts and reels. Get up to 10 fresh results per hashtag with captions, usernames, URLs, hashtags, timestamps, likes, comments, and media links.

### Suggested Apify Store long description opener

Track fresh public Instagram hashtag content without login. This Actor is optimized for fast public discovery and returns up to 10 recent posts or reels per hashtag with captions, usernames, URLs, hashtags, timestamps, likes, comments, and media links when available.

### SEO

Title:

```text
Instagram Hashtag Recent Posts & Reels Scraper
```

Description:

```text
Track fresh public Instagram hashtag posts and reels without login. Get up to 10 recent results per hashtag with captions, usernames, URLs, hashtags, timestamps, likes, comments, and media links.
```

# Actor input Schema

## `hashtags` (type: `array`):

Enter one or more Instagram hashtags. You can use hashtags with or without #.

## `contentType` (type: `string`):

Choose whether to scrape posts, reels, or both. Reels availability depends on what Instagram returns for the hashtag.

## `maxResultsPerHashtag` (type: `integer`):

Default is 10 recent public results per hashtag. You can request more, but actual counts vary by hashtag and Instagram public visibility.

## `maxResultsTotal` (type: `integer`):

Hard total limit for the whole run. Use this to control maximum cost across all hashtags. Set 0 to rely only on the per-hashtag limit.

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

V1 focuses on recent public hashtag results.

## `debugMode` (type: `boolean`):

Promote deep diagnostic logs to INFO level so you can inspect pagination surfaces, cursors, duplicate pages, and enrichment behavior in Apify run logs.

## `publicBrowserMode` (type: `boolean`):

Use a headless browser to harvest hydrated public hashtag results before falling back to raw HTML parsing. This improves no-login coverage when Instagram renders extra items client-side.

## `minPostDate` (type: `string`):

Post-processing date filter. Instagram does not provide a native hashtag date filter; filtering works when timestamps are available. Use YYYY-MM-DD.

## `mustContainWords` (type: `array`):

Keep only posts whose caption contains at least one of these words.

## `excludeWords` (type: `array`):

Skip posts whose caption contains any of these words.

## `minLikes` (type: `integer`):

Keep only posts that meet this likes threshold when metrics are available.

## `minComments` (type: `integer`):

Keep only posts that meet this comments threshold when metrics are available.

## `enrichPostDetails` (type: `boolean`):

Fetch each public post page to fill missing likes, comments, timestamp, and media URLs when hashtag HTML does not include them. This improves completeness but adds extra requests.

## `publicSeedRetries` (type: `integer`):

When Instagram blocks deeper public endpoints, retry the hashtag with a small set of public HTML variants and fresh proxy sessions to collect additional unique public results. Higher values add more requests and more runtime.

## `deduplicateAgainstPreviousRuns` (type: `boolean`):

Skip posts already collected in earlier runs by shortcode or post URL.

## `previousShortCodes` (type: `array`):

Optional list of post or reel shortcodes collected in previous runs. Used only when previous-run deduplication is enabled.

## `previousPostUrls` (type: `array`):

Optional list of Instagram post or reel URLs collected in previous runs. Used only when previous-run deduplication is enabled.

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

Apify proxy configuration. Enabled by default for public Instagram reliability on Apify Cloud, with a fresh proxy session used for each request.

## Actor input object example

```json
{
  "hashtags": [
    "webscraping",
    "marketing",
    "ai"
  ],
  "contentType": "posts_and_reels",
  "maxResultsPerHashtag": 10,
  "maxResultsTotal": 0,
  "sortBy": "recent",
  "debugMode": false,
  "publicBrowserMode": true,
  "minPostDate": "",
  "mustContainWords": [],
  "excludeWords": [],
  "minLikes": 0,
  "minComments": 0,
  "enrichPostDetails": true,
  "publicSeedRetries": 2,
  "deduplicateAgainstPreviousRuns": false,
  "previousShortCodes": [],
  "previousPostUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped unique recent public Instagram hashtag posts and reels saved to the default dataset.

## `summary` (type: `string`):

Run summary with saved and skipped 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 = {
    "hashtags": [
        "webscraping",
        "marketing",
        "ai"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabri-lab/instagram-hashtag-scraper-cheap-and-fast").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 = { "hashtags": [
        "webscraping",
        "marketing",
        "ai",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("fabri-lab/instagram-hashtag-scraper-cheap-and-fast").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 '{
  "hashtags": [
    "webscraping",
    "marketing",
    "ai"
  ]
}' |
apify call fabri-lab/instagram-hashtag-scraper-cheap-and-fast --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=fabri-lab/instagram-hashtag-scraper-cheap-and-fast",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Hashtag Scraper - Cheap and Fast",
        "description": "Track fresh public Instagram hashtag content without login. This Actor is optimized for fast public discovery and returns up to 10 recent posts or reels per hashtag with captions, usernames, URLs, hashtags, timestamps, likes, comments, and media links when available.",
        "version": "0.0",
        "x-build-id": "HwMJeUBdSbW4eeL0b"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fabri-lab~instagram-hashtag-scraper-cheap-and-fast/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fabri-lab-instagram-hashtag-scraper-cheap-and-fast",
                "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/fabri-lab~instagram-hashtag-scraper-cheap-and-fast/runs": {
            "post": {
                "operationId": "runs-sync-fabri-lab-instagram-hashtag-scraper-cheap-and-fast",
                "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/fabri-lab~instagram-hashtag-scraper-cheap-and-fast/run-sync": {
            "post": {
                "operationId": "run-sync-fabri-lab-instagram-hashtag-scraper-cheap-and-fast",
                "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": [
                    "hashtags"
                ],
                "properties": {
                    "hashtags": {
                        "title": "# Hashtags",
                        "type": "array",
                        "description": "Enter one or more Instagram hashtags. You can use hashtags with or without #.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "contentType": {
                        "title": "Content type",
                        "enum": [
                            "posts",
                            "reels",
                            "posts_and_reels"
                        ],
                        "type": "string",
                        "description": "Choose whether to scrape posts, reels, or both. Reels availability depends on what Instagram returns for the hashtag.",
                        "default": "posts_and_reels"
                    },
                    "maxResultsPerHashtag": {
                        "title": "Recent results per hashtag",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Default is 10 recent public results per hashtag. You can request more, but actual counts vary by hashtag and Instagram public visibility.",
                        "default": 10
                    },
                    "maxResultsTotal": {
                        "title": "Maximum total results",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Hard total limit for the whole run. Use this to control maximum cost across all hashtags. Set 0 to rely only on the per-hashtag limit.",
                        "default": 0
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "recent"
                        ],
                        "type": "string",
                        "description": "V1 focuses on recent public hashtag results.",
                        "default": "recent"
                    },
                    "debugMode": {
                        "title": "Debug mode",
                        "type": "boolean",
                        "description": "Promote deep diagnostic logs to INFO level so you can inspect pagination surfaces, cursors, duplicate pages, and enrichment behavior in Apify run logs.",
                        "default": false
                    },
                    "publicBrowserMode": {
                        "title": "Public browser mode",
                        "type": "boolean",
                        "description": "Use a headless browser to harvest hydrated public hashtag results before falling back to raw HTML parsing. This improves no-login coverage when Instagram renders extra items client-side.",
                        "default": true
                    },
                    "minPostDate": {
                        "title": "Minimum post date",
                        "type": "string",
                        "description": "Post-processing date filter. Instagram does not provide a native hashtag date filter; filtering works when timestamps are available. Use YYYY-MM-DD.",
                        "default": ""
                    },
                    "mustContainWords": {
                        "title": "Must contain words",
                        "type": "array",
                        "description": "Keep only posts whose caption contains at least one of these words.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "excludeWords": {
                        "title": "Exclude words",
                        "type": "array",
                        "description": "Skip posts whose caption contains any of these words.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "minLikes": {
                        "title": "Minimum likes",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only posts that meet this likes threshold when metrics are available.",
                        "default": 0
                    },
                    "minComments": {
                        "title": "Minimum comments",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Keep only posts that meet this comments threshold when metrics are available.",
                        "default": 0
                    },
                    "enrichPostDetails": {
                        "title": "Enrich post details",
                        "type": "boolean",
                        "description": "Fetch each public post page to fill missing likes, comments, timestamp, and media URLs when hashtag HTML does not include them. This improves completeness but adds extra requests.",
                        "default": true
                    },
                    "publicSeedRetries": {
                        "title": "Public seed retries",
                        "minimum": 0,
                        "maximum": 30,
                        "type": "integer",
                        "description": "When Instagram blocks deeper public endpoints, retry the hashtag with a small set of public HTML variants and fresh proxy sessions to collect additional unique public results. Higher values add more requests and more runtime.",
                        "default": 2
                    },
                    "deduplicateAgainstPreviousRuns": {
                        "title": "Deduplicate against previous runs",
                        "type": "boolean",
                        "description": "Skip posts already collected in earlier runs by shortcode or post URL.",
                        "default": false
                    },
                    "previousShortCodes": {
                        "title": "Previous shortcodes",
                        "type": "array",
                        "description": "Optional list of post or reel shortcodes collected in previous runs. Used only when previous-run deduplication is enabled.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "previousPostUrls": {
                        "title": "Previous post URLs",
                        "type": "array",
                        "description": "Optional list of Instagram post or reel URLs collected in previous runs. Used only when previous-run deduplication is enabled.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Enabled by default for public Instagram reliability on Apify Cloud, with a fresh proxy session used for each request.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
