{
  "data": {
    "id": "cuKxsoljlR97VIqrd",
    "actId": "FdMoiJCc2SsI8M9PA",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-01T13:33:46.910Z",
    "finishedAt": "2026-11-01T13:33:58.379Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 11412,
      "runTimeSecs": 11.412,
      "computeUnits": 0.01268,
      "imageSizeBytes": 364144128
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Eventbrite Scraper Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"startUrls\": {\n      \"title\": \"Start URLs\",\n      \"type\": \"array\",\n      \"description\": \"Eventbrite browse URLs (e.g. https://www.eventbrite.com/d/ny--new-york/all-events/), direct event URLs (/e/...), or organizer URLs (/o/...). Accepts URL strings and {\\\"url\\\": ...} objects. When set, this wins over the filter fields.\",\n      \"editor\": \"requestListSources\",\n      \"default\": [],\n      \"prefill\": [\n        {\n          \"url\": \"https://www.eventbrite.com/d/united-states/all-events/\"\n        }\n      ],\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"url\": {\n            \"title\": \"URL\",\n            \"type\": \"string\",\n            \"description\": \"Page URL to scrape.\"\n          }\n        }\n      }\n    },\n    \"location\": {\n      \"title\": \"Location (legacy)\",\n      \"type\": \"string\",\n      \"description\": \"Legacy city/region slug used when startUrls and locations are empty, e.g. ny--new-york, ca--san-francisco, united-states, online. Blank defaults to united-states.\",\n      \"editor\": \"textfield\"\n    },\n    \"category\": {\n      \"title\": \"Category (legacy keyword)\",\n      \"type\": \"string\",\n      \"description\": \"Legacy category slug such as music, business, food-and-drink, sports. Kept for backward compatibility: when used alone it runs as a keyword query, matching the old category URL behaviour. Use 'categories' for exact taxonomy filtering.\",\n      \"editor\": \"textfield\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max Items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of unique events to return across all queries. The source caps each query at 1,000 events; above 1,000 the actor splits by date, category, price, and online coverage, or scans the event sitemap when useSitemap is enabled.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 50,\n      \"prefill\": 3\n    },\n    \"keywords\": {\n      \"title\": \"Keywords\",\n      \"type\": \"array\",\n      \"description\": \"Keyword queries (q). Each value is a separate query slice; results are deduplicated by event ID.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"locations\": {\n      \"title\": \"Locations\",\n      \"type\": \"array\",\n      \"description\": \"City, region, or place IDs, e.g. ny--new-york, london, united-kingdom--london, 85977539. Multiple locations run as separate queries and are deduplicated.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"country\": {\n      \"title\": \"Country\",\n      \"type\": \"string\",\n      \"description\": \"Country filter. Combined with locations when possible; use any to leave it open.\",\n      \"editor\": \"select\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"US\",\n        \"GB\",\n        \"DE\",\n        \"CA\",\n        \"AU\",\n        \"FR\",\n        \"ES\",\n        \"IT\",\n        \"NL\",\n        \"IE\",\n        \"NZ\",\n        \"IN\",\n        \"BR\",\n        \"MX\",\n        \"JP\",\n        \"SG\",\n        \"ZA\",\n        \"AE\"\n      ],\n      \"enumTitles\": [\n        \"Any country\",\n        \"United States\",\n        \"United Kingdom\",\n        \"Germany\",\n        \"Canada\",\n        \"Australia\",\n        \"France\",\n        \"Spain\",\n        \"Italy\",\n        \"Netherlands\",\n        \"Ireland\",\n        \"New Zealand\",\n        \"India\",\n        \"Brazil\",\n        \"Mexico\",\n        \"Japan\",\n        \"Singapore\",\n        \"South Africa\",\n        \"United Arab Emirates\"\n      ]\n    },\n    \"categories\": {\n      \"title\": \"Exact categories\",\n      \"type\": \"array\",\n      \"description\": \"Exact EventbriteCategory filters. Accepts display names, numeric IDs, or EventbriteCategory/<id>. Captured catalog: Business & Professional (101), Science & Technology (102), Music (103), Film, Media & Entertainment (104), Performing & Visual Arts (105), Fashion & Beauty (106), Health & Wellness (107), Sports & Fitness (108), Travel & Outdoor (109), Food & Drink (110), Charity & Causes (111), Community & Culture (113), Religion & Spirituality (114), Family & Education (115), Seasonal & Holiday (116), Home & Lifestyle (117), Auto, Boat & Air (118), Hobbies & Special Interest (119), School Activities (120), Other (199). Unknown values are skipped with a warning.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"format\": {\n      \"title\": \"Format\",\n      \"type\": \"string\",\n      \"description\": \"Exact EventbriteFormat filter. Accepts the display name or an EventbriteFormat/<id> value.\",\n      \"editor\": \"select\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"Conference\",\n        \"Seminar or Talk\",\n        \"Tradeshow, Consumer Show, or Expo\",\n        \"Convention\",\n        \"Festival or Fair\",\n        \"Concert or Performance\",\n        \"Screening\",\n        \"Dinner or Gala\",\n        \"Class, Training, or Workshop\",\n        \"Meeting or Networking Event\",\n        \"Party or Social Gathering\",\n        \"Tournament\",\n        \"Game or Competition\",\n        \"Tour\",\n        \"Attraction\",\n        \"Appearance or Signing\",\n        \"Other\"\n      ],\n      \"enumTitles\": [\n        \"Any format\",\n        \"Conference\",\n        \"Seminar or Talk\",\n        \"Tradeshow, Consumer Show, or Expo\",\n        \"Convention\",\n        \"Festival or Fair\",\n        \"Concert or Performance\",\n        \"Screening\",\n        \"Dinner or Gala\",\n        \"Class, Training, or Workshop\",\n        \"Meeting or Networking Event\",\n        \"Party or Social Gathering\",\n        \"Tournament\",\n        \"Game or Competition\",\n        \"Tour\",\n        \"Attraction\",\n        \"Appearance or Signing\",\n        \"Other\"\n      ]\n    },\n    \"datePreset\": {\n      \"title\": \"Date preset\",\n      \"type\": \"string\",\n      \"description\": \"Date window. today and tomorrow use the browse page; the other presets use the search API. custom requires dateFrom and dateTo.\",\n      \"editor\": \"select\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"today\",\n        \"tomorrow\",\n        \"this_week\",\n        \"this_weekend\",\n        \"next_week\",\n        \"this_month\",\n        \"next_month\",\n        \"custom\"\n      ],\n      \"enumTitles\": [\n        \"Any date\",\n        \"Today\",\n        \"Tomorrow\",\n        \"This week\",\n        \"This weekend\",\n        \"Next week\",\n        \"This month\",\n        \"Next month\",\n        \"Custom range\"\n      ]\n    },\n    \"dateFrom\": {\n      \"title\": \"Date from\",\n      \"type\": \"string\",\n      \"description\": \"Start date (YYYY-MM-DD). Used only with datePreset=custom.\",\n      \"editor\": \"datepicker\"\n    },\n    \"dateTo\": {\n      \"title\": \"Date to\",\n      \"type\": \"string\",\n      \"description\": \"End date (YYYY-MM-DD). Used only with datePreset=custom.\",\n      \"editor\": \"datepicker\"\n    },\n    \"priceFilter\": {\n      \"title\": \"Price\",\n      \"type\": \"string\",\n      \"description\": \"Free or paid events. Uses the search API's price filter and is checked again client-side.\",\n      \"editor\": \"select\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"free\",\n        \"paid\"\n      ],\n      \"enumTitles\": [\n        \"Any price\",\n        \"Free only\",\n        \"Paid only\"\n      ]\n    },\n    \"eventType\": {\n      \"title\": \"Event type\",\n      \"type\": \"string\",\n      \"description\": \"Any, in-person, or online. Online uses online_events_only without a place filter; in-person removes online events client-side.\",\n      \"editor\": \"select\",\n      \"default\": \"any\",\n      \"enum\": [\n        \"any\",\n        \"in_person\",\n        \"online\"\n      ],\n      \"enumTitles\": [\n        \"Any type\",\n        \"In person\",\n        \"Online\"\n      ]\n    },\n    \"sort\": {\n      \"title\": \"Sort\",\n      \"type\": \"string\",\n      \"description\": \"Relevance keeps Eventbrite's default order. date is experimental and ascending only: it sends event_search.sort=date and forces the search API path. Ordering is by start date; same-day times may vary. Descending order is not supported.\",\n      \"editor\": \"select\",\n      \"default\": \"relevance\",\n      \"enum\": [\n        \"relevance\",\n        \"date\"\n      ],\n      \"enumTitles\": [\n        \"Relevance (default)\",\n        \"Date (experimental, ascending)\"\n      ]\n    },\n    \"organizerMode\": {\n      \"title\": \"Organizer mode\",\n      \"type\": \"boolean\",\n      \"description\": \"Add organizer profile metrics and social links from the organizer page. Also implied by organizer URLs in startUrls. Records stay event records.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeDetails\": {\n      \"title\": \"Include details\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch the event detail page and public event API for description, ticket classes, refunds, age, door time, UTC times, duration, series counts, and the conditional Facebook event ID. Adds one or two requests per event.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"useSitemap\": {\n      \"title\": \"Broad sitemap discovery\",\n      \"type\": \"boolean\",\n      \"description\": \"Only for runs above 1,000. Scan Eventbrite's event sitemaps (about 201,000 event IDs) and hydrate in batches instead of splitting search queries. Filters are applied client-side. Ignored with startUrls or maxItems <= 1,000.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional. Never required. The actor works from a datacenter IP by default; an AUTO proxy is supported. No residential proxy or login is used.\",\n      \"editor\": \"proxy\"\n    }\n  },\n  \"required\": []\n}",
    "readme": "# Eventbrite Event Finder with Venue Geocoordinates\n\nFind public Eventbrite events by browse URL, keyword, city, country, category, format, date window, price, or online/in-person status. Each event record includes local and UTC times, venue address and geocoordinates, images, taxonomy, organizer profile, ticket pricing and availability, and — with `includeDetails` — descriptions, ticket classes, refunds, age restrictions, and series data.\n\nThe actor is cookieless: no account, login, user cookie, or proxy setup is required. It reads only publicly accessible Eventbrite pages and never visits checkout.\n\n## What this actor does\n\n- **Flexible discovery:** start from Eventbrite browse, event, or organizer URLs, or search by keyword, city, region, place ID, and country.\n- **Precise filters:** exact Eventbrite categories and formats, date presets or a custom date range, free/paid, in-person/online, and relevance or date ordering.\n- **Venue detail:** full street address, city, region, country, postal code, geocoordinates, and the Eventbrite place hierarchy.\n- **Optional enrichment:** ticket prices, availability and sales status, organizer profile and social links, series counts, and full descriptions, refunds, FAQs, age limits, and door times.\n- **Empty fields are omitted:** records never contain `null`, blank strings, empty lists or objects, `0,0` coordinates, or NaN.\n\n## Output per event\n\nRecords are **omit-empty**. If Eventbrite does not supply a value, that field is absent. Real `false` and `0` values are kept, so `isFree: false` and a free `priceMin: 0` are preserved.\n\n- `id`, `eid`, `recordType`, `sourceUrl` — event identity and provenance; `recordType` is always `event`.\n- `name`, `summary`, `url`, `ticketsUrl` — event title, short summary (capped at 1,000 characters), canonical page URL, and stored checkout URL.\n- `startDate`, `startTime`, `endDate`, `endTime`, `timezone` — local dates, local `HH:MM` times, and the IANA timezone.\n- `startUtc`, `endUtc`, `durationInMinutes` — ISO 8601 UTC timestamps and duration; duration requires `includeDetails`.\n- `isOnline`, `isCancelled`, `isProtected`, `status`, `publishedAt`, `createdAt`, `changedAt`, `privacySetting`, `isListed`, `isShareable`, `locationType` — status and visibility flags.\n- `venueName`, `venueAddress`, `venueAddressLine1`, `venueAddressLine2`, `venueCity`, `venueRegion`, `venueCountry`, `venuePostalCode`, `latitude`, `longitude` — venue name and full postal address with geocoordinates.\n- `locationHierarchy[]` — Eventbrite place hierarchy, with `type` and `name` for each level.\n- `imageUrl`, `gallery[]`, `imageSizesLarge` — primary image, image gallery in descending quality, and the large variant when it is not already in the gallery.\n- `category`, `categoryId`, `subcategory`, `subcategoryId`, `format`, `formatId`, `tags[]` — taxonomy display names and IDs; `tags` holds organizer keyword tags.\n- `primaryOrganizerId`, `organizerName`, `organizerUrl`, `organizerFollowers`, `organizerSummary`, `organizerWebsite`, `organizerTwitter`, `organizerFacebook`, `organizerInstagram`, `organizerX`, `organizerTikTok`, `organizerImageUrl` — organizer profile and social links.\n- `organizerTotalEvents`, `organizerHostingYears`, `organizerAttendeesHosted`, `organizerVerified`, `organizerUpcomingTotal` — organizer metrics; `organizerMode` only.\n- `isFree`, `isSoldOut`, `hasAvailableTickets`, `hasBogoTickets`, `priceMin`, `priceMax`, `priceCurrency`, `priceDisplay`, `salesStatus`, `salesStartUtc`, `salesEndUtc`, `salesMessage`, `waitlistAvailable`, `ticketsBy` — ticket pricing, availability, and sales windows.\n- `ticketClasses[]` — ticket classes with `id`, `name`, `description`, `price`, `fee`, `tax`, `currency`, `isFree`, `includeFee`, `deliveryMethods[]`, `hasPdfTicket`, `minQuantity`, `maxQuantity`, `onSaleStatus`, `category`, and `salesChannels[]`; requires `includeDetails`.\n- `descriptionHtml`, `ageRestriction`, `doorTime`, `refundPolicy`, `faqs[]`, `inventoryType`, `isReservedSeating`, `facebookEventId` — detail-page enrichment; requires `includeDetails`. `refundPolicy` includes `policyType`, `isRefundAllowed`, `validDays`, and `refundRequestOrganizer`; each FAQ has `question` and `answer`.\n- `seriesId`, `isSeries`, `numChildren` — series membership and, when expanded from a parent event URL, the exact number of child events.\n- `urgencySignals[]`, `language`, `scrapedAt` — Eventbrite demand messages, listing language, and the UTC timestamp when the run started.\n\nDates are local to the event; UTC fields use ISO 8601 with `Z`. Prices are decimal major units with an ISO 4217 currency, including zero-decimal currencies such as JPY and three-decimal currencies such as KWD. Image URLs are signed Eventbrite CDN links and are left unchanged.\n\n## Input\n\nNo field is required. With an empty input, the actor browses all United States events and returns up to 50 records.\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `startUrls` | array of `{url}` | `[]` (prefill: US all-events) | Eventbrite browse (`/d/...`), event (`/e/...`), or organizer (`/o/...`) URLs. Plain URL strings and `{\"url\": ...}` objects are both accepted. When set, this wins over the filter fields. |\n| `location` | string | – | Legacy city/region slug used when `startUrls` and `locations` are empty, e.g. `ny--new-york` or `united-states`. Blank means `united-states`. |\n| `category` | string | – | Legacy category slug. Used alone, it runs as a keyword query for backward compatibility. Use `categories` for exact taxonomy filtering. |\n| `maxItems` | integer | `50` (prefill `3`) | Maximum unique events across all queries, 1–10,000. |\n| `keywords` | array of strings | `[]` | Keyword queries. Each value runs as a separate slice and results are deduplicated by event ID. |\n| `locations` | array of strings | `[]` | City, region, or place IDs, e.g. `ny--new-york`, `london`, or `85977539`. Multiple values run separately and are deduplicated. |\n| `country` | select | `any` | ISO country filter, combined with locations when possible. |\n| `categories` | array of strings | `[]` | Exact Eventbrite category names or IDs. Unknown values are skipped with a warning. |\n| `format` | select | `any` | Exact Eventbrite format. |\n| `datePreset` | select | `any` | `any`, `today`, `tomorrow`, `this_week`, `this_weekend`, `next_week`, `this_month`, `next_month`, or `custom`. |\n| `dateFrom` | date | – | Start date in `YYYY-MM-DD`; used only with `datePreset=custom`. |\n| `dateTo` | date | – | End date in `YYYY-MM-DD`; used only with `datePreset=custom`. |\n| `priceFilter` | select | `any` | `any`, `free`, or `paid`. |\n| `eventType` | select | `any` | `any`, `in_person`, or `online`. |\n| `sort` | select | `relevance` | `relevance` keeps Eventbrite's default order. `date` is experimental and ascending only. |\n| `organizerMode` | boolean | `false` | Adds organizer metrics and social links from the organizer page. Organizer URLs imply it. Records stay event records. |\n| `includeDetails` | boolean | `false` | Adds description, ticket classes, refunds, age, door time, duration, inventory flags, exact series counts, and the conditional Facebook event ID. Slower than the default run. |\n| `useSitemap` | boolean | `false` | For runs above 1,000 only. Reads Eventbrite's event sitemaps and matches events instead of splitting search queries. Filters are applied after collection. Ignored with `startUrls` or `maxItems` ≤ 1,000. |\n| `proxyConfiguration` | object | – | Optional. The actor works without a proxy; an Apify `AUTO` proxy is supported. Never required. |\n\n### Example: browse all upcoming US events\n\n```json\n{\n  \"startUrls\": [\n    { \"url\": \"https://www.eventbrite.com/d/united-states/all-events/\" }\n  ],\n  \"maxItems\": 50\n}\n```\n\n### Example: keyword search in a city\n\n```json\n{\n  \"keywords\": [\"jazz\"],\n  \"locations\": [\"ny--new-york\"],\n  \"maxItems\": 100\n}\n```\n\n### Example: exact category, format, and custom date range\n\n```json\n{\n  \"locations\": [\"london\"],\n  \"country\": \"GB\",\n  \"categories\": [\"Music\"],\n  \"format\": \"Concert or Performance\",\n  \"datePreset\": \"custom\",\n  \"dateFrom\": \"2026-12-01\",\n  \"dateTo\": \"2026-12-31\",\n  \"maxItems\": 200\n}\n```\n\n### Example: direct event URL with full details\n\n```json\n{\n  \"startUrls\": [\n    { \"url\": \"https://www.eventbrite.com/e/example-event-tickets-127257012149\" }\n  ],\n  \"includeDetails\": true,\n  \"maxItems\": 1\n}\n```\n\n## Use cases\n\n- **Event discovery sites and local guides** — build city, category, or date-focused event calendars.\n- **Venue and travel planning** — map events by address and geocoordinates for visitors and transportation teams.\n- **Market and competitive research** — compare event calendars, pricing, formats, and organizers across markets.\n- **Sponsorship and vendor prospecting** — find events and organizers that match a target audience or industry.\n- **Newsletters and local media** — pull upcoming events for weekly roundups and community listings.\n- **Civic and academic research** — study public event activity by place, category, price, and date.\n\n## Limitations\n\n- **1,000 events per query is a server-side cap.** Any single search query stops at 1,000 unique events. Leaving `useSitemap` off splits large runs by date, category, price, and online coverage. Setting `useSitemap=true` with `maxItems` above 1,000 scans the event sitemap (about 201,000 event IDs) for broader reach.\n- **Some values are not public.** Eventbrite does not expose attendee counts, public save counts, event capacity, ticket-class capacity, organizer email, or organizer phone. These fields are omitted rather than estimated.\n- **`facebookEventId` is conditional.** It appears only when Eventbrite supplies a value, which is uncommon, and requires `includeDetails=true`.\n- **`sort=date` is experimental and ascending only.** Descending order is not available.\n- **Some prices are unavailable.** Pay-what-you-want and similar events may have no fixed price; those fields are omitted rather than set to `0`.\n- **Detail fields require opt-in.** Full descriptions, refunds, age restrictions, door times, ticket classes, and the Facebook event ID require `includeDetails=true`.\n- **No login-only or cross-platform data.** The actor does not collect private events, attendee lists, or events from other ticketing platforms.\n- **Regional domains may redirect.** Non-US event URLs can resolve to a regional Eventbrite domain; `url` and `sourceUrl` reflect the final page.\n- **Sitemap filtering is best-effort.** The sitemap does not carry filter metadata, so keyword and location matching after sitemap discovery is approximate.\n\n## Robots and terms of use\n\nThis actor reads public event, venue, organizer, and sitemap pages and never accesses Eventbrite checkout. Eventbrite's `robots.txt` and Terms of Service, including their rules on automated access, may restrict some collection methods. Review those rules and any applicable law before running the actor, and use the data responsibly. You are responsible for confirming that your use complies with Eventbrite's terms.\n\n## FAQ\n\n### Do I need to log in or provide a proxy?\n\nNo. The actor needs no account, login, cookie, or proxy. A proxy is optional.\n\n### Why are some fields missing?\n\nRecords are omit-empty by design. A missing field means Eventbrite did not provide that value for that event. Unknown booleans and prices are never invented.\n\n### Why did I get fewer than `maxItems` results?\n\nThe source may have run out of matching events, a single query may have reached the 1,000-event cap, or Eventbrite may have temporarily limited the run. The run's status message reports the reason and the number of unique events found.\n\n### How do I get descriptions, ticket classes, refunds, and FAQs?\n\nSet `includeDetails=true`. This adds the event detail data, including ticket classes, refund policy, age restriction, door time, duration, and FAQs. The Facebook event ID remains absent unless Eventbrite supplies it.\n\n### Does `sort=date` work everywhere?\n\nIt works when the actor uses Eventbrite's search results, which happens automatically when this option is set. Only ascending order is supported, and events on the same day may not be ordered by time.\n\n### How do I collect more than 1,000 events?\n\nLeave `useSitemap` off to split the work by date, category, price, and online coverage, or set `maxItems` above 1,000 and enable `useSitemap` to scan Eventbrite's event sitemap.\n\n### What is the difference between a category and an organizer tag?\n\n`categories` uses Eventbrite's official category taxonomy. `tags` in the output contains organizer-defined keyword tags, which are free-form and may vary between events.\n\n### Are venue coordinates always present?\n\nNo. Coordinates are included only when Eventbrite provides a valid latitude and longitude. Missing or invalid values, including `0,0`, are omitted.\n\n### Is this actor affiliated with Eventbrite?\n\nNo. This is an independent third-party actor and is not endorsed by or affiliated with Eventbrite.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "eventbrite-event-finder-with-venue-geocoordinates",
      "title": "Eventbrite Event Finder with Venue Geocoordinates",
      "description": "Find Eventbrite events by city, keyword, category, format, date, price or online status. Get venue geocoordinates, images, organizer profiles, ticket prices, availability, and optional descriptions, ticket classes, refunds and series data.",
      "version": "2.0",
      "buildTag": "latest",
      "meta": {
        "templateId": "python-empty"
      },
      "input": {
        "title": "Eventbrite Scraper Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Eventbrite browse URLs (e.g. https://www.eventbrite.com/d/ny--new-york/all-events/), direct event URLs (/e/...), or organizer URLs (/o/...). Accepts URL strings and {\"url\": ...} objects. When set, this wins over the filter fields.",
            "editor": "requestListSources",
            "default": [],
            "prefill": [
              {
                "url": "https://www.eventbrite.com/d/united-states/all-events/"
              }
            ],
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "Page URL to scrape."
                }
              }
            }
          },
          "location": {
            "title": "Location (legacy)",
            "type": "string",
            "description": "Legacy city/region slug used when startUrls and locations are empty, e.g. ny--new-york, ca--san-francisco, united-states, online. Blank defaults to united-states.",
            "editor": "textfield"
          },
          "category": {
            "title": "Category (legacy keyword)",
            "type": "string",
            "description": "Legacy category slug such as music, business, food-and-drink, sports. Kept for backward compatibility: when used alone it runs as a keyword query, matching the old category URL behaviour. Use 'categories' for exact taxonomy filtering.",
            "editor": "textfield"
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum number of unique events to return across all queries. The source caps each query at 1,000 events; above 1,000 the actor splits by date, category, price, and online coverage, or scans the event sitemap when useSitemap is enabled.",
            "minimum": 1,
            "maximum": 10000,
            "default": 50,
            "prefill": 3
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keyword queries (q). Each value is a separate query slice; results are deduplicated by event ID.",
            "editor": "stringList",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City, region, or place IDs, e.g. ny--new-york, london, united-kingdom--london, 85977539. Multiple locations run as separate queries and are deduplicated.",
            "editor": "stringList",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Country filter. Combined with locations when possible; use any to leave it open.",
            "editor": "select",
            "default": "any",
            "enum": [
              "any",
              "US",
              "GB",
              "DE",
              "CA",
              "AU",
              "FR",
              "ES",
              "IT",
              "NL",
              "IE",
              "NZ",
              "IN",
              "BR",
              "MX",
              "JP",
              "SG",
              "ZA",
              "AE"
            ],
            "enumTitles": [
              "Any country",
              "United States",
              "United Kingdom",
              "Germany",
              "Canada",
              "Australia",
              "France",
              "Spain",
              "Italy",
              "Netherlands",
              "Ireland",
              "New Zealand",
              "India",
              "Brazil",
              "Mexico",
              "Japan",
              "Singapore",
              "South Africa",
              "United Arab Emirates"
            ]
          },
          "categories": {
            "title": "Exact categories",
            "type": "array",
            "description": "Exact EventbriteCategory filters. Accepts display names, numeric IDs, or EventbriteCategory/<id>. Captured catalog: Business & Professional (101), Science & Technology (102), Music (103), Film, Media & Entertainment (104), Performing & Visual Arts (105), Fashion & Beauty (106), Health & Wellness (107), Sports & Fitness (108), Travel & Outdoor (109), Food & Drink (110), Charity & Causes (111), Community & Culture (113), Religion & Spirituality (114), Family & Education (115), Seasonal & Holiday (116), Home & Lifestyle (117), Auto, Boat & Air (118), Hobbies & Special Interest (119), School Activities (120), Other (199). Unknown values are skipped with a warning.",
            "editor": "stringList",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "format": {
            "title": "Format",
            "type": "string",
            "description": "Exact EventbriteFormat filter. Accepts the display name or an EventbriteFormat/<id> value.",
            "editor": "select",
            "default": "any",
            "enum": [
              "any",
              "Conference",
              "Seminar or Talk",
              "Tradeshow, Consumer Show, or Expo",
              "Convention",
              "Festival or Fair",
              "Concert or Performance",
              "Screening",
              "Dinner or Gala",
              "Class, Training, or Workshop",
              "Meeting or Networking Event",
              "Party or Social Gathering",
              "Tournament",
              "Game or Competition",
              "Tour",
              "Attraction",
              "Appearance or Signing",
              "Other"
            ],
            "enumTitles": [
              "Any format",
              "Conference",
              "Seminar or Talk",
              "Tradeshow, Consumer Show, or Expo",
              "Convention",
              "Festival or Fair",
              "Concert or Performance",
              "Screening",
              "Dinner or Gala",
              "Class, Training, or Workshop",
              "Meeting or Networking Event",
              "Party or Social Gathering",
              "Tournament",
              "Game or Competition",
              "Tour",
              "Attraction",
              "Appearance or Signing",
              "Other"
            ]
          },
          "datePreset": {
            "title": "Date preset",
            "type": "string",
            "description": "Date window. today and tomorrow use the browse page; the other presets use the search API. custom requires dateFrom and dateTo.",
            "editor": "select",
            "default": "any",
            "enum": [
              "any",
              "today",
              "tomorrow",
              "this_week",
              "this_weekend",
              "next_week",
              "this_month",
              "next_month",
              "custom"
            ],
            "enumTitles": [
              "Any date",
              "Today",
              "Tomorrow",
              "This week",
              "This weekend",
              "Next week",
              "This month",
              "Next month",
              "Custom range"
            ]
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Start date (YYYY-MM-DD). Used only with datePreset=custom.",
            "editor": "datepicker"
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "End date (YYYY-MM-DD). Used only with datePreset=custom.",
            "editor": "datepicker"
          },
          "priceFilter": {
            "title": "Price",
            "type": "string",
            "description": "Free or paid events. Uses the search API's price filter and is checked again client-side.",
            "editor": "select",
            "default": "any",
            "enum": [
              "any",
              "free",
              "paid"
            ],
            "enumTitles": [
              "Any price",
              "Free only",
              "Paid only"
            ]
          },
          "eventType": {
            "title": "Event type",
            "type": "string",
            "description": "Any, in-person, or online. Online uses online_events_only without a place filter; in-person removes online events client-side.",
            "editor": "select",
            "default": "any",
            "enum": [
              "any",
              "in_person",
              "online"
            ],
            "enumTitles": [
              "Any type",
              "In person",
              "Online"
            ]
          },
          "sort": {
            "title": "Sort",
            "type": "string",
            "description": "Relevance keeps Eventbrite's default order. date is experimental and ascending only: it sends event_search.sort=date and forces the search API path. Ordering is by start date; same-day times may vary. Descending order is not supported.",
            "editor": "select",
            "default": "relevance",
            "enum": [
              "relevance",
              "date"
            ],
            "enumTitles": [
              "Relevance (default)",
              "Date (experimental, ascending)"
            ]
          },
          "organizerMode": {
            "title": "Organizer mode",
            "type": "boolean",
            "description": "Add organizer profile metrics and social links from the organizer page. Also implied by organizer URLs in startUrls. Records stay event records.",
            "default": false,
            "prefill": false
          },
          "includeDetails": {
            "title": "Include details",
            "type": "boolean",
            "description": "Fetch the event detail page and public event API for description, ticket classes, refunds, age, door time, UTC times, duration, series counts, and the conditional Facebook event ID. Adds one or two requests per event.",
            "default": false,
            "prefill": false
          },
          "useSitemap": {
            "title": "Broad sitemap discovery",
            "type": "boolean",
            "description": "Only for runs above 1,000. Scan Eventbrite's event sitemaps (about 201,000 event IDs) and hydrate in batches instead of splitting search queries. Filters are applied client-side. Ignored with startUrls or maxItems <= 1,000.",
            "default": false,
            "prefill": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Never required. The actor works from a datacenter IP by default; an AUTO proxy is supported. No residential proxy or login is used.",
            "editor": "proxy"
          }
        },
        "required": []
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Eventbrite Event Finder with Venue Geocoordinates Output",
        "description": "Omit-empty Eventbrite event records with dates, UTC times, venue address and geocoordinates, images, taxonomy, organizer profile, ticket price and availability, and optional detail fields.",
        "type": "object",
        "properties": {
          "events": {
            "type": "string",
            "title": "Eventbrite Events",
            "description": "Dataset of event records. Fields without a source value are omitted, never null or blank; 0,0 coordinates are never emitted.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Eventbrite Event Finder with Venue Geocoordinates\n\nFind public Eventbrite events by browse URL, keyword, city, country, category, format, date window, price, or online/in-person status. Each event record includes local and UTC times, venue address and geocoordinates, images, taxonomy, organizer profile, ticket pricing and availability, and — with `includeDetails` — descriptions, ticket classes, refunds, age restrictions, and series data.\n\nThe actor is cookieless: no account, login, user cookie, or proxy setup is required. It reads only publicly accessible Eventbrite pages and never visits checkout.\n\n## What this actor does\n\n- **Flexible discovery:** start from Eventbrite browse, event, or organizer URLs, or search by keyword, city, region, place ID, and country.\n- **Precise filters:** exact Eventbrite categories and formats, date presets or a custom date range, free/paid, in-person/online, and relevance or date ordering.\n- **Venue detail:** full street address, city, region, country, postal code, geocoordinates, and the Eventbrite place hierarchy.\n- **Optional enrichment:** ticket prices, availability and sales status, organizer profile and social links, series counts, and full descriptions, refunds, FAQs, age limits, and door times.\n- **Empty fields are omitted:** records never contain `null`, blank strings, empty lists or objects, `0,0` coordinates, or NaN.\n\n## Output per event\n\nRecords are **omit-empty**. If Eventbrite does not supply a value, that field is absent. Real `false` and `0` values are kept, so `isFree: false` and a free `priceMin: 0` are preserved.\n\n- `id`, `eid`, `recordType`, `sourceUrl` — event identity and provenance; `recordType` is always `event`.\n- `name`, `summary`, `url`, `ticketsUrl` — event title, short summary (capped at 1,000 characters), canonical page URL, and stored checkout URL.\n- `startDate`, `startTime`, `endDate`, `endTime`, `timezone` — local dates, local `HH:MM` times, and the IANA timezone.\n- `startUtc`, `endUtc`, `durationInMinutes` — ISO 8601 UTC timestamps and duration; duration requires `includeDetails`.\n- `isOnline`, `isCancelled`, `isProtected`, `status`, `publishedAt`, `createdAt`, `changedAt`, `privacySetting`, `isListed`, `isShareable`, `locationType` — status and visibility flags.\n- `venueName`, `venueAddress`, `venueAddressLine1`, `venueAddressLine2`, `venueCity`, `venueRegion`, `venueCountry`, `venuePostalCode`, `latitude`, `longitude` — venue name and full postal address with geocoordinates.\n- `locationHierarchy[]` — Eventbrite place hierarchy, with `type` and `name` for each level.\n- `imageUrl`, `gallery[]`, `imageSizesLarge` — primary image, image gallery in descending quality, and the large variant when it is not already in the gallery.\n- `category`, `categoryId`, `subcategory`, `subcategoryId`, `format`, `formatId`, `tags[]` — taxonomy display names and IDs; `tags` holds organizer keyword tags.\n- `primaryOrganizerId`, `organizerName`, `organizerUrl`, `organizerFollowers`, `organizerSummary`, `organizerWebsite`, `organizerTwitter`, `organizerFacebook`, `organizerInstagram`, `organizerX`, `organizerTikTok`, `organizerImageUrl` — organizer profile and social links.\n- `organizerTotalEvents`, `organizerHostingYears`, `organizerAttendeesHosted`, `organizerVerified`, `organizerUpcomingTotal` — organizer metrics; `organizerMode` only.\n- `isFree`, `isSoldOut`, `hasAvailableTickets`, `hasBogoTickets`, `priceMin`, `priceMax`, `priceCurrency`, `priceDisplay`, `salesStatus`, `salesStartUtc`, `salesEndUtc`, `salesMessage`, `waitlistAvailable`, `ticketsBy` — ticket pricing, availability, and sales windows.\n- `ticketClasses[]` — ticket classes with `id`, `name`, `description`, `price`, `fee`, `tax`, `currency`, `isFree`, `includeFee`, `deliveryMethods[]`, `hasPdfTicket`, `minQuantity`, `maxQuantity`, `onSaleStatus`, `category`, and `salesChannels[]`; requires `includeDetails`.\n- `descriptionHtml`, `ageRestriction`, `doorTime`, `refundPolicy`, `faqs[]`, `inventoryType`, `isReservedSeating`, `facebookEventId` — detail-page enrichment; requires `includeDetails`. `refundPolicy` includes `policyType`, `isRefundAllowed`, `validDays`, and `refundRequestOrganizer`; each FAQ has `question` and `answer`.\n- `seriesId`, `isSeries`, `numChildren` — series membership and, when expanded from a parent event URL, the exact number of child events.\n- `urgencySignals[]`, `language`, `scrapedAt` — Eventbrite demand messages, listing language, and the UTC timestamp when the run started.\n\nDates are local to the event; UTC fields use ISO 8601 with `Z`. Prices are decimal major units with an ISO 4217 currency, including zero-decimal currencies such as JPY and three-decimal currencies such as KWD. Image URLs are signed Eventbrite CDN links and are left unchanged.\n\n## Input\n\nNo field is required. With an empty input, the actor browses all United States events and returns up to 50 records.\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `startUrls` | array of `{url}` | `[]` (prefill: US all-events) | Eventbrite browse (`/d/...`), event (`/e/...`), or organizer (`/o/...`) URLs. Plain URL strings and `{\"url\": ...}` objects are both accepted. When set, this wins over the filter fields. |\n| `location` | string | – | Legacy city/region slug used when `startUrls` and `locations` are empty, e.g. `ny--new-york` or `united-states`. Blank means `united-states`. |\n| `category` | string | – | Legacy category slug. Used alone, it runs as a keyword query for backward compatibility. Use `categories` for exact taxonomy filtering. |\n| `maxItems` | integer | `50` (prefill `3`) | Maximum unique events across all queries, 1–10,000. |\n| `keywords` | array of strings | `[]` | Keyword queries. Each value runs as a separate slice and results are deduplicated by event ID. |\n| `locations` | array of strings | `[]` | City, region, or place IDs, e.g. `ny--new-york`, `london`, or `85977539`. Multiple values run separately and are deduplicated. |\n| `country` | select | `any` | ISO country filter, combined with locations when possible. |\n| `categories` | array of strings | `[]` | Exact Eventbrite category names or IDs. Unknown values are skipped with a warning. |\n| `format` | select | `any` | Exact Eventbrite format. |\n| `datePreset` | select | `any` | `any`, `today`, `tomorrow`, `this_week`, `this_weekend`, `next_week`, `this_month`, `next_month`, or `custom`. |\n| `dateFrom` | date | – | Start date in `YYYY-MM-DD`; used only with `datePreset=custom`. |\n| `dateTo` | date | – | End date in `YYYY-MM-DD`; used only with `datePreset=custom`. |\n| `priceFilter` | select | `any` | `any`, `free`, or `paid`. |\n| `eventType` | select | `any` | `any`, `in_person`, or `online`. |\n| `sort` | select | `relevance` | `relevance` keeps Eventbrite's default order. `date` is experimental and ascending only. |\n| `organizerMode` | boolean | `false` | Adds organizer metrics and social links from the organizer page. Organizer URLs imply it. Records stay event records. |\n| `includeDetails` | boolean | `false` | Adds description, ticket classes, refunds, age, door time, duration, inventory flags, exact series counts, and the conditional Facebook event ID. Slower than the default run. |\n| `useSitemap` | boolean | `false` | For runs above 1,000 only. Reads Eventbrite's event sitemaps and matches events instead of splitting search queries. Filters are applied after collection. Ignored with `startUrls` or `maxItems` ≤ 1,000. |\n| `proxyConfiguration` | object | – | Optional. The actor works without a proxy; an Apify `AUTO` proxy is supported. Never required. |\n\n### Example: browse all upcoming US events\n\n```json\n{\n  \"startUrls\": [\n    { \"url\": \"https://www.eventbrite.com/d/united-states/all-events/\" }\n  ],\n  \"maxItems\": 50\n}\n```\n\n### Example: keyword search in a city\n\n```json\n{\n  \"keywords\": [\"jazz\"],\n  \"locations\": [\"ny--new-york\"],\n  \"maxItems\": 100\n}\n```\n\n### Example: exact category, format, and custom date range\n\n```json\n{\n  \"locations\": [\"london\"],\n  \"country\": \"GB\",\n  \"categories\": [\"Music\"],\n  \"format\": \"Concert or Performance\",\n  \"datePreset\": \"custom\",\n  \"dateFrom\": \"2026-12-01\",\n  \"dateTo\": \"2026-12-31\",\n  \"maxItems\": 200\n}\n```\n\n### Example: direct event URL with full details\n\n```json\n{\n  \"startUrls\": [\n    { \"url\": \"https://www.eventbrite.com/e/example-event-tickets-127257012149\" }\n  ],\n  \"includeDetails\": true,\n  \"maxItems\": 1\n}\n```\n\n## Use cases\n\n- **Event discovery sites and local guides** — build city, category, or date-focused event calendars.\n- **Venue and travel planning** — map events by address and geocoordinates for visitors and transportation teams.\n- **Market and competitive research** — compare event calendars, pricing, formats, and organizers across markets.\n- **Sponsorship and vendor prospecting** — find events and organizers that match a target audience or industry.\n- **Newsletters and local media** — pull upcoming events for weekly roundups and community listings.\n- **Civic and academic research** — study public event activity by place, category, price, and date.\n\n## Limitations\n\n- **1,000 events per query is a server-side cap.** Any single search query stops at 1,000 unique events. Leaving `useSitemap` off splits large runs by date, category, price, and online coverage. Setting `useSitemap=true` with `maxItems` above 1,000 scans the event sitemap (about 201,000 event IDs) for broader reach.\n- **Some values are not public.** Eventbrite does not expose attendee counts, public save counts, event capacity, ticket-class capacity, organizer email, or organizer phone. These fields are omitted rather than estimated.\n- **`facebookEventId` is conditional.** It appears only when Eventbrite supplies a value, which is uncommon, and requires `includeDetails=true`.\n- **`sort=date` is experimental and ascending only.** Descending order is not available.\n- **Some prices are unavailable.** Pay-what-you-want and similar events may have no fixed price; those fields are omitted rather than set to `0`.\n- **Detail fields require opt-in.** Full descriptions, refunds, age restrictions, door times, ticket classes, and the Facebook event ID require `includeDetails=true`.\n- **No login-only or cross-platform data.** The actor does not collect private events, attendee lists, or events from other ticketing platforms.\n- **Regional domains may redirect.** Non-US event URLs can resolve to a regional Eventbrite domain; `url` and `sourceUrl` reflect the final page.\n- **Sitemap filtering is best-effort.** The sitemap does not carry filter metadata, so keyword and location matching after sitemap discovery is approximate.\n\n## Robots and terms of use\n\nThis actor reads public event, venue, organizer, and sitemap pages and never accesses Eventbrite checkout. Eventbrite's `robots.txt` and Terms of Service, including their rules on automated access, may restrict some collection methods. Review those rules and any applicable law before running the actor, and use the data responsibly. You are responsible for confirming that your use complies with Eventbrite's terms.\n\n## FAQ\n\n### Do I need to log in or provide a proxy?\n\nNo. The actor needs no account, login, cookie, or proxy. A proxy is optional.\n\n### Why are some fields missing?\n\nRecords are omit-empty by design. A missing field means Eventbrite did not provide that value for that event. Unknown booleans and prices are never invented.\n\n### Why did I get fewer than `maxItems` results?\n\nThe source may have run out of matching events, a single query may have reached the 1,000-event cap, or Eventbrite may have temporarily limited the run. The run's status message reports the reason and the number of unique events found.\n\n### How do I get descriptions, ticket classes, refunds, and FAQs?\n\nSet `includeDetails=true`. This adds the event detail data, including ticket classes, refund policy, age restriction, door time, duration, and FAQs. The Facebook event ID remains absent unless Eventbrite supplies it.\n\n### Does `sort=date` work everywhere?\n\nIt works when the actor uses Eventbrite's search results, which happens automatically when this option is set. Only ascending order is supported, and events on the same day may not be ordered by time.\n\n### How do I collect more than 1,000 events?\n\nLeave `useSitemap` off to split the work by date, category, price, and online coverage, or set `maxItems` above 1,000 and enable `useSitemap` to scan Eventbrite's event sitemap.\n\n### What is the difference between a category and an organizer tag?\n\n`categories` uses Eventbrite's official category taxonomy. `tags` in the output contains organizer-defined keyword tags, which are free-form and may vary between events.\n\n### Are venue coordinates always present?\n\nNo. Coordinates are included only when Eventbrite provides a valid latitude and longitude. Missing or invalid values, including `0,0`, are omitted.\n\n### Is this actor affiliated with Eventbrite?\n\nNo. This is an independent third-party actor and is not endorsed by or affiliated with Eventbrite.\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "Eventbrite Events",
          "description": "Event records are omit-empty: fields without a source value are absent, never null, blank, or 0,0 coordinates. Some fields are conditional on includeDetails or organizerMode.",
          "fields": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Eventbrite event ID"
              },
              "eid": {
                "type": "string",
                "description": "Short Eventbrite eID when supplied"
              },
              "recordType": {
                "type": "string",
                "description": "Always event"
              },
              "name": {
                "type": "string",
                "description": "Event name"
              },
              "summary": {
                "type": "string",
                "description": "Short summary, truncated to 1,000 characters"
              },
              "url": {
                "type": "string",
                "description": "Canonical event page URL (regional TLD when Eventbrite redirects)"
              },
              "sourceUrl": {
                "type": "string",
                "description": "Canonical event page URL used as provenance"
              },
              "ticketsUrl": {
                "type": "string",
                "description": "Eventbrite checkout URL; stored only and never fetched"
              },
              "startDate": {
                "type": "string",
                "description": "Start date (YYYY-MM-DD, local to the event)"
              },
              "startTime": {
                "type": "string",
                "description": "Start time (HH:MM, local)"
              },
              "endDate": {
                "type": "string",
                "description": "End date (YYYY-MM-DD, local)"
              },
              "endTime": {
                "type": "string",
                "description": "End time (HH:MM, local)"
              },
              "timezone": {
                "type": "string",
                "description": "IANA timezone (e.g. America/New_York)"
              },
              "startUtc": {
                "type": "string",
                "description": "Start timestamp in ISO 8601 UTC with Z"
              },
              "endUtc": {
                "type": "string",
                "description": "End timestamp in ISO 8601 UTC with Z"
              },
              "durationInMinutes": {
                "type": "integer",
                "description": "Duration in minutes; requires includeDetails"
              },
              "isOnline": {
                "type": "boolean",
                "description": "Whether the event is online"
              },
              "isCancelled": {
                "type": "boolean",
                "description": "Whether Eventbrite marks the event cancelled; omitted when unknown"
              },
              "isProtected": {
                "type": "boolean",
                "description": "Whether the event is protected"
              },
              "status": {
                "type": "string",
                "description": "Eventbrite status, e.g. live or completed"
              },
              "publishedAt": {
                "type": "string",
                "description": "Published timestamp (ISO 8601 UTC)"
              },
              "createdAt": {
                "type": "string",
                "description": "Creation timestamp (ISO 8601 UTC); requires includeDetails"
              },
              "changedAt": {
                "type": "string",
                "description": "Last changed timestamp (ISO 8601 UTC); requires includeDetails"
              },
              "privacySetting": {
                "type": "string",
                "description": "Eventbrite privacy setting"
              },
              "isListed": {
                "type": "boolean",
                "description": "Whether the event is listed"
              },
              "isShareable": {
                "type": "boolean",
                "description": "Whether the event is shareable"
              },
              "locationType": {
                "type": "string",
                "description": "in_person, online, or another source value; requires includeDetails"
              },
              "venueName": {
                "type": "string",
                "description": "Primary venue name"
              },
              "venueAddress": {
                "type": "string",
                "description": "Full display address"
              },
              "venueAddressLine1": {
                "type": "string",
                "description": "Venue street address line 1"
              },
              "venueAddressLine2": {
                "type": "string",
                "description": "Venue street address line 2"
              },
              "venueCity": {
                "type": "string",
                "description": "Venue city"
              },
              "venueRegion": {
                "type": "string",
                "description": "Venue state/region"
              },
              "venueCountry": {
                "type": "string",
                "description": "Venue country code"
              },
              "venuePostalCode": {
                "type": "string",
                "description": "Venue postal code"
              },
              "latitude": {
                "type": "number",
                "description": "Venue latitude; omitted unless valid and not part of 0,0"
              },
              "longitude": {
                "type": "number",
                "description": "Venue longitude; omitted unless valid and not part of 0,0"
              },
              "locationHierarchy": {
                "type": "array",
                "description": "Eventbrite place hierarchy (continent, country, region, county, locality, neighbourhood)",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  }
                }
              },
              "imageUrl": {
                "type": "string",
                "description": "Highest-resolution cover image; signed CDN URL, never rewritten"
              },
              "imageSizesLarge": {
                "type": "string",
                "description": "Large image variant only when it adds a URL not already present in gallery"
              },
              "gallery": {
                "type": "array",
                "description": "Event image URLs in descending quality: master, large, medium, small, display",
                "items": {
                  "type": "string"
                }
              },
              "category": {
                "type": "string",
                "description": "Eventbrite category display name"
              },
              "categoryId": {
                "type": "string",
                "description": "Eventbrite category ID"
              },
              "subcategory": {
                "type": "string",
                "description": "Eventbrite subcategory display name"
              },
              "subcategoryId": {
                "type": "string",
                "description": "Eventbrite subcategory ID"
              },
              "format": {
                "type": "string",
                "description": "Event format display name"
              },
              "formatId": {
                "type": "string",
                "description": "Eventbrite format ID"
              },
              "tags": {
                "type": "array",
                "description": "Organizer keyword tags",
                "items": {
                  "type": "string"
                }
              },
              "primaryOrganizerId": {
                "type": "string",
                "description": "Organizer ID"
              },
              "organizerName": {
                "type": "string",
                "description": "Organizer name"
              },
              "organizerUrl": {
                "type": "string",
                "description": "Organizer profile URL"
              },
              "organizerFollowers": {
                "type": "integer",
                "description": "Numeric follower count from hydration"
              },
              "organizerSummary": {
                "type": "string",
                "description": "Organizer summary or bio"
              },
              "organizerWebsite": {
                "type": "string",
                "description": "Organizer website"
              },
              "organizerTwitter": {
                "type": "string",
                "description": "Organizer Twitter/X handle or URL from hydration"
              },
              "organizerFacebook": {
                "type": "string",
                "description": "Organizer Facebook page"
              },
              "organizerInstagram": {
                "type": "string",
                "description": "Organizer Instagram profile or ID"
              },
              "organizerX": {
                "type": "string",
                "description": "Organizer X profile URL"
              },
              "organizerTikTok": {
                "type": "string",
                "description": "Organizer TikTok profile URL"
              },
              "organizerImageUrl": {
                "type": "string",
                "description": "Organizer profile image URL"
              },
              "organizerTotalEvents": {
                "type": "integer",
                "description": "Organizer total events; organizerMode only"
              },
              "organizerHostingYears": {
                "type": "string",
                "description": "Organizer hosting tenure as displayed; organizerMode only"
              },
              "organizerAttendeesHosted": {
                "type": "string",
                "description": "Organizer attendees hosted as displayed; organizerMode only"
              },
              "organizerVerified": {
                "type": "boolean",
                "description": "Organizer verified flag; organizerMode only"
              },
              "organizerUpcomingTotal": {
                "type": "integer",
                "description": "Organizer upcoming-event count; organizerMode only"
              },
              "ticketsBy": {
                "type": "string",
                "description": "Ticket provider name"
              },
              "isFree": {
                "type": "boolean",
                "description": "Whether the event is free; known false is kept"
              },
              "isSoldOut": {
                "type": "boolean",
                "description": "Whether the event is sold out"
              },
              "hasAvailableTickets": {
                "type": "boolean",
                "description": "Whether tickets are available"
              },
              "hasBogoTickets": {
                "type": "boolean",
                "description": "Whether BOGO tickets are offered"
              },
              "priceMin": {
                "type": "number",
                "description": "Minimum ticket price in major units; omitted when the source has no fixed price"
              },
              "priceMax": {
                "type": "number",
                "description": "Maximum ticket price in major units"
              },
              "priceCurrency": {
                "type": "string",
                "description": "ISO 4217 currency code"
              },
              "priceDisplay": {
                "type": "string",
                "description": "Eventbrite price display string"
              },
              "salesStatus": {
                "type": "string",
                "description": "Sales status, e.g. on_sale, sales_ended, sold_out"
              },
              "salesStartUtc": {
                "type": "string",
                "description": "Sales start timestamp (ISO 8601 UTC)"
              },
              "salesEndUtc": {
                "type": "string",
                "description": "Sales end timestamp (ISO 8601 UTC)"
              },
              "salesMessage": {
                "type": "string",
                "description": "Sales message when Eventbrite supplies one"
              },
              "waitlistAvailable": {
                "type": "boolean",
                "description": "Whether a waitlist is available; requires includeDetails"
              },
              "ticketClasses": {
                "type": "array",
                "description": "Ticket classes; requires includeDetails",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "fee": {
                      "type": "number"
                    },
                    "tax": {
                      "type": "number"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "isFree": {
                      "type": "boolean"
                    },
                    "includeFee": {
                      "type": "boolean"
                    },
                    "deliveryMethods": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "hasPdfTicket": {
                      "type": "boolean"
                    },
                    "minQuantity": {
                      "type": "integer"
                    },
                    "maxQuantity": {
                      "type": "integer"
                    },
                    "onSaleStatus": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "salesChannels": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "seriesId": {
                "type": "string",
                "description": "Series ID for series children and parents"
              },
              "isSeries": {
                "type": "boolean",
                "description": "Whether the event belongs to a series"
              },
              "numChildren": {
                "type": "integer",
                "description": "Exact series object_count from the series API when expanded; otherwise the source count when greater than one"
              },
              "facebookEventId": {
                "type": "string",
                "description": "Conditional Facebook event ID from the event API; omitted when null (about 2% fill)"
              },
              "descriptionHtml": {
                "type": "string",
                "description": "Full description HTML; requires includeDetails"
              },
              "ageRestriction": {
                "type": "string",
                "description": "Age restriction; requires includeDetails"
              },
              "doorTime": {
                "type": "string",
                "description": "Door time; requires includeDetails"
              },
              "refundPolicy": {
                "type": "object",
                "description": "Refund policy; requires includeDetails",
                "properties": {
                  "policyType": {
                    "type": "string"
                  },
                  "isRefundAllowed": {
                    "type": "boolean"
                  },
                  "validDays": {
                    "type": "integer"
                  },
                  "refundRequestOrganizer": {
                    "type": "boolean"
                  }
                }
              },
              "faqs": {
                "type": "array",
                "description": "Event FAQs; requires includeDetails",
                "items": {
                  "type": "object",
                  "properties": {
                    "question": {
                      "type": "string"
                    },
                    "answer": {
                      "type": "string"
                    }
                  }
                }
              },
              "urgencySignals": {
                "type": "array",
                "description": "Eventbrite urgency messages from browse/search",
                "items": {
                  "type": "string"
                }
              },
              "inventoryType": {
                "type": "string",
                "description": "Inventory type, e.g. limited; requires includeDetails"
              },
              "isReservedSeating": {
                "type": "boolean",
                "description": "Whether the event has reserved seating; requires includeDetails"
              },
              "language": {
                "type": "string",
                "description": "Listing language code"
              },
              "scrapedAt": {
                "type": "string",
                "description": "ISO 8601 UTC timestamp of when the run started; the same on every record"
              }
            }
          },
          "views": {
            "overview": {
              "title": "Overview",
              "transformation": {
                "fields": [
                  "name",
                  "startDate",
                  "startTime",
                  "venueName",
                  "venueCity",
                  "venueRegion",
                  "category",
                  "isFree",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "name": {
                    "label": "Name",
                    "format": "text"
                  },
                  "startDate": {
                    "label": "Date",
                    "format": "text"
                  },
                  "startTime": {
                    "label": "Time",
                    "format": "text"
                  },
                  "venueName": {
                    "label": "Venue",
                    "format": "text"
                  },
                  "venueCity": {
                    "label": "City",
                    "format": "text"
                  },
                  "venueRegion": {
                    "label": "Region",
                    "format": "text"
                  },
                  "category": {
                    "label": "Category",
                    "format": "text"
                  },
                  "isFree": {
                    "label": "Free",
                    "format": "boolean"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  }
                }
              }
            },
            "detailed": {
              "title": "Detailed Results",
              "transformation": {
                "fields": [
                  "id",
                  "name",
                  "summary",
                  "startDate",
                  "startTime",
                  "endDate",
                  "endTime",
                  "timezone",
                  "startUtc",
                  "endUtc",
                  "isOnline",
                  "isCancelled",
                  "venueName",
                  "venueAddress",
                  "venueCity",
                  "venueRegion",
                  "venueCountry",
                  "venuePostalCode",
                  "latitude",
                  "longitude",
                  "category",
                  "format",
                  "primaryOrganizerId",
                  "organizerName",
                  "isFree",
                  "priceMin",
                  "priceMax",
                  "priceCurrency",
                  "salesStatus",
                  "imageUrl",
                  "url",
                  "ticketsUrl",
                  "scrapedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "id": {
                    "label": "ID",
                    "format": "text"
                  },
                  "name": {
                    "label": "Name",
                    "format": "text"
                  },
                  "summary": {
                    "label": "Summary",
                    "format": "text"
                  },
                  "startDate": {
                    "label": "Start Date",
                    "format": "text"
                  },
                  "startTime": {
                    "label": "Start Time",
                    "format": "text"
                  },
                  "endDate": {
                    "label": "End Date",
                    "format": "text"
                  },
                  "endTime": {
                    "label": "End Time",
                    "format": "text"
                  },
                  "timezone": {
                    "label": "TZ",
                    "format": "text"
                  },
                  "startUtc": {
                    "label": "Start UTC",
                    "format": "text"
                  },
                  "endUtc": {
                    "label": "End UTC",
                    "format": "text"
                  },
                  "isOnline": {
                    "label": "Online",
                    "format": "boolean"
                  },
                  "isCancelled": {
                    "label": "Cancelled",
                    "format": "boolean"
                  },
                  "venueName": {
                    "label": "Venue",
                    "format": "text"
                  },
                  "venueAddress": {
                    "label": "Address",
                    "format": "text"
                  },
                  "venueCity": {
                    "label": "City",
                    "format": "text"
                  },
                  "venueRegion": {
                    "label": "Region",
                    "format": "text"
                  },
                  "venueCountry": {
                    "label": "Country",
                    "format": "text"
                  },
                  "venuePostalCode": {
                    "label": "Postal",
                    "format": "text"
                  },
                  "latitude": {
                    "label": "Lat",
                    "format": "number"
                  },
                  "longitude": {
                    "label": "Lng",
                    "format": "number"
                  },
                  "category": {
                    "label": "Category",
                    "format": "text"
                  },
                  "format": {
                    "label": "Format",
                    "format": "text"
                  },
                  "primaryOrganizerId": {
                    "label": "Organizer ID",
                    "format": "text"
                  },
                  "organizerName": {
                    "label": "Organizer",
                    "format": "text"
                  },
                  "isFree": {
                    "label": "Free",
                    "format": "boolean"
                  },
                  "priceMin": {
                    "label": "Price Min",
                    "format": "number"
                  },
                  "priceMax": {
                    "label": "Price Max",
                    "format": "number"
                  },
                  "priceCurrency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "salesStatus": {
                    "label": "Sales",
                    "format": "text"
                  },
                  "imageUrl": {
                    "label": "Image",
                    "format": "link"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  },
                  "ticketsUrl": {
                    "label": "Tickets",
                    "format": "link"
                  },
                  "scrapedAt": {
                    "label": "Scraped At",
                    "format": "text"
                  }
                }
              }
            },
            "organizer": {
              "title": "Organizer View",
              "transformation": {
                "fields": [
                  "name",
                  "startDate",
                  "organizerName",
                  "organizerFollowers",
                  "organizerUrl",
                  "organizerWebsite",
                  "organizerInstagram",
                  "organizerTotalEvents",
                  "organizerUpcomingTotal",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "name": {
                    "label": "Event",
                    "format": "text"
                  },
                  "startDate": {
                    "label": "Date",
                    "format": "text"
                  },
                  "organizerName": {
                    "label": "Organizer",
                    "format": "text"
                  },
                  "organizerFollowers": {
                    "label": "Followers",
                    "format": "number"
                  },
                  "organizerUrl": {
                    "label": "Organizer URL",
                    "format": "link"
                  },
                  "organizerWebsite": {
                    "label": "Website",
                    "format": "link"
                  },
                  "organizerInstagram": {
                    "label": "Instagram",
                    "format": "text"
                  },
                  "organizerTotalEvents": {
                    "label": "Total Events",
                    "format": "number"
                  },
                  "organizerUpcomingTotal": {
                    "label": "Upcoming",
                    "format": "number"
                  },
                  "url": {
                    "label": "Event URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "2.0.1",
    "imageDigest": "b929f7164e4f117c7741db99f223dd5896276d0f9c0f717fb31292fe796b3860",
    "actVersion": {
      "sourceType": "TARBALL",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.01268
    }
  }
}