# Instagram Location Scraper (`scrapepilotapi/instagram-location-scraper`) Actor

📍 Instagram Location Scraper (instagram-location-scraper) scrapes rich location data from Instagram place pages: place name, address, coordinates, top/recent geotagged posts, captions, hashtags, media URLs, likes & comments. 🚀 Perfect for local SEO, social listening & competitor analysis.

- **URL**: https://apify.com/scrapepilotapi/instagram-location-scraper.md
- **Developed by:** [ScrapePilot](https://apify.com/scrapepilotapi) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$19.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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 Location Scraper

Instagram Location Scraper is a focused Instagram places scraper that collects structured posts from Instagram place pages and geotagged feeds. It helps you scrape Instagram posts by location, extract media URLs, engagement counts, owners, and coordinates — acting as an Instagram location ID scraper and Instagram location API alternative for marketers, developers, analysts, and researchers. With automatic keyword/username conversion to place pages, smart proxy fallback, and time-based filters, it enables reliable, location-based content collection at scale. 🚀

### What data / output can you get?

Below are the main fields saved for each post. Results are stored in your Apify dataset and can be exported to JSON, CSV, or Excel.

| Data type | Description | Example value |
| --- | --- | --- |
| type | Item type indicator | "post" |
| id | Unique Instagram post ID | "3761820491792436654" |
| code | Short code used in post URLs | "DQ0q85qEs2u" |
| url | Full URL to the post | "https://www.instagram.com/p/DQ0q85qEs2u/" |
| createdAt | ISO timestamp when the post was created | "2025-11-09T10:52:49Z" |
| likeCount | Number of likes | 1 |
| commentCount | Number of comments | 0 |
| caption | Post caption text | "#berlin #travel" |
| isCarousel | Whether the post is a carousel | true |
| isVideo | Whether the post contains video | false |
| owner | Object with post owner info | {"id":"222741818","username":"sihyun_sung_photography",...} |
| location | Object with place metadata | {"id":"1681866845218607","name":"Messe Berlin",...} |
| image | Image details if present | {"url":"https://scontent.cdninstagram.com/...", "width":1440, "height":1440} |
| video | Video details if present | {"id":"video_3761820491792436654","url":"https://...mp4",...} |
| audio | Audio/music info if available | {"id":"audio_...","title":"...", "audioUrl":"https://..."} |

Notes:
- Media objects (image/video/audio) may be null when not applicable.
- Owner or location can be null if not provided by the source post.
- Datasets export easily to JSON, CSV, or Excel for downstream analysis.  

### Key features

- 🧭 Smart input detection & conversion  
  Paste Instagram location URLs, usernames (with or without @), or keywords. The actor detects the type and turns them into Instagram place pages automatically — a practical Instagram location search scraper workflow.

- 🌐 Keyword-based location discovery  
  Use the built‑in Instagram geo search scraper logic to find place IDs and URLs from keywords. Great for discovery workflows like “Berlin”, “New York”, or specific venues.

- 🧩 Location URL extraction from usernames  
  As an Instagram location extractor, it scans a user’s public posts to find geotagged places and builds location URLs from them.

- ⏳ Timeframe filtering (absolute or relative)  
  Filter posts by date using absolute dates (YYYY‑MM‑DD) or relative windows (e.g., last 7 days/weeks/months/years) for precise, time‑bound analyses.

- 🛡️ Intelligent proxy fallback  
  Built‑in proxy strategy moves from direct → datacenter → residential when blocked, keeping your Instagram location-based content scraper runs stable.

- 📦 Structured JSON output  
  Clean JSON per post with identifiers, owner, location (including coordinates), engagement counts, and media objects — ready for analytics or BI pipelines.

- 🧪 Production‑ready reliability  
  Robust error handling, pagination, retry logic, and detailed logs ensure dependable runs at scale.

### How to use Instagram Location Scraper - step by step

1. Create or log in to your Apify account  
   Visit console.apify.com and sign in.

2. Open the actor  
   Find “Instagram Location Scraper” in your Actors list or search the Apify Store.

3. Add inputs  
   - In the INPUT tab, paste your list into startUrls.  
   - You can mix Instagram location URLs, usernames (e.g., "mrbeast"), and keywords (e.g., "berlin").

4. Configure limits and timeframe  
   - Set maxItems to cap the number of posts (0 = unlimited).  
   - Choose dateFilterType (“relative” or “absolute”) and fill out either relativeValue + relativeUnit or absoluteStartDate/absoluteEndDate.

5. Optional: Add a session ID  
   Enter sessionId to authenticate for more reliable keyword searches and place feeds.

6. Configure proxy behavior  
   In proxyConfiguration, toggle useApifyProxy. If Instagram blocks requests, the actor will automatically try datacenter and then residential proxies.

7. Run the actor  
   Click Start. Watch the LOG tab for progress, proxy fallback events, and timeframe filtering summaries.

8. Export results  
   Go to the OUTPUT tab and export your dataset as JSON, CSV, or Excel for downstream use.

Pro tip: Enable sessionId and Apify Proxy for high-volume runs or when using the Instagram place page scraper in stricter regions.

### Use cases

| Use case name | Description |
| --- | --- |
| Local SEO + venue insights | Analyze what content performs at target places; benchmark competitors and discover trends using an Instagram place page scraper. |
| Social listening by place | Monitor geotagged content around brand locations with an Instagram geotag scraper for timely engagement. |
| Event & venue monitoring | Track posts around conferences, concerts, or sports events to inform marketing and operations. |
| Tourism & city research | Understand traveler behavior and interests by collecting location-tagged posts for destinations. |
| Competitive analysis by location | Compare engagement at competitor locations and identify winning content formats. |
| Data enrichment pipelines | Feed a data warehouse with structured location-based posts for BI dashboards (API/automation-friendly). |
| Academic & urban studies | Study urban patterns via Instagram location-based content scraper datasets with coordinates and timestamps. |

### Why choose Instagram Location Scraper?

Get reliable, structured location data from Instagram place pages with automation-first design and built‑in resilience.

- 🎯 Accurate, structured fields: IDs, owners, captions, engagement counts, coordinates, and media objects.
- 🧠 Automatic discovery: Converts keywords and usernames into place URLs — a practical Instagram location ID scraper for discovery.
- ⏱️ Time-bound analysis: Absolute and relative timeframe filters to isolate recent or historical posts.
- 🔌 Developer-friendly: JSON output fits data engineering pipelines; export to CSV/Excel for non-technical users.
- 🛡️ Robust & scalable: Automatic proxy fallback and retry logic outperform brittle browser extensions.
- 💰 Cost-effective automation: Runs on Apify infrastructure with transparent usage and detailed logs.
- 🔒 Ethical by design: Targets publicly available content; you remain in control of compliance.

In short: a dependable Instagram location extractor vs. unstable one-off tools — built for repeatable, production workflows.

### Is it legal / ethical to use Instagram Location Scraper?

Yes, when used responsibly. This tool is designed to access publicly available Instagram location pages and geotagged posts. It does not access private profiles or password-protected content by itself.

Guidelines for compliant use:
- Scrape only publicly available data.
- Respect Instagram’s Terms of Service.
- Comply with data protection laws (e.g., GDPR, CCPA).
- Treat cookies/session IDs like credentials and keep them secure.
- Consult your legal team if you have edge cases or jurisdiction‑specific requirements.

### Input parameters & output format

Example JSON input
```json
{
  "startUrls": [
    "https://www.instagram.com/explore/locations/213131048/berlin-germany/",
    "mrbeast",
    "berlin"
    ],
  "maxItems": 50,
  "sessionId": "your_session_id_here",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "dateFilterType": "relative",
  "relativeValue": 14,
  "relativeUnit": "days",
  "absoluteStartDate": "",
  "absoluteEndDate": "",
  "includeEngagement": true,
  "includeVideoMetadata": true
}
````

Parameters

- startUrls (array of strings, required): List of Instagram location URLs, usernames, or keywords. Examples: 'https://www.instagram.com/explore/locations/213131048/berlin-germany/' (URL), 'mrbeast' (username), 'berlin' (keyword). Default: none.
- maxItems (integer, optional): Maximum number of posts to extract (0 for unlimited). Default: 20.
- sessionId (string, optional): Instagram session ID cookie value (required for authentication). Get this from your browser cookies when logged into Instagram. Default: "".
- proxyConfiguration (object, optional): Choose which proxies to use. If Instagram rejects the proxy, a residential proxy will be used as a fallback. Default prefill: {"useApifyProxy": false}.
- dateFilterType (string, optional): Select whether to use absolute date or relative time. Enum: \["absolute","relative"]. Default: "relative".
- absoluteStartDate (string, optional): Start date in YYYY-MM-DD format. Use when dateFilterType = "absolute". Default: "".
- absoluteEndDate (string, optional): End date in YYYY-MM-DD format. Use when dateFilterType = "absolute". Leave empty for current date. Default: "".
- relativeValue (integer, optional): Number of time units for relative date filtering. Use when dateFilterType = "relative". Default: 0.
- relativeUnit (string, optional): Unit of time for relative date. Enum: \["days","weeks","months","years"]. Default: "days".
- includeEngagement (boolean, optional): Whether to include engagement metrics like likes, shares, comments count. Default: true.
- includeVideoMetadata (boolean, optional): Whether to include detailed video metadata like duration, quality, etc. Default: true.

Example JSON output

```json
{
  "type": "post",
  "id": "3761820491792436654",
  "code": "DQ0q85qEs2u",
  "url": "https://www.instagram.com/p/DQ0q85qEs2u/",
  "createdAt": "2025-11-09T10:52:49Z",
  "likeCount": 1,
  "commentCount": 0,
  "caption": "#esmocongress2025 #berlin #dataize",
  "isAvailable": true,
  "isLikeAndViewCountsDisabled": false,
  "isPinned": false,
  "isPaidPartnership": false,
  "isCarousel": true,
  "isVideo": false,
  "owner": {
    "id": "222741818",
    "username": "sihyun_sung_photography",
    "fullName": "",
    "profilePicUrl": "https://instagram.fdac142-1.fna.fbcdn.net/...",
    "isPrivate": false,
    "isVerified": false
  },
  "location": {
    "id": "1681866845218607",
    "name": "Messe Berlin",
    "city": "",
    "lat": 52.503101530657,
    "lng": 13.272066565882
  },
  "video": null,
  "image": {
    "url": "https://scontent.cdninstagram.com/v/t51.82787-15/...",
    "width": 1440,
    "height": 1440
  },
  "audio": null
}
```

Notes:

- Optional fields may be null depending on the media type and source (e.g., video, image, audio, owner, location).
- Hashtags are included as part of caption text; this actor does not perform separate hashtag extraction.
- commentCount is provided; full comment text retrieval is not implemented.

### FAQ

#### Do I need to log in or provide a session ID?

A session ID is optional but recommended. Without it, Instagram may return limited data or redirect searches to login. Providing sessionId often improves reliability for keyword and username discovery in this Instagram location search scraper.

#### Can I use keywords or usernames instead of location URLs?

Yes. You can input location URLs, usernames, or keywords. The actor converts usernames and keyword queries into Instagram place pages, acting like an Instagram place ID finder and Instagram location tag scraper.

#### Does this download images and videos?

The actor returns media URLs (image.url and video.url) in the output JSON. You can download media by fetching those URLs in your own workflow.

#### Can I filter by date or time range?

Yes. Use dateFilterType with either relativeValue + relativeUnit (e.g., last 7 days) or absoluteStartDate/absoluteEndDate for precise windows. Posts outside your timeframe are skipped.

#### How many posts can I scrape?

Set maxItems to control the total number of posts. Use 0 for unlimited. Actual availability depends on Instagram’s place feeds and access conditions.

#### Does it include comments or hashtags?

It returns commentCount and caption text. Hashtags appear within the caption string; full comment text extraction is not implemented.

#### How does proxy fallback work?

If a request is blocked (e.g., 403/429), the actor automatically switches from direct requests to datacenter proxy, then to residential if needed. Once residential works, it stays sticky for subsequent requests, improving stability for your Instagram nearby posts scraper workflows.

#### Is this an Instagram location API alternative?

Yes. It programmatically collects location-based content and metadata from Instagram place pages without relying on a first‑party API, making it a practical Instagram location data scraper alternative.

### Closing thoughts

Built for location-focused social media intelligence, Instagram Location Scraper delivers structured, reliable datasets from Instagram place pages. With smart input detection, timeframe filters, and proxy fallback, it’s ideal for marketers, developers, analysts, and researchers who need location-based content at scale. Integrate the JSON output into your pipelines, automate enrichment, or export to CSV/Excel — and start extracting smarter, geo‑anchored insights today.

# Actor input Schema

## `startUrls` (type: `array`):

List of Instagram location URLs, usernames, or keywords. Examples: 'https://www.instagram.com/explore/locations/213131048/berlin-germany/' (URL), 'mrbeast' (username), 'berlin' (keyword)

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

Maximum number of posts to extract (0 for unlimited)

## `sessionId` (type: `string`):

Instagram session ID cookie value (required for authentication). Get this from your browser cookies when logged into Instagram.

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

Choose which proxies to use. If Instagram rejects the proxy, a residential proxy will be used as a fallback.

## `dateFilterType` (type: `string`):

Select whether to use absolute date or relative time

## `absoluteStartDate` (type: `string`):

Start date in YYYY-MM-DD format. Use this when 'Posts newer than' is set to 'absolute'.

## `absoluteEndDate` (type: `string`):

End date in YYYY-MM-DD format. Use this when 'Posts newer than' is set to 'absolute'. Leave empty for current date.

## `relativeValue` (type: `integer`):

Number of time units. Use this when 'Posts newer than' is set to 'relative'.

## `relativeUnit` (type: `string`):

Unit of time for relative date

## `includeEngagement` (type: `boolean`):

Whether to include engagement metrics like likes, shares, comments count

## `includeVideoMetadata` (type: `boolean`):

Whether to include detailed video metadata like duration, quality, etc.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.instagram.com/explore/locations/213131048/berlin-germany/"
  ],
  "maxItems": 20,
  "sessionId": "",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "dateFilterType": "relative",
  "absoluteStartDate": "",
  "absoluteEndDate": "",
  "relativeValue": 0,
  "relativeUnit": "days",
  "includeEngagement": true,
  "includeVideoMetadata": true
}
```

# 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 = {
    "startUrls": [
        "https://www.instagram.com/explore/locations/213131048/berlin-germany/"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "relativeValue": 0,
    "includeEngagement": true,
    "includeVideoMetadata": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilotapi/instagram-location-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 = {
    "startUrls": ["https://www.instagram.com/explore/locations/213131048/berlin-germany/"],
    "proxyConfiguration": { "useApifyProxy": False },
    "relativeValue": 0,
    "includeEngagement": True,
    "includeVideoMetadata": True,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapepilotapi/instagram-location-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 '{
  "startUrls": [
    "https://www.instagram.com/explore/locations/213131048/berlin-germany/"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "relativeValue": 0,
  "includeEngagement": true,
  "includeVideoMetadata": true
}' |
apify call scrapepilotapi/instagram-location-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Location Scraper",
        "description": "📍 Instagram Location Scraper (instagram-location-scraper) scrapes rich location data from Instagram place pages: place name, address, coordinates, top/recent geotagged posts, captions, hashtags, media URLs, likes & comments. 🚀 Perfect for local SEO, social listening & competitor analysis.",
        "version": "0.1",
        "x-build-id": "33lcaAsULCvNGnczf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapepilotapi~instagram-location-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapepilotapi-instagram-location-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/scrapepilotapi~instagram-location-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapepilotapi-instagram-location-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/scrapepilotapi~instagram-location-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapepilotapi-instagram-location-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Location URLs, Usernames, or Keywords",
                        "type": "array",
                        "description": "List of Instagram location URLs, usernames, or keywords. Examples: 'https://www.instagram.com/explore/locations/213131048/berlin-germany/' (URL), 'mrbeast' (username), 'berlin' (keyword)",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Items",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of posts to extract (0 for unlimited)",
                        "default": 20
                    },
                    "sessionId": {
                        "title": "Instagram Session ID",
                        "type": "string",
                        "description": "Instagram session ID cookie value (required for authentication). Get this from your browser cookies when logged into Instagram.",
                        "default": ""
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Choose which proxies to use. If Instagram rejects the proxy, a residential proxy will be used as a fallback."
                    },
                    "dateFilterType": {
                        "title": "Posts newer than",
                        "enum": [
                            "absolute",
                            "relative"
                        ],
                        "type": "string",
                        "description": "Select whether to use absolute date or relative time",
                        "default": "relative"
                    },
                    "absoluteStartDate": {
                        "title": "Start Date",
                        "pattern": "^(|\\d{4}-\\d{2}-\\d{2})$",
                        "type": "string",
                        "description": "Start date in YYYY-MM-DD format. Use this when 'Posts newer than' is set to 'absolute'.",
                        "default": ""
                    },
                    "absoluteEndDate": {
                        "title": "End Date",
                        "pattern": "^(|\\d{4}-\\d{2}-\\d{2})$",
                        "type": "string",
                        "description": "End date in YYYY-MM-DD format. Use this when 'Posts newer than' is set to 'absolute'. Leave empty for current date.",
                        "default": ""
                    },
                    "relativeValue": {
                        "title": "Relative value",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Number of time units. Use this when 'Posts newer than' is set to 'relative'.",
                        "default": 0
                    },
                    "relativeUnit": {
                        "title": "Time unit",
                        "enum": [
                            "days",
                            "weeks",
                            "months",
                            "years"
                        ],
                        "type": "string",
                        "description": "Unit of time for relative date",
                        "default": "days"
                    },
                    "includeEngagement": {
                        "title": "Include Engagement Metrics",
                        "type": "boolean",
                        "description": "Whether to include engagement metrics like likes, shares, comments count",
                        "default": true
                    },
                    "includeVideoMetadata": {
                        "title": "Include Video Metadata",
                        "type": "boolean",
                        "description": "Whether to include detailed video metadata like duration, quality, etc.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
