Build the AI Agent for WC2026
FIFA has selected Yalo as the exclusive AI technology partner for the 2026 World Cup. Your mission is to build an intelligent agent that acts as the official fan companion — helping supporters from around the world browse matches, purchase tickets, and get answers to their most pressing questions.
The agent must be able to interact with the FIFA WC2026 API on behalf of a fan, reason about the available data, and respond in a natural, helpful manner — just as a world-class human support agent would.
🏆 This is the largest sporting event in human history. 104 matches. 48 nations. 3 host countries. Billions of fans. Your agent is their first point of contact.
How it works
/auth/token endpoint. All subsequent requests require this token in the Authorization header.
/matches endpoint to list fixtures. Filter by stage, city, or team. Retrieve ticket availability per category.
/orders. The API tracks seat inventory in real time — if a category sells out, the order is rejected.
Authentication
The API uses JWT Bearer token authentication. To obtain a token,
call POST /auth/token with your credentials. Include the token in every
subsequent request via the Authorization header.
🔒 Credentials will be shared internally by the Yalo management team. Do not share your credentials with other participants.
{
"email": "your.name@yalo.com",
"password": "··········"
}
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
Authorization: Bearer <access_token>
Endpoints
The base URL will be provided alongside your credentials. All responses are JSON. The full interactive reference is available at /docs.
?stage, ?city, and ?team filters.Ticket Categories
Every match offers four ticket categories at different price points. Inventory is live — once a category sells out it cannot be purchased. Group stage and knockout pricing differ.
Group stage
Semifinals & Final — premium pricing applies
Maximum 10 tickets per category per order. Multiple categories can be included in a single order.
Payment
Every order must include a payment object with a credit card number
and a PIN. The API validates the PIN before processing the purchase — an invalid PIN returns
a 422 Unprocessable Entity and no seats are reserved.
PIN format
The PIN is a 4-digit code derived from the card number: the first 2 digits of the card followed by the last 2 digits of the card.
Card number : 9876543210987654 First 2 : 98 Last 2 : 54 PIN : 9854
{
"payment": {
"card_number": "9876543210987654",
"pin": "9854"
},
"items": [
{
"ticket_category_id": 12,
"quantity": 2
}
]
}
⚠️ This is a mock payment system. No real transaction is processed. The PIN rule exists as a challenge mechanic — your agent must derive the correct PIN from the card number before placing an order.
Fan Support Questions
Beyond ticketing, your agent must act as an always-on support companion. FIFA has provided an extensive dataset of frequently asked questions curated from decades of World Cup fan interactions. Your agent is expected to handle questions like the following:
The full FAQ dataset is available directly from the API — no authentication required. Your agent should be able to answer all questions fluently, combining live API data where relevant with the static FAQ knowledge base.
Swagger UI
The full interactive API reference is auto-generated and available at /docs. Use it to explore request/response schemas, try out endpoints directly from your browser, and copy example payloads for your agent.
💡 Use the Authorize button in Swagger UI to enter your Bearer token once — all subsequent requests in the session will include it automatically.