{
    "name": "Ticket Fairy",
    "description": "Ticket Fairy is a ticketing platform. People find and buy tickets to events. Organisers sell tickets, promote and run their events.",
    "url": "https://www.ticketfairy.com/",
    "documentation": "https://www.ticketfairy.com/developers",
    "api": {
        "openapi": "https://www.ticketfairy.com/api/v1/openapi.json",
        "catalog": "https://www.ticketfairy.com/.well-known/api-catalog",
        "versioning_policy": "https://www.ticketfairy.com/api/v1/versioning.md",
        "rate_limits": "The event listing, the ask endpoint and the public MCP server send the RateLimit-Policy and RateLimit headers. A 429 response carries Retry-After, the number of seconds to wait.",
        "endpoints": [
            {
                "name": "Public event listing",
                "method": "GET",
                "url": "https://www.ticketfairy.com/api/v1/events/listing",
                "authentication": "none",
                "description": "Search public events by words, country, region and date. Follow data.pagination.nextCursor to the next page."
            },
            {
                "name": "Ask in plain language (NLWeb)",
                "method": "GET, POST",
                "url": "https://www.ticketfairy.com/ask",
                "authentication": "none",
                "description": "Ask a question such as \"jazz in Melbourne this weekend\" and get matching events as JSON or as a stream."
            },
            {
                "name": "Organiser API",
                "method": "GET, POST, PUT, PATCH, DELETE",
                "url": "https://www.theticketfairy.com/api/",
                "authentication": "bearer",
                "description": "Manage your own brands, events, tickets and orders. The token carries your role, so it reaches only the brands you can reach."
            }
        ]
    },
    "authentication": {
        "public": "The event listing, the ask endpoint and the public MCP server need no credential.",
        "personal_access_token": {
            "description": "For your own scripts. Create a token in your account settings, then send it in the Authorization header.",
            "create_at": "https://manage.ticketfairy.com/account",
            "header": "Authorization: Bearer <token>"
        },
        "oauth": {
            "description": "For an AI agent that acts for a person. The person approves the agent in their browser, then the agent gets an OAuth token.",
            "instructions": "https://www.ticketfairy.com/auth.md",
            "authorization_server_metadata": "https://www.ticketfairy.com/.well-known/oauth-authorization-server",
            "protected_resource_metadata": "https://www.ticketfairy.com/.well-known/oauth-protected-resource",
            "scopes": [
                "profile"
            ]
        }
    },
    "capabilities": [
        {
            "name": "Find events",
            "description": "Search public events by words, place and date, and get the link to each event page."
        },
        {
            "name": "Buy tickets",
            "description": "Send the person to the event page link to choose tickets and pay in their browser."
        },
        {
            "name": "Organise events",
            "description": "With a credential, create and manage events, tickets and orders for the brands the person can reach."
        }
    ],
    "sdks": [
        {
            "name": "React checkout SDK",
            "package": "npm:tf-checkout-react",
            "url": "https://www.npmjs.com/package/tf-checkout-react",
            "description": "A checkout with no Ticket Fairy branding for your own React website."
        },
        {
            "name": "React Native checkout SDK",
            "package": "npm:tf-checkout-react-native",
            "url": "https://www.npmjs.com/package/tf-checkout-react-native",
            "documentation": "https://github.com/theticketfairy/tf-checkout-react-native#readme",
            "description": "Ticket sales inside your own iOS or Android app, with payments through Stripe."
        }
    ],
    "agent_interfaces": {
        "mcp": {
            "url": "https://www.ticketfairy.com/agentic/mcp",
            "transport": "streamable-http",
            "server_card": "https://www.ticketfairy.com/.well-known/mcp/server-card.json"
        },
        "a2a": {
            "agent_card": "https://www.ticketfairy.com/.well-known/agent-card.json"
        },
        "nlweb": {
            "url": "https://www.ticketfairy.com/ask"
        },
        "agent_skills": "https://www.ticketfairy.com/.well-known/agent-skills/index.json",
        "llms_txt": "https://www.ticketfairy.com/llms.txt"
    }
}
