# Event Venue Research

> Build event shortlists, dated calendars, and venue comparisons through Crawlora's Ticketmaster and TicketWeb endpoints. Use for public event research with verified venue identity, timing, age restrictions, ticket fees, and availability caveats.

- Skill: `crawlora-org/event-venue-research` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add crawlora-org/event-venue-research`
- Raw SKILL.md: https://api.skillmd.com/api/skills/crawlora-org/event-venue-research/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: Crawlora-org (https://skillmd.com/u/crawlora-org)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/crawlora-org/event-venue-research

---


# Event and venue research

Build a dated event or venue comparison from public listings. Keep ticket
availability, venue visitor information, and private venue-booking availability
separate; an event calendar does not establish that a venue can be hired.

## Setup

Set `CRAWLORA_API_KEY` to your key from [crawlora.net](https://crawlora.net).
Run the bundled `scripts/crawlora.sh` from this skill directory or by absolute
path. It sends `x-api-key` to `https://api.crawlora.net/api/v1`; keep the key in
the environment. Read [reference/endpoints.md](reference/endpoints.md) for
event/city/category discovery, event details, and venue lookups.

## Resolve, filter, and compare

1. Establish destination, date range, interests, party age/access requirements,
   and budget. Search `/ticketmaster/search-events` (`q`, zero-based `page`,
   `sort=date` or `relevance`) or `/ticketweb/search` (`q`, one-based `page`).
   Filter returned dates locally where an endpoint has no date-range parameter.
2. For city/category browsing, use `/ticketmaster/discover-cities` or
   `/ticketmaster/discover-categories`, then the returned `city` slug/country or
   `category_id` in their matching event feeds. Discovery destination groupings
   can include surrounding municipalities; inspect actual venue locations.
3. Retrieve `/ticketmaster/event?id=...` or `/ticketweb/event?id=...` for a
   selected event. Read the nested event object, exact status, timing, venue,
   age restrictions, and source URL. IDs are provider-specific. Deduplicate
   cross-provider events by verified performer, venue, date/time, and event type;
   preserve distinct performances, ticket offers, and VIP/parking add-ons.
4. Preserve local time and timezone. TicketWeb search times have no UTC offset;
   detail can provide an offset and venue zone. Do not append `Z` to a local time.
   Keep TBD/TBA times unknown and distinguish doors, show start, and on-sale time.
5. Resolve venue details and upcoming events with `/ticketmaster/venue`,
   `/ticketmaster/venue-events`, or `/ticketweb/venue`. Artist/team attraction
   IDs are not venue IDs. Verify street address and public accessibility/visitor
   information; missing capacity or access details are unknown, not negative findings.
6. For TicketWeb prices, compare `sections[].prices[].total` and currency, keeping
   base price, fees, tier restrictions, and sale status. Do not add fees again to
   `total` or compare one provider's base price with another's fee-inclusive total.
   Ticketmaster prices, when absent, remain unknown; do not invent a price range.
7. Recheck shortlisted events close to delivery when current availability matters.
   Preserve canceled/postponed/rescheduled status and collection time. A successful
   data response does not reserve seats or lock prices.

```sh
scripts/crawlora.sh /ticketweb/search q=comedy page=1
scripts/crawlora.sh /ticketmaster/search-events q=jazz sort=date page=0
```

## Deliverable and bounds

Return a table/calendar with event and provider IDs, canonical links, venue/address,
local start time and zone, status, applicable age/access information, dated ticket
price scope, availability, and fit rationale. Group venue comparisons separately
from individual event offers. Create calendar entries or buy tickets only if asked.

- TicketWeb `has_tickets=false` with empty sections is ambiguous: free/RSVP,
  sold out, or access-code-gated can share this state. Cross-check explicit search
  availability (`in_stock`, `sold_out`, `unknown`) without guessing a cause.
- Ticketmaster event `410` means concluded/permanently removed; `404` means unknown.
  TicketWeb invalid IDs can surface as `503`; recheck the discovered ID before retrying.
- Ticketmaster event-feed pages are 0–49; TicketWeb search pages are 1–50.
  Stop at no progress, source end, or the requested date/sample bound. Back off
  on `429`, retry transient `5xx` once, stop on `401`/`403`, and check application `code`.

