# Posh (posh.vip) Events Scraper (`solidcode/posh-vip-scraper`) Actor

\[💰 $3 / 1K] Extract events from Posh (posh.vip) — title, schedule, venue, GPS, ticket pricing tiers, fees, lineup, and attendance. Paste event, organizer, or explore URLs, or run search queries. Pull organizer profiles with contact email, website, and socials for lead gen.

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

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. 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

## Posh (posh.vip) Events Scraper

Pull nightlife and live-event data from Posh (posh.vip) at scale — club nights, day parties, and rooftop events with full schedules, GPS-located venues, per-tier ticket pricing, lineups, live attendance counts, and organizer contact profiles. Run free-text searches like "Miami techno" or paste event, organizer, and explore URLs, then export clean event rows and lead-ready promoter profiles side by side. Built for event marketers, nightlife promoters, ticketing analysts, and lead-gen teams who need structured Posh event and organizer data without copying it off the site one page at a time.

### Why This Scraper?

- **GPS coordinates on every venue** — exact `latitude` and `longitude` plus the parsed street, city, region, and country, so every event drops straight onto a map.
- **Full ticket-tier breakdown** — each tier's name, base `price`, and total price *including booking fees*, with availability and sold-out flags, rolled up into `lowestPrice` / `highestPrice` per event.
- **Live attendance, not estimates** — real `attendeeCount` from total tickets sold, plus RSVP counts pulled live per event.
- **Organizer lead-gen profiles** — verified contact email, `website`, Instagram, Twitter/X, and TikTok handles for the promoter behind each event, with lifetime `totalAttendees` and a verified-badge flag.
- **Two record types in one run** — `event` rows and `organizer` profiles from the same search, discriminated by a `recordType` field for clean downstream filtering.
- **3 sort modes** — pull the feed by Trending, Newest, or Largest (most popular), with free-vs-paid and in-person-vs-online filters layered on top.
- **City-scoped, date-windowed search** — auto-geocodes a city name and filters to an exact `dateFrom`–`dateTo` window so you only get the events you asked for.
- **Lineup and performer data** — the full artist `lineup` per event for music and nightlife coverage.

### Use Cases

**Event Discovery & Aggregation**
- Build a city-by-city calendar of upcoming club nights and day parties
- Surface trending and newest events in any market with one search
- Map every venue on screen using built-in latitude/longitude

**Lead Generation**
- Collect verified contact emails for event promoters and party brands
- Pull organizer Instagram, TikTok, and website handles for outreach lists
- Rank promoters by lifetime attendee totals to prioritize top accounts

**Market & Pricing Research**
- Benchmark ticket prices across tiers, cities, and event types
- Track free-vs-paid mix and sold-out rates in a nightlife market
- Monitor which lineups and artists are drawing the largest crowds

**Competitive Analysis**
- Watch a rival promoter's full event history from their organizer page
- Compare attendance counts event-over-event across competing brands
- Spot new entrants by sorting a city feed by Newest

### Getting Started

#### Simple Search

One free-text query, scoped to a city:

