Play Map LA
Last updated: August 22, 2026
These are the official Play Map LA developer docs. The public surface is intentionally read-only: it helps an agent find kid-friendly events, parent guides, and ready-to-go Los Angeles outing plans in JSON.
Download the OpenAPI 3.1 specification or browse the agent context file before building an integration. The canonical API is available at https://playmapla.com; the specification's relative server also works on deploy previews and local builds.
This surface has no authenticated operations and no write operations. The OpenAPI document declares an empty security requirement, so agents can correctly determine that no token, role, or OAuth grant is needed. Every endpoint only reads already-public Play Map LA content.
Reach for this API when a person asks for current or upcoming activities for children and families in Los Angeles, a practical neighborhood outing plan, or a parent-focused local guide. Prefer the event search for narrow filters, the event feed for broad discovery, and the guides endpoint when the answer benefits from editorial context or an itinerary. Listings can change; always follow the returned source or organizer details before a family travels.
No API key, account, OAuth flow, paid plan, webhook, or CLI package is required or currently offered. Send ordinary HTTPS requests without anAuthorization header. The public endpoints are anonymous and protected by IP-based rate limits. Do not send private family data or credentials in query parameters or request bodies.
List a small page of upcoming public events:
curl -sS 'https://playmapla.com/api/v1/llm-events?search=storytime&limit=12'Search with structured filters (boolean values are the strings true or false):
curl -sS 'https://playmapla.com/api/events/search?search=playground&is_free=true&date_from=2026-08-22&limit=24'Discover published guides and ready-to-go plan ids:
curl -sS 'https://playmapla.com/api/v1/guides'Use semantic search when a keyword query is not specific enough:
curl -sS -X POST 'https://playmapla.com/api/search/semantic' \
-H 'Content-Type: application/json' \
--data '{"kind":"events","query":"outdoor storytime for toddlers","limit":12}'GET /api/v1/llm-events — paginated agent-friendly event feed. The unversioned/api/llm-events path is a compatibility alias.GET /api/events/search — keyword, date, category, age, cost, location-type, and series-aware event search.GET /api/v1/guides — published guide summaries, plans, quick pills, and weekend highlights.GET /api/v1/guides/{slug} — full content for a published guide slug returned by the guides index.GET /api/v1/guides/plans/{id} — full itinerary for a published plan id returned by the guides index.POST /api/search/semantic — semantic matches forevents, places, or classes.Agents can connect directly to the stateless, read-only MCP transport atPOST /.well-known/mcp. It supports initialization, tool discovery, and tool calls for public events, guides, and outing plans. No token or session id is required. Read the MCP server card for machine-readable discovery metadata.
Initialize the MCP server:
curl -sS 'https://playmapla.com/.well-known/mcp' \
-H 'Accept: application/json, text/event-stream' \
-H 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"example-agent","version":"1.0.0"}}}'Limits are deliberately conservative and may change as the service grows. The event feed allows 30 normal requests per IP per hour, or 10 per hour when limit is above 250. Event search allows 300 requests per hour plus 60 per minute for narrowed requests (20 per minute for broad or high-volume requests). The guides index allows 120 requests per hour; guide and plan detail allow 180 per hour. Semantic search allows 30 per minute and 120 per hour. Successful read responses include cache headers; callers should cache them and avoid polling. Responses expose the applied fixed-window policies in RateLimit-Policy and current remaining/reset state inRateLimit.
A throttled response is HTTP 429 with a numericRetry-After header and a problem body. Wait at least that many seconds before retrying, and narrow the request when possible.
Version 1 is the current stable contract. Breaking changes receive a new major path; additive fields may appear within v1. Responses identify the contract with API-Version. Deprecated operations are marked in OpenAPI and return the RFC 9745 Deprecation header plus a policy link. The compatibility path /api/llm-events is deprecated in favor of /api/v1/llm-events. No sunset is currently scheduled. If one is scheduled, Play Map LA will provide at least 180 days notice and return an exact Sunset date before removal.
Documented public API failures useapplication/problem+json. Every problem has a stablecode, human-readable message, and actionableresolution; branch on code rather than matching prose.
{
"type": "https://playmapla.com/developers#errors",
"title": "Bad Request",
"status": 400,
"code": "invalid_query",
"message": "Expected YYYY-MM-DD",
"detail": "Expected YYYY-MM-DD",
"resolution": "Check the documented query parameter types and ranges, then retry."
}Common codes include invalid_query,invalid_request, invalid_json,guide_not_found, guide_plan_not_found,rate_limit_exceeded, event_search_unavailable,events_feed_unavailable, andsemantic_search_unavailable. A semantic 200 response may setdegraded: true when its vector backend is unavailable; an empty matches array in that case is not evidence that no activities exist.
Play Map LA curates public events, places, classes, and parent guides. Keep returned attribution, organizer, source, and date details when presenting results. For corrections or source updates, use thecontact page. Thesource policy explains how listings are reviewed.
POST /.well-known/mcp — live MCP transport