Ticket-alerts.live API & MCP server
Ticket-alerts.live makes its catalogue of monitored events available to AI agents and developers through a public MCP server, in-page WebMCP tools, a JSON search API and machine-readable pricing. Everything here is read-only and public, and needs no API key. Signing up for alerts still happens on the event page, where the user picks a plan and pays via Stripe (or chooses Free).
Quick links
- MCP server:
https://ticket-alerts.live/mcp - MCP discovery: /.well-known/mcp.json and the server card
- Search API:
GET https://ticket-alerts.live/api/search.json?q=<query>, described by the OpenAPI 3.1 spec at /openapi.json - API catalog (RFC 9727): /.well-known/api-catalog
- Pricing as Markdown: /pricing.md
- Site index for LLMs: /llms.txt; every URL: /sitemap.xml
MCP server
https://ticket-alerts.live/mcp speaks the Model Context Protocol over Streamable HTTP. It's stateless and
returns plain JSON responses (no SSE stream), with no authentication. Supported protocol versions:
2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05.
Connect
Add it to any MCP client that supports remote servers. For Claude Code:
claude mcp add --transport http ticket-alerts https://ticket-alerts.live/mcp Tools
| Tool | What it does | Arguments |
|---|---|---|
search_events | Search the events and artists/festivals/teams that Ticket-alerts.live monitors for face-value resale tickets. | query (required): stringlimit: integer |
list_upcoming_events | List upcoming events Ticket-alerts.live is currently monitoring for face-value resale tickets, featured events first, then by date. | category: "music" | "sport" | "festival" | "theatre" | "comedy" | "classical" | "family"limit: integer |
get_event | Get full details for one tracked event: venue, city, dates, which official resale platform is monitored, a short description, the sign-up URL, and the alert plans with prices in the event's currency. | slug (required): stringregion: "uk" | "eu" | "us" |
get_pricing | Get Ticket-alerts.live plans and prices. | region: "uk" | "eu" | "us" |
All tools are read-only. Results come back as text and structuredContent; hosts that
support MCP Apps also render them with the view below.
Resources
ui://ticket-alerts/results.html(text/html;profile=mcp-app): Interactive card view for event search results, event details and pricing (MCP Apps).ticket-alerts://pricing(text/markdown): Plans and prices for every region, as Markdown. Same content as https://ticket-alerts.live/pricing.md.
Example request
curl -s https://ticket-alerts.live/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_events","arguments":{"query":"Wimbledon"}}}' WebMCP tools in the browser
Pages on ticket-alerts.live register WebMCP tools with document.modelContext, so a browser
agent can act on the page without scraping it:
search_eventsandget_pricingon every page;get_event_detailsandsign_up_for_event_alertson event pages;request_event_trackingon /track-new-event.
The sign-up and tracking tools fill in and submit the page's own form. Paid plans stop at the Stripe checkout on the page for the user to complete; the agent never enters card details.
Search API
GET /api/search.json?q=<query> matches event names, artists, festivals, teams,
venues and cities (past and upcoming events). q takes 2–100 characters;
shorter queries return no hits and longer ones a query_too_long error. Each response has up to 6 subject hits (artist, festival or team
pages at /alerts/{slug}) and up to 12 event hits
(/event/{slug}). Responses are edge-cached for 60 seconds.
GET https://ticket-alerts.live/api/search.json?q=oasis
{
"q": "oasis",
"hits": [
{ "type": "subject", "slug": "oasis", "name": "Oasis", "kind": "artist", "thumbnail_url": "…" },
{ "type": "event", "slug": "…", "name": "…", "venue": "…", "city": "…", "dates": "…", "thumbnail_url": "…" }
]
}
The full contract is in the OpenAPI spec at /openapi.json. For upcoming
events only, with sign-up links and prices, use the MCP search_events and
get_event tools.
Errors
Every error under /api/, including unknown paths, is a JSON
RFC 9457 problem document
(application/problem+json). Besides the standard fields it carries a stable
code to branch on and a hint saying how to fix the request.
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json
{
"type": "https://ticket-alerts.live/developers#error-query_too_long",
"title": "Query too long",
"status": 400,
"detail": "q is 140 characters; the maximum is 100.",
"instance": "/api/search.json?q=…",
"code": "query_too_long",
"hint": "Shorten q to 100 characters or fewer: an artist, event, festival, team, venue or city name."
} | Code | Status | What to do |
|---|---|---|
bad_request | 400 | Check the parameters against the OpenAPI spec at https://ticket-alerts.live/openapi.json. |
query_too_long | 400 | Shorten q to 100 characters or fewer: an artist, event, festival, team, venue or city name. |
not_found | 404 | See https://ticket-alerts.live/openapi.json for the available endpoints, e.g. GET /api/search.json?q=oasis. |
method_not_allowed | 405 | The API is read-only: use GET (or HEAD). |
internal_error | 500 | Retry after a few seconds. If it keeps failing, email support@ticket-alerts.live with the request URL. |
search_unavailable | 503 | The event catalog could not be reached. Retry after the number of seconds in Retry-After. |
Pricing data
Plans and prices for every region are published as Markdown at /pricing.md,
as schema.org Offer JSON-LD on /pricing, and through the MCP
get_pricing tool.
Terms and support
Use of these interfaces is covered by our Terms of Service. Please cache results rather than polling. Found a bug or need something else? Email support@ticket-alerts.live.