```json
{
    "searchQueries": ["techno"],
    "location": "Miami",
    "maxResults": 50
}
````

#### Filtered Search (paid, in-person, date window)

Paid in-person events in a specific date range, ranked by popularity:

```json
{
    "searchQueries": ["rooftop party"],
    "location": "New York",
    "dateFrom": "2026-07-01",
    "dateTo": "2026-07-31",
    "eventType": "in_person",
    "pricing": "paid",
    "sort": "largest",
    "maxResults": 200
}
```

#### Organizer Lead-Gen (from URLs)

Pull events plus full organizer contact profiles from a mix of explore and group URLs:

```json
{
    "startUrls": [
        "https://posh.vip/explore",
        "https://posh.vip/g/southhouse"
    ],
    "scrapeOrganizers": true,
    "scrapeEventDetails": true,
    "maxResults": 100
}
```

### Input Reference

#### Sources

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | array | `["https://posh.vip/explore"]` | One or more posh.vip URLs. Accepts direct event pages, organizer/group pages, and explore/discover/search URLs. Mix any types in one list — each event is returned only once. |
| `searchQueries` | array | `[]` | Free-text queries run against Posh discover/explore (e.g. "Miami techno", "NYC rooftop", "LA day party"). Each query runs independently. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `location` | string | null | Restrict searches to a city or area (e.g. "Miami", "New York", "Los Angeles"). Auto-geocoded. Leave empty to search broadly. |
| `dateFrom` | string | null | Only include events starting on or after this date (YYYY-MM-DD). Leave empty for no lower bound. |
| `dateTo` | string | null | Only include events starting on or before this date (YYYY-MM-DD). Leave empty for no upper bound. |
| `eventType` | string | `"All"` | Filter by attendance mode: **All**, **In-person only**, or **Online only**. |
| `pricing` | string | `"All"` | Filter by price: **All**, **Free only**, or **Paid only**. |
| `sort` | string | `"Trending"` | Order events are pulled from the feed: **Trending**, **Newest**, or **Largest (most popular)**. |

#### Output

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `scrapeEventDetails` | boolean | `true` | Fetch the full event payload — description, ticket tiers and fees, lineup, venue, and organizer. Turn off for faster, lighter runs that return only listing-level fields. |
| `scrapeOrganizers` | boolean | `false` | Also return organizer/group profile records — contact email, website, social handles, verification status, total attendees, and event count. Ideal for lead generation. |
| `maxResults` | integer | `100` | Maximum number of events to return across all sources. Set to `0` for no cap. |

### Output

Every row carries a `recordType` field — `event` or `organizer` — so you can filter the two cleanly downstream.

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

```json
{
    "recordType": "event",
    "eventId": "6620a1f4c3b2e90012ab34cd",
    "title": "Rooftop Sunset Sessions",
    "url": "https://posh.vip/e/rooftop-sunset-sessions",
    "status": "EventScheduled",
    "startTime": "2026-07-12T23:00:00.000Z",
    "endTime": "2026-07-13T04:00:00.000Z",
    "timezone": "America/New_York",
    "description": "An open-air evening of house and disco with skyline views.",
    "coverImage": "https://posh.vip/cdn/flyers/rooftop-sunset.jpg",
    "venueName": "The Crown Rooftop",
    "address": "255 Randolph St, Brooklyn, NY 11237, USA",
    "city": "Brooklyn",
    "region": "NY",
    "country": "USA",
    "latitude": 40.7051,
    "longitude": -73.9229,
    "isOnline": false,
    "lowestPrice": 25.0,
    "highestPrice": 75.0,
    "currency": "USD",
    "isFree": false,
    "isSoldOut": false,
    "ticketTiers": [
        {"name": "General Admission", "price": 25.0, "totalPrice": 28.5, "priceHidden": false, "isAvailable": true, "quantityAvailable": 120, "soldOut": false},
        {"name": "VIP Table", "price": 75.0, "totalPrice": 84.0, "priceHidden": false, "isAvailable": true, "quantityAvailable": 8, "soldOut": false}
    ],
    "rsvpCount": 342,
    "attendeeCount": 410,
    "guestlistAvailable": true,
    "lineup": ["DJ Aria", "Marcus Vela"],
    "organizerName": "South House",
    "organizerUrl": "https://posh.vip/g/southhouse",
    "organizerVerified": true,
    "scrapedAt": "2026-06-13T18:04:22.118Z"
}
```

##### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `"event"` |
| `eventId` | string | Posh event identifier |
| `title` | string | Event title |
| `url` | string | Canonical posh.vip event URL |
| `status` | string | Event status (e.g. `EventScheduled`) |
| `startTime` | string | Start datetime (ISO 8601, UTC) |
| `endTime` | string | End datetime (ISO 8601, UTC) |
| `timezone` | string | Event timezone (e.g. `America/New_York`) |
| `description` | string | Full event description (detail mode) |
| `coverImage` | string | Cover flyer image URL |
| `mediaUrls` | array | Additional media/video URLs |
| `scrapedAt` | string | Capture timestamp (ISO 8601) |

##### Venue & Location

| Field | Type | Description |
|-------|------|-------------|
| `venueName` | string | Venue name |
| `address` | string | Full venue street address |
| `city` | string | Venue city |
| `region` | string | State or region |
| `country` | string | Country |
| `latitude` | number | Venue latitude |
| `longitude` | number | Venue longitude |
| `isOnline` | boolean | Whether the event is virtual/online |

##### Tickets & Attendance

| Field | Type | Description |
|-------|------|-------------|
| `lowestPrice` | number | Lowest ticket price across tiers |
| `highestPrice` | number | Highest ticket price across tiers |
| `currency` | string | Ticket currency (e.g. `USD`) |
| `isFree` | boolean | Whether the event is free |
| `isSoldOut` | boolean | Whether all tiers are sold out |
| `ticketTiers` | array | Per-tier `name`, `price`, `totalPrice` (with fees), availability, and sold-out flag |
| `fees` | array | Service/processing fee details |
| `rsvpCount` | number | RSVP / interested count |
| `attendeeCount` | number | Total tickets sold for the event |
| `guestlistAvailable` | boolean | Whether a guestlist option exists |
| `lineup` | array | Performers / artists on the bill |

##### Organizer Reference

| Field | Type | Description |
|-------|------|-------------|
| `organizerId` | string | Organizer/group id (links to the organizer record) |
| `organizerName` | string | Organizer/group display name |
| `organizerUrl` | string | Organizer/group profile URL |
| `organizerVerified` | boolean | Whether the organizer carries a verified badge |

#### Organizer (`recordType: "organizer"`)

Emitted only when `scrapeOrganizers: true`.

```json
{
    "recordType": "organizer",
    "organizerId": "65f0c1a2b3d4e50012990011",
    "name": "South House",
    "url": "https://posh.vip/g/southhouse",
    "bio": "Brooklyn rooftop & warehouse parties. House, disco, and good people.",
    "avatar": "https://posh.vip/cdn/avatars/southhouse.jpg",
    "verified": true,
    "contactEmail": "bookings@southhouse.nyc",
    "website": "https://southhouse.nyc",
    "instagram": "https://instagram.com/southhouse",
    "twitter": "https://x.com/southhouse",
    "tiktok": "https://tiktok.com/@southhouse",
    "socialLinks": ["https://soundcloud.com/southhouse"],
    "totalAttendees": 18420,
    "eventCount": 27,
    "scrapedAt": "2026-06-13T18:04:25.402Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `"organizer"` |
| `organizerId` | string | Organizer/group id |
| `name` | string | Organizer/group display name |
| `url` | string | Profile URL |
| `bio` | string | Profile bio |
| `avatar` | string | Avatar image URL |
| `verified` | boolean | Whether the organizer carries a verified badge |
| `contactEmail` | string | Public contact email (lead-gen) |
| `website` | string | Website URL |
| `instagram` | string | Instagram URL/handle |
| `twitter` | string | Twitter/X URL/handle |
| `tiktok` | string | TikTok URL/handle |
| `socialLinks` | array | Any other social or external links |
| `totalAttendees` | number | Lifetime attendees across the organizer's events |
| `eventCount` | number | Number of events hosted |
| `scrapedAt` | string | Capture timestamp (ISO 8601) |

### Tips for Best Results

- **Set a `location` to focus your search.** A search term alone anchors on New York (Posh's largest market). Add a city like "Miami" or "Los Angeles" to scope results to the market you actually want.
- **Keep `scrapeEventDetails` on for pricing and attendance.** Ticket-tier prices, booking fees, live tickets-sold counts, and the in-person/online classification all come from the full event payload — turning it off returns listing-level fields only.
- **Turn on `scrapeOrganizers` for outreach lists.** This adds a separate `organizer` row per promoter with contact email, website, and social handles — exactly the fields a lead list needs.
- **Pick the sort that matches your goal.** Use **Largest (most popular)** for top-drawing events, **Newest** to catch just-announced parties, and **Trending** for what's hot right now.
- **Use the date window to cut noise.** A tight `dateFrom`–`dateTo` range strips out events outside the period you care about, so you're not paying for rows you'll discard. If a filter (date range, online-only, or free/paid) matches very few events in a market, the search stops after about 15 pages without new matches and tells you which filters were active — widen the range or location to pull more.
- **Paste an organizer URL to pull their whole catalog.** A `https://posh.vip/g/<name>` URL returns that promoter's full event history in one pass — ideal for competitive tracking.
- **Mix URLs and search queries freely.** You can combine explore feeds, specific event links, organizer pages, and free-text searches in a single run, and overlapping events are de-duplicated automatically.

### Pricing

**From $3.00 per 1,000 results** — undercuts comparable Posh extractors while bundling GPS venues, full ticket-tier pricing, live attendance, and organizer contact profiles at no extra charge. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |

A "result" is any row in the output dataset — both `event` rows and `organizer` rows count the same. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

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

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

### Legal & Ethical Use

This actor is designed for legitimate event discovery, market research, and business development. Users are responsible for complying with applicable laws and Posh's terms of service, including making reasonable-rate requests and respecting how any extracted data — particularly organizer contact details — is used. Handle personal and contact information in line with applicable privacy regulations, and do not use extracted data for spam, harassment, or any illegal purpose.

# Actor input Schema

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

Paste one or more posh.vip URLs. Accepts direct event pages, organizer/group pages, and explore/discover/search URLs. Mix any types in one list. If sources overlap, each event is returned only once.

## `searchQueries` (type: `array`):

Free-text queries run against Posh discover/explore (e.g. 'Miami techno', 'NYC rooftop', 'LA day party'). Each query runs independently. Leave empty if you only want to use URLs above.

## `location` (type: `string`):

Optional. When set, search queries above are scoped to this city or area (e.g. 'Miami', 'New York', 'Los Angeles'). Leave empty to search broadly.

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

Only include events starting on or after this date (YYYY-MM-DD). Leave empty for no lower bound. If a date range matches very few events, the search stops after about 15 pages without new matches — widen the range to see more.

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

Only include events starting on or before this date (YYYY-MM-DD). Leave empty for no upper bound. If a date range matches very few events, the search stops after about 15 pages without new matches — widen the range to see more.

## `eventType` (type: `string`):

Filter by in-person vs online events. Online filtering inspects each event's detail page, so if very few online events exist in a market the search stops after about 15 pages without new matches — most Posh events are in-person.

## `pricing` (type: `string`):

Filter by free vs paid events. If very few events match the chosen pricing in a market, the search stops after about 15 pages without new matches — broaden the pricing or location to see more.

## `sort` (type: `string`):

Order in which events are pulled from the discover feed.

## `scrapeEventDetails` (type: `boolean`):

Fetch the full event payload for each result — description, ticket tiers and fees, lineup, venue, and organizer. Turn off for faster, lighter runs that return only listing-level fields.

## `scrapeOrganizers` (type: `boolean`):

Also return organizer/group profile records for the events found — contact email, website, social handles, verification status, total attendees, and event count. Useful for lead generation.

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

Maximum number of events to return across all sources. Set to 0 for no cap.

## Actor input object example

```json
{
  "startUrls": [
    "https://posh.vip/explore"
  ],
  "searchQueries": [],
  "eventType": "all",
  "pricing": "all",
  "sort": "trending",
  "scrapeEventDetails": true,
  "scrapeOrganizers": false,
  "maxResults": 100
}
```

# Actor output Schema

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

Table of scraped events with key fields.

## `venues` (type: `string`):

Venue and geo details for each event.

## `organizers` (type: `string`):

Organizer/group profiles with contact and social details.

# 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://posh.vip/explore"
    ],
    "searchQueries": [],
    "eventType": "all",
    "pricing": "all",
    "sort": "trending",
    "scrapeEventDetails": true,
    "scrapeOrganizers": false,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/posh-vip-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://posh.vip/explore"],
    "searchQueries": [],
    "eventType": "all",
    "pricing": "all",
    "sort": "trending",
    "scrapeEventDetails": True,
    "scrapeOrganizers": False,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/posh-vip-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://posh.vip/explore"
  ],
  "searchQueries": [],
  "eventType": "all",
  "pricing": "all",
  "sort": "trending",
  "scrapeEventDetails": true,
  "scrapeOrganizers": false,
  "maxResults": 100
}' |
apify call solidcode/posh-vip-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Posh (posh.vip) Events Scraper",
        "description": "[💰 $3 / 1K] Extract events from Posh (posh.vip) — title, schedule, venue, GPS, ticket pricing tiers, fees, lineup, and attendance. Paste event, organizer, or explore URLs, or run search queries. Pull organizer profiles with contact email, website, and socials for lead gen.",
        "version": "1.0",
        "x-build-id": "GcB5lmBV33KlkWcay"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~posh-vip-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-posh-vip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~posh-vip-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-posh-vip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~posh-vip-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-posh-vip-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Posh URLs",
                        "type": "array",
                        "description": "Paste one or more posh.vip URLs. Accepts direct event pages, organizer/group pages, and explore/discover/search URLs. Mix any types in one list. If sources overlap, each event is returned only once.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQueries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Free-text queries run against Posh discover/explore (e.g. 'Miami techno', 'NYC rooftop', 'LA day party'). Each query runs independently. Leave empty if you only want to use URLs above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Restrict Search to a Location",
                        "type": "string",
                        "description": "Optional. When set, search queries above are scoped to this city or area (e.g. 'Miami', 'New York', 'Los Angeles'). Leave empty to search broadly."
                    },
                    "dateFrom": {
                        "title": "Earliest event date",
                        "type": "string",
                        "description": "Only include events starting on or after this date (YYYY-MM-DD). Leave empty for no lower bound. If a date range matches very few events, the search stops after about 15 pages without new matches — widen the range to see more."
                    },
                    "dateTo": {
                        "title": "Latest event date",
                        "type": "string",
                        "description": "Only include events starting on or before this date (YYYY-MM-DD). Leave empty for no upper bound. If a date range matches very few events, the search stops after about 15 pages without new matches — widen the range to see more."
                    },
                    "eventType": {
                        "title": "Event type",
                        "enum": [
                            "all",
                            "in_person",
                            "online"
                        ],
                        "type": "string",
                        "description": "Filter by in-person vs online events. Online filtering inspects each event's detail page, so if very few online events exist in a market the search stops after about 15 pages without new matches — most Posh events are in-person.",
                        "default": "all"
                    },
                    "pricing": {
                        "title": "Pricing",
                        "enum": [
                            "all",
                            "free",
                            "paid"
                        ],
                        "type": "string",
                        "description": "Filter by free vs paid events. If very few events match the chosen pricing in a market, the search stops after about 15 pages without new matches — broaden the pricing or location to see more.",
                        "default": "all"
                    },
                    "sort": {
                        "title": "Sort results by",
                        "enum": [
                            "trending",
                            "newest",
                            "largest"
                        ],
                        "type": "string",
                        "description": "Order in which events are pulled from the discover feed.",
                        "default": "trending"
                    },
                    "scrapeEventDetails": {
                        "title": "Include full event details",
                        "type": "boolean",
                        "description": "Fetch the full event payload for each result — description, ticket tiers and fees, lineup, venue, and organizer. Turn off for faster, lighter runs that return only listing-level fields.",
                        "default": true
                    },
                    "scrapeOrganizers": {
                        "title": "Include organizer profiles",
                        "type": "boolean",
                        "description": "Also return organizer/group profile records for the events found — contact email, website, social handles, verification status, total attendees, and event count. Useful for lead generation.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Maximum events",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of events to return across all sources. Set to 0 for no cap.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
