{"slug": "us-and-uk-local-events-api", "title": "US and UK local events API", "summary": "FindLocal launched an events API covering 86,498 upcoming events from 14,921 venues in 84 metros across the US and UK, served as a JSON REST API and an MCP server under a single API key. The service requires a Bearer token for its /api/events, /api/events/{id} and /api/venues endpoints, meters calls against a monthly credit quota, and requires Free-plan users to display an \"Event data by FindLocal\" attribution link. A free account at findlocal.community/signup issues up to 5 named keys per account, and a browser playground runs real queries at 5 rows per call.", "body_md": "86,498 upcoming events from 14,921 venues in 84 metros across the US and UK — the concerts and the bookshop readings, free events included. One key for the JSON API and the MCP server.\n\nYou are helping me integrate the FindLocal Events API into my project. Follow these steps, then use the reference below — do not invent endpoints or parameters that are not in it.\n1. Ask me what I am building and which metro(s) I need, if I have not said.\n2. Read my API key from the environment variable FINDLOCAL_KEY. Never hard-code or log it. If I do not have one, tell me to create a free account at https://findlocal.community/signup and mint a key at https://findlocal.community/dashboard/keys.\n3. Write a small typed client for the endpoints I need, matching my project's language and HTTP library.\n4. Handle 401 (bad key), 429 (wait `Retry-After` seconds, then retry) and 503 (back off). Cache responses for a few minutes — each call spends one credit from a monthly quota.\n5. If the key is on the Free plan, render this link wherever events are displayed (the terms require it; paid plans do not): <a href=\"https://findlocal.community\" rel=\"noopener\">Event data by FindLocal</a>\n6. Show me one working request and its trimmed response before building further.\n# FindLocal Events API\nHyper-local events for 84 metros across the US and UK — concerts, readings, film screenings, talks, classes, trivia, open mics, storytimes — with venues and coordinates. REST + an MCP server, one key for both. Human docs and playground: https://findlocal.community/docs · OpenAPI: https://findlocal.community/openapi.json\n## Quickstart\n1. Create a free account at https://findlocal.community/signup (no card) and mint a key at https://findlocal.community/dashboard/keys.\n2. Send it as a Bearer token:\n``` bash\ncurl \"https://findlocal.community/api/events?city=boston&when=weekend&free=1\" \\\n-H \"Authorization: Bearer $FINDLOCAL_KEY\"\n```\n3. Read `data` (events) and `meta` (`total`, `page`, `page_size`). Page with `page=2`.\nNo key yet? The playground at https://findlocal.community/docs runs real queries in the browser, 5 rows a call.\n## Authentication\nEvery `/api/events`, `/api/events/{id}` and `/api/venues` call needs a key: `Authorization: Bearer <key>` (or `X-API-Key: <key>`).\nKeep keys server-side where you can; a key in browser code is visible to anyone. One account can hold 5 named keys — use one per app so you can revoke them separately.\nThe same key authorises the MCP server (https://mcp.findlocal.community/mcp).\n## Endpoints\nBase URL `https://findlocal.community/api`. JSON over HTTPS, `GET` only, CORS open. Responses are `{ \"data\": …, \"meta\": … }`.\n### GET https://findlocal.community/api/events\nSearch upcoming events. Upcoming events in one metro, filtered. Every parameter is optional; with none you get Boston, chronological.\nSee **Filters** — every parameter is optional.\n### GET https://findlocal.community/api/events/{id}\nOne event. A single event by id — past and delisted events included (`is_deleted`).\n- `id` (required) — string\n### GET https://findlocal.community/api/venues\nVenues in a metro. Active venues with their upcoming-event counts.\n- `city` — Metro slug (or name). One of: `ann-arbor`, `atlanta`, `austin`, `baltimore`, `bangor`, `bloomington`, `boise`, `boston`, `brattleboro`, `buffalo`, `burlington`, `cape-cod`, `charleston`, `charlotte`, `chicago`, `cincinnati`, `cleveland`, `columbia-mo`, `columbus`, `dallas`, `denver`, `des-moines`, `detroit`, `duluth`, `fort-collins`, `grand-rapids`, `green-bay`, `hanover`, `harrisburg`, `hartford`, `hilton-head`, `houston`, `hudson-valley`, `indianapolis`, `iowa-city`, `jersey-shore`, `kansas-city`, `lansing`, `las-vegas`, `lincoln`, `london`, `los-angeles`, `madison`, `manchester`, `miami`, `milwaukee`, `minneapolis`, `nashville`, `new-haven`, `new-orleans`, `new-york`, `northampton`, `oklahoma-city`, `orlando`, `philadelphia`, `phoenix`, `pittsburgh`, `pittsfield`, `portland`, `portland-me`, `portsmouth`, `providence`, `raleigh`, `rochester`, `rockland`, `rutland`, `sacramento`, `salt-lake-city`, `san-antonio`, `san-diego`, `san-francisco`, `santa-barbara`, `seattle`, `sonoma`, `spokane`, `st-louis`, `stamford`, `tampa`, `traverse-city`, `tucson`, `washington`, `wenatchee`, `wilmington-nc`, `worcester`. Default `boston`.\n- `region` — Neighborhood / sub-area.\n- `q` — Substring match on the venue name.\n- `type` — Venue type, case-insensitive: Music Venue, Performing Arts Center, Theater, Comedy Club, Bar, Nightclub, Brewery & Winery, Restaurant, Cafe, Bookstore, Library, Museum, Art Gallery, University & College, Arena & Stadium, Park & Outdoors, Community Center, Place of Worship, Market, Festival Grounds, Other.\n- `sort` — Order. One of: `name`, `upcoming`. Default `name`.\n- `limit` — Rows per page (max 500; 100 from Nov 15, 2026). Default `500`.\n- `page` — 1-based page; keep going while `meta.has_more`. Default `1`.\n### Event object\n- `id` (string)\n- `title` (string)\n- `description` (string | null)\n- `event_date` (string) — Calendar day in the venue's own time zone.\n- `start_time` (string | null) — HH:MM, 24-hour, venue-local.\n- `end_time` (string | null)\n- `category` (string | null) — music | comedy | theater | dance | literary | film | talks | art | food_drink | family | market | workshop | fitness | sports | nightlife | community | festival | parks\n- `event_type` (array) — Type tokens as the source published them (free text).\n- `event_types` (array) — Event Intelligence: what kind of event this is, from a fixed vocabulary of 44 slugs (e.g. `concert`, `author-talk`, `trivia`, `stand-up`). Empty until classified.\n- `category_confidence` (number | null) — Event Intelligence: 0-1 confidence in `category`. Null when the category came from keywords or a person, not the classifier.\n- `is_real_event` (integer | null) — Event Intelligence: 1 = checked and is an attendable event; null = not checked yet. Rows judged not to be events (closures, deadlines, placeholders) are never served.\n- `performers` (array) — Who the event is by: the bill, authors, instructors, speakers. Empty when unknown. Search it with `performer` (or `q`).\n- `price` (string | null) — Price label as published, e.g. \"$18 adv / $22 door\".\n- `price_amount` (number | null) — Parsed lowest price in the city's local currency (USD for US metros, GBP for London); 0 = free.\n- `status` (string | null) — What the source states: scheduled | cancelled | postponed | rescheduled | sold_out. Null when the source does not say.\n- `detail_page_url` (string | null)\n- `ticket_page_url` (string | null)\n- `image_url` (string | null)\n- `city` (string) — Metro name. Its currency is the currency of `price_amount` (single-event responses carry no `meta.currency`).\n- `region` (string | null)\n- `venue_id` (string)\n- `venue_name` (string)\n- `venue_address` (string | null)\n- `venue_lat` (number | null)\n- `venue_lng` (number | null)\n- `venue_url` (string | null)\n- `venue_image` (string | null)\n- `venue_region` (string | null)\n- `venue_type` (string | null) — The venue's type: Music Venue | Performing Arts Center | Theater | Comedy Club | Bar | Nightclub | Brewery & Winery | Restaurant | Cafe | Bookstore | Library | Museum | Art Gallery | University & College | Arena & Stadium | Park & Outdoors | Community Center | Place of Worship | Market | Festival Grounds | Other.\n- `venue_capacity` (integer | null) — Venue capacity, when known.\n- `venue_size` (string | null) — Small | Medium | Large | Unknown.\n- `author_ids` (array)\n- `book_ids` (array)\n- `end_date` (string | null) — Last day (YYYY-MM-DD) of a multi-day run stored as one event: an exhibition, festival or trade show. Null for single-day events and for runs listed night by night (those are separate events sharing `series_id`). A run whose `event_date` is past is still upcoming until `end_date`.\n- `series_id` (string | null) — Groups the occurrences of one thing: every night of a residency, every week of a quiz. Stable across scrapes; filter with `series_id=`.\n- `organizer` (string | null) — Who puts the event on, when that is not the venue: a talk series, promoter, festival or council programme. The venue fields always describe where it happens.\n- `duplicate_of` (string | null) — Set when the same show is also listed under another venue: the id of the event we keep. Such events are never in lists; by id and in `updated_since` syncs they report `is_deleted: 1`.\n- `series_count` (integer) — Upcoming dates of the same recurring event at this venue.\n- `series_image` (string | null) — First image in the recurring series — a fallback when `image_url` is empty.\n- `books` (array) — The books behind `book_ids` (title, isbn13, cover_url, publisher, pub_year…). Absent when there are none.\n- `authors` (array) — The authors behind `author_ids` (canonical_name, photo_url, bio, wikipedia_url…). Absent when there are none.\n- `is_deleted` (integer) — 1 when the source stopped listing it, or it is a cross-venue duplicate (`duplicate_of`).\n- `updated_at` (string)\n### Venue object\n- `id` (string)\n- `name` (string)\n- `city` (string)\n- `region` (string | null)\n- `address` (string | null)\n- `latitude` (number | null)\n- `longitude` (number | null)\n- `type` (string | null) — One of: Music Venue | Performing Arts Center | Theater | Comedy Club | Bar | Nightclub | Brewery & Winery | Restaurant | Cafe | Bookstore | Library | Museum | Art Gallery | University & College | Arena & Stadium | Park & Outdoors | Community Center | Place of Worship | Market | Festival Grounds | Other.\n- `venue_size` (string | null) — Small | Medium | Large | Unknown. Small is under 100 people, Medium 100-499, Large 500+; derived from `capacity` when that is known, otherwise an estimate.\n- `capacity` (integer | null) — Maximum capacity (people), when a source states one: Wikidata, the venue's own website, or a venue directory. null = unknown.\n- `categories` (array)\n- `url` (string | null)\n- `image` (string | null)\n- `image_attribution` (string | null) — Credit line for `image` (Wikimedia Commons / Openverse CC licenses). When present you must display it next to the image.\n- `description` (string | null)\n- `upcoming` (integer) — Upcoming (non-deleted) events at this venue.\n- `wikidata_id` (string | null) — Matched Wikidata entity, e.g. Q123456.\n- `wikipedia_url` (string | null)\n- `image_source` (string | null)\n- `description_source` (string | null)\n## Filters (`GET /api/events`)\n- `city` — metro slug, default `boston`. 84 metros (US and UK): `ann-arbor`, `atlanta`, `austin`, `baltimore`, `bangor`, `bloomington`, `boise`, `boston`, `brattleboro`, `buffalo`, `burlington`, `cape-cod`, `charleston`, `charlotte`, `chicago`, `cincinnati`, `cleveland`, `columbia-mo`, `columbus`, `dallas`, `denver`, `des-moines`, `detroit`, `duluth`, `fort-collins`, `grand-rapids`, `green-bay`, `hanover`, `harrisburg`, `hartford`, `hilton-head`, `houston`, `hudson-valley`, `indianapolis`, `iowa-city`, `jersey-shore`, `kansas-city`, `lansing`, `las-vegas`, `lincoln`, `london`, `los-angeles`, `madison`, `manchester`, `miami`, `milwaukee`, `minneapolis`, `nashville`, `new-haven`, `new-orleans`, `new-york`, `northampton`, `oklahoma-city`, `orlando`, `philadelphia`, `phoenix`, `pittsburgh`, `pittsfield`, `portland`, `portland-me`, `portsmouth`, `providence`, `raleigh`, `rochester`, `rockland`, `rutland`, `sacramento`, `salt-lake-city`, `san-antonio`, `san-diego`, `san-francisco`, `santa-barbara`, `seattle`, `sonoma`, `spokane`, `st-louis`, `stamford`, `tampa`, `traverse-city`, `tucson`, `washington`, `wenatchee`, `wilmington-nc`, `worcester`.\n- `when` — Date window, resolved in the metro's own time zone — or one day as YYYY-MM-DD.\n- `date_from` — Inclusive start day (YYYY-MM-DD) of an explicit window; used when `when` is absent. Defaults to today. A multi-day run (`end_date`) that started earlier but is still on is included.\n- `date_to` — Inclusive end day (YYYY-MM-DD) of an explicit window; used when `when` is absent. Open-ended when omitted.\n- `updated_since` — Incremental sync: only events changed at or after this ISO-8601 instant, delisted ones included (`is_deleted: 1`). Pass the previous response's `meta.synced_at`.\n- `cat` — Comma list of category slugs. `literary` also matches everything at bookstores and libraries.\n- `free` — Free events only. One of: `1`.\n- `paid` — Paid events only. One of: `1`.\n- `max` — Maximum price in the city's local currency (USD for US metros, GBP for London; events with a parsed price).\n- `tod` — Comma list of times of day.\n- `region` — Neighborhood / sub-area inside the metro, e.g. Cambridge.\n- `q` — Free text, matched word by word (up to 4 words; every word must match): event title, venue name, neighbourhood/town, description, performer and author names, and linked book titles. Common words like \"the\" and \"in\" are ignored.\n- `performer` — Substring match on performer names only.\n- `series_id` — Every upcoming occurrence of one series (an event's `series_id`).\n- `authors` — Only events with a known author on the bill. One of: `1`.\n- `near` — Proximity search: `<lat>,<lng>`. Orders by distance and overrides `sort`. The radius spans metros (a point between Washington and Baltimore returns both; each event's `city` says which); `city` then only sets the time zone for \"today\", and defaults to the metro nearest the point.\n- `radius_km` — Radius for `near` (default 25, max 200). Default `25`.\n- `sort` — `date` is chronological; `featured` is the site's editorial ranking. One of: `featured`, `date`. Default `date`.\n- `page` — 1-based page of `limit` rows (100 when no `limit`). Ignored by the playground server. Default `1`.\n- `limit` — Rows per call (max 500; 100 from Nov 15, 2026). The playground server caps this at 5 (100 signed in).\n- `venue` — A venue uuid: upcoming events at that venue (the metro comes from the venue).\nCategory slugs for `cat`: `music`, `comedy`, `theater`, `dance`, `literary`, `film`, `talks`, `art`, `food_drink`, `family`, `market`, `workshop`, `fitness`, `sports`, `nightlife`, `community`, `festival`, `parks`.\n## Errors\nErrors are JSON: `{ \"error\": \"message\" }`.\n- `400` — a malformed parameter.\n- `401` — missing, invalid, expired or revoked key.\n- `404` — unknown event id.\n- `429` — per-minute rate limit exceeded, or the Free monthly quota is spent (paid plans run on into billed overage). Honour `Retry-After` (seconds).\n- `503` — key verification is briefly unavailable; retry with backoff. The API fails closed rather than serving unmetered.\n## Rate limits and quotas\nTwo limits apply. Both are per ACCOUNT: all of an account’s keys share one **monthly quota** (REST and MCP calls alike; more keys never add calls), refilled on the 1st (UTC), and one **per-minute limit**.\n- Free: 100 calls/month (hard stop), 30 requests/minute\n- Indie: 10,000 calls/month, then $0.002 per extra call, 60 requests/minute\n- Business: 75,000 calls/month, then $0.002 per extra call, 120 requests/minute\nFrom Nov 15, 2026 every keyed call returns at most 100 rows (500 until then); page with `page=` (`meta.has_more` on venues).\nEvery successful response carries `X-RateLimit-Remaining` (calls left this MONTH on the account), `X-RateLimit-Limit` (requests per MINUTE) and `X-RateLimit-Reset` (Unix seconds when the minute window reopens). Each call costs one credit, cached or not. Unknown query parameters are ignored, never an error — `meta.ignored_params` and the `X-FindLocal-Warning` header list them (e.g. `category` → use `cat`).\nOn `429`, wait `Retry-After` seconds. For bulk work, stay under the per-minute limit and cache results — events change at most a few times a day. To keep a copy in sync, fetch the window once, then poll with `updated_since=<meta.synced_at>`: only changed rows come back, delisted ones as `is_deleted: 1`.\n## Plans\n- **Free: free, no card; 100 calls/month, hard stop; 30 requests/minute**. For evaluating the API and personal projects.\n- **Indie: $9/month (launch price, locked in for life; $19/mo from Nov 15, 2026); 10,000 calls/month, then $0.002 per extra call; 60 requests/minute**. For side projects and small apps.\n- **Business: $49/month (launch price, locked in for life; $99/mo from Nov 15, 2026); 75,000 calls/month, then $0.002 per extra call; 120 requests/minute**. For production apps and agents.\n- **Enterprise** — more than Business (custom quota, higher burst limit, invoicing): email elliot@findlocal.community.\nPaid plans never stop at the quota: calls past it are billed at $0.002 each on the next invoice. Free is for evaluation and personal projects. If we see signs of production use (sustained traffic, a public deployment or commercial use), we may ask you to move to a paid plan.\nEvent Intelligence (`event_types`, `category_confidence`, `is_real_event`, performers' `entity_id` / `musicbrainz_id` / `wikidata_id`, and the `books` / `authors` behind literary events) is included on every plan.\nUpgrade, downgrade or cancel at https://findlocal.community/dashboard/billing. Existing keys move to the new limits at once.\n**Attribution.** On the Free plan, show a visible link back wherever the data is displayed — `<a href=\"https://findlocal.community\" rel=\"noopener\">Event data by FindLocal</a>` or equivalent wording. Paid plans need no attribution. Full API terms (caching, redistribution): https://findlocal.community/terms#api.\n## MCP server\nEndpoint: `https://mcp.findlocal.community/mcp` (Streamable HTTP; OAuth 2.1 + PKCE). On first connect you paste an API key.\n- Claude Code:\n``` bash\nclaude mcp add --transport http findlocal https://mcp.findlocal.community/mcp\n```\n- Cursor (`~/.cursor/mcp.json`):\n``` json\n{\n\"mcpServers\": {\n\"findlocal\": {\n\"url\": \"https://mcp.findlocal.community/mcp\"\n}\n}\n}\n```\n- Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the endpoint.\nEvent tools cost one credit per call; `get_usage`, `get_api_docs` and `get_setup_guide` are free.\n## Widgets (no code)\nAn embeddable list, calendar or map — one script tag, free, no key. The widget is inserted after the tag:\n``` html\n<script src=\"https://findlocal.community/widget.js\" data-city=\"boston\" data-view=\"list\"></script>\n```\nAttributes: `data-widget` (a catalogue preset, e.g. `literary-new-england`), `data-city` (one metro or a comma list of up to 25), `data-region`, `data-cat`, `data-when`, `data-from` + `data-to` (YYYY-MM-DD), `data-view` (list | calendar | map | compact | strip — compact is a 5-event sidebar list, strip a row of 8 thumbnails; neither has filters), `data-more` (your full events page: compact/strip link there and open a clicked event there), `data-seo=\"off\"` (no schema.org Event JSON-LD on your page; default on for list/calendar/map, off for compact/strip), `data-theme` (light | dark | auto), `data-limit` (1-300), `data-height` (initial px), `data-max-height` (px or `none`; default 85% of the window, 420-900 px — past it the widget scrolls inside itself), `data-partner`, `data-authors=\"1\"` (only events with a known author), `data-free=\"1\"`, `data-near=\"<lat>,<lng>\"` + `data-radius` (km, default 25; replaces the metro scope), `data-filters=\"off\"` (hide the visitor filter toolbar).\nDates and prices render in the metro's own locale and currency (e.g. 24-hour times and £ for London).\nVisitors stay on the host site: clicking an event opens a details panel inside the widget, whose only outbound link is the venue's own ticket/event page.\nLive builder: https://findlocal.community/widgets.\n\n100 calls a month free. No card.\n\n86,498Upcoming events\n\n51,774In the next 30 days\n\n14,921Venues tracked\n\n84Metros (US + UK)\n\nCounted from the live database on Oct 25, 2026.\n\nOne GET. Real events.\n\nRequest\n\n```\ncurl \"https://findlocal.community/api/events?city=boston&when=weekend&free=1\" \\\n  -H \"Authorization: Bearer $FINDLOCAL_KEY\"\n```\n\nResponse — live, trimmed\n\n```\n{\n  \"data\": [\n    {\n      \"id\": \"799b5db3-bfe0-419c-9d1c-61562822047c\",\n      \"title\": \"Poetry Days Presents: An Evening with Victoria Chang\",\n      \"event_date\": \"2026-10-28\",\n      \"start_time\": \"19:00\",\n      \"category\": \"literary\",\n      \"price\": \"Free\",\n      \"venue_name\": \"Boston College\",\n      \"region\": \"Boston\"\n    }\n  ],\n  \"meta\": {\n    \"city\": \"Boston\",\n    \"total\": \"…\",\n    \"page\": 1\n  }\n}\n```\n\nFilter by metro, date, category, price, time of day, neighborhood, text, performer — or near=lat,lng.\n\nHyper-local: 4,301 trivia nights, 1,803 open mics, 1,484 karaoke nights and 1,952 storytimes among 86,498 upcoming events at 14,921 venues in 84 metros across the US and UK — counted live\n\nTicketed events sold through Ticketmaster and its partners — no free trivia night, no bookshop readingsource\n\nEvents created on Eventbrite — and not searchable by location since February 2020source\n\n“200M+ events listed globally” across 40k+ cities; no US figure publishedsource\n\nWhatever Google shows for the query — a live search per call, up to 500 results, not a cataloguesource\n\nScraped Eventbrite listings plus organizer submissions\n\nGoogle search results and the Places API (not affiliated with Google)source\n\nCompetitor details are as of September 2026 and may have changed; follow the source links. FindLocal's numbers are counted from the live database. Product names belong to their owners; this page is not affiliated with or endorsed by them. Something wrong? Email a correction and we'll fix it.\n\nPricing\n\nStart free, no card. One key for the JSON API and the MCP server. Widgets are free.\n\nNeed more than Business — a bigger quota, a higher burst limit, invoicing, or a data licence? Email elliot@findlocal.community for an enterprise plan.\n\nFAQ\n\nWhat makes it hyper-local?\n\nWe read venues' own websites, so the catalogue has what never reaches a ticketing platform: 4,301 trivia nights, 1,803 open mics and 1,952 storytimes are upcoming right now, next to the concerts and theater.\n\nWhere does the data come from?\n\nStraight from the source: each venue's own calendar page, re-read daily, with ticketing feeds for arena shows. Every event carries its venue, coordinates, neighborhood, category, price and a link back.\n\nDo I need a credit card to start?\n\nNo. The free tier is 100 calls a month with no card. Sign up, create a key, make a request.\n\nCan I try it before signing up?\n\nYes. The playground in the API docs runs real queries with no key, capped at a few rows per call.\n\nDoes one key cover the API and the MCP server?\n\nYes. The JSON API and the MCP server share one key and one monthly quota. Widgets are free and need no key at all.\n\nWhat happens when I hit my limit?\n\nOn Free, requests past the monthly quota return 429 until the 1st. Paid plans never stop: calls past the quota cost $0.002 each on your next invoice. Indie is $9/month for 10,000 calls, Business $49/month for 75,000 (launch prices, locked in for life if you subscribe before Nov 15, 2026). Need more? Email elliot@findlocal.community.\n\nWhat is Event Intelligence?\n\nEvery event is classified before it is published: a category, event types from a fixed vocabulary of 44, a confidence score, the performers on the bill, and a check that it is a real, attendable event (closures, deadlines and placeholder rows are filtered out). It is included on every plan.\n\nWhich cities are covered?\n\n84 metros across the US and UK today — see the coverage map above, or run a query on any of them in Explore.\n\nDo I have to credit FindLocal?\n\nOn the Free plan, yes: a small \"Event data by FindLocal\" link wherever the data appears. Paid plans need no attribution.", "url": "https://wpnews.pro/news/us-and-uk-local-events-api", "canonical_source": "https://findlocal.community/", "published_at": "2026-10-25 16:55:24+00:00", "updated_at": "2026-10-25 17:12:42.668828+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["FindLocal", "FindLocal Events API", "MCP server"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/us-and-uk-local-events-api", "markdown": "https://wpnews.pro/news/us-and-uk-local-events-api.md", "text": "https://wpnews.pro/news/us-and-uk-local-events-api.txt", "jsonld": "https://wpnews.pro/news/us-and-uk-local-events-api.jsonld"}}