Data and API changelog
Changes to the data files and the MCP endpoint. Machine-readable spec: openapi.json (version 0.13.0).
0.13.0 (Oct 21, 2026)
- New MCP tool search_past_events, for approved access keys only (header x-whatsupin-key; without one it isn't listed and can't be called): events that already happened, with the same words and filters as search_events, from/to required (before today, at most 90 days apart, within the last 365 days), at most 100 rows a call, with a daily quota per key. Results add window and quota, and count_is_lower_bound when more matched than one call reads. Bulk copying is still not permitted (/terms/#data).
- search_past_events can also be paid per call with x402 (HTTP 402, USDC) where a city switches it on: it is then listed for every client, a call without a key is answered 402 with the price, and the same call with a PAYMENT-SIGNATURE header is served. Off everywhere for now.
0.12.0 (Oct 21, 2026)
- search_events reads queries more like a person would: words match at the start of a word, singular or plural (party finds parties; words of 3 letters or fewer match whole words, so ai no longer matches air); common synonyms count (standup = stand-up, kids = children = family, board game = boardgame); new `match` argument: all (default, every word as before) or any (at least one), and | or commas between terms mean any; quotes keep a phrase together; a neighborhood or town after in/near/at in the query becomes the place filter; a 5+ letter word that matches nothing is read as the closest word the events use. Results carry `search`, saying how the query was read (match, terms with the synonyms that counted, read_as, place_from_query). The hub's /mcp forwards `match`.
0.11.0 (Oct 20, 2026)
- New optional field `vt` in data/*.json (`checked_live` in MCP results): when we last opened the event's original listing and found it matching (start time, venue, not cancelled), local ISO time. Absent = not checked in the last two days. Listings that say cancelled or postponed are dropped; ones that say sold out carry `sold_out`.
0.10.0 (Oct 20, 2026)
- Licensing: the data is no longer published under CC BY 4.0. All rights are reserved. A person, or an AI assistant answering one person's question through /mcp (within the rate limits, with credit and each event's original link), needs no permission; bulk copying, republishing, reselling, dataset building and model training need express written permission (see /terms/#data). The `license` block in data/*.json, openapi.json, .well-known/mcp.json and MCP results says so. Data obtained before this date under CC BY 4.0 keeps that license.
0.9.0 (Oct 20, 2026)
- New file data/places.json (engine/map_places.py): centres, sizes and neighborhood outlines of the towns, neighborhoods and named squares the site files events under. The Map tab uses it to draw an event whose listing names only a place as a soft cloud over that place, and to group events by square, neighborhood, town or region. No event data; rewritten with each export.
0.8.0 (Oct 19, 2026)
- New MCP tool get_city: what the site covers, as counts only (upcoming events and their date span, free events, sources, events per category, topic, neighborhood and town, regions), so an agent can pick valid filter values before searching. The hub's /mcp takes it with `city`.
- Every MCP tool declares an outputSchema and returns structuredContent beside the same JSON as text. The servers answer protocol versions 2025-11-25 and 2025-06-18 when a client asks for them (2025-03-26 otherwise, as before).
- Tool descriptions say when to use each tool and which sibling to use instead (search_events for words, dates, free-only or a town; list_upcoming for a day-by-day overview).
0.7.0 (Oct 18, 2026)
- Work events (topics business, networking, conferences, startup) carry sector and format tags: biz/sector/<name> (senior_care, healthcare, life_sciences, real_estate, finance_insurance, legal, tech, defense_government, trades_construction, hospitality_food, retail_ecommerce, marketing_media, nonprofit, energy_climate, hr_workforce, creative_design) and biz/format/<name> (referral_group, chamber, mixer, breakfast_lunch, workshop_training, conference_expo, career_fair, ce_credits, pitch_demo, committee_meeting). MCP results include sectors and biz_formats; search_events and list_upcoming take sector and biz_format. data/events.json lists the labels under biz_facets.
0.6.0 (Oct 18, 2026)
- New topic business (topic/business; MCP topic enum, the site's Business chip): chamber of commerce events, referral groups (BNI and similar), small-business and career events, trade shows, professional associations. Shared by every city (config/topics_shared.yaml).
- Topic networking is narrower: happy hours, mixers, meet-and-greets and after-parties count only when the title names a work or professional word; singles and dating events never do.
- New tag audience/seniors: events only for older adults (senior-center programs, 55+ groups, Medicare talks). MCP results carry audience (kids, teens or seniors) when an event has one; search_events and list_upcoming take audience (general, kids, teens, seniors); create_custom_calendar takes include_seniors (new calendars leave older adults'-only events out unless it's set; calendars made before keep them). The site hides them by default, like kids' events, with a toggle under More.
0.5.0 (Oct 16, 2026)
- Source names in data/*.json (srcs), data/coverage.json (by_source), data/performers.json and data/organizers.json (platforms) and MCP results (sources) are now the platform only: eventbrite, meetup. The old fetch-route variants (eventbrite_apify, eventbrite_browse, meetup_apify) are gone, and coverage counts each platform once.
0.4.0 (Oct 15, 2026)
- Every city's /mcp now offers create_custom_calendar (build a subscribable calendar from interests; the recipe lives in the link) and the custom_calendar prompt, as Sacramento and SF already did.
- New MCP tool find_performer(query): a named act's upcoming events, top venues and genres, from data/performers.json (names from public listings only, no contact details).
- Events can carry sold_out: true (every listing of the event says tickets are gone) and recurring: weekly, biweekly or monthly (the event is one date of a repeating series at the same venue). Both appear in data/events.json and in MCP results.
0.3.0 (Oct 15, 2026)
- list_upcoming takes the same neighborhood / near / radius_km, and so does each interest in create_custom_calendar (where the site offers it). Whenever a place filter is used, place.unplaced_events counts the events left out because their venue isn't mapped, with a note saying so.
- search_events takes neighborhood (events in one neighborhood or town; common and sub-neighborhood names work), near (events within radius_km of a neighborhood, town, venue name or "lat,lon", nearest first within each day) and radius_km. Results then carry distance_km and a place block saying what the name matched.
- data/travel.json rows carry hood and ll when known.
- MCP events now include neighborhood when the venue is placed in one (hood in data/events.json).
0.2.0 (Oct 14, 2026)
- Every event now carries its provenance: first_seen, last_seen and last_fetched (fs, ls, ft in data/events.json), plus the list of sources that list it. MCP results include them with the original listing link.
- Event ids are now kept in a ledger: a source retitling, rescheduling or relinking an event no longer changes its id. Existing ids are unchanged.
- New MCP tool get_event(id). MCP results now include data_generated and a link to the coverage page.
- New pages and files: /coverage/ and data/coverage.json (events per source, freshness, validator recall and accuracy numbers), /status/ and /api/status, /openapi.json, data/event.schema.json, /.well-known/mcp.json, this changelog.
- Terms of use now say plainly that AI agents may use the data with attribution.
0.1.0 (Oct 6, 2026)
- data/events.json (nearest weeks) and data/events_rest.json (later), CC BY 4.0, each event with a stable id and a keyed provenance fingerprint (rv).
- MCP server at /mcp (Streamable HTTP, read-only, no key): search_events and list_upcoming.