{
  "openapi": "3.0.3",
  "info": {
    "title": "Form Guide",
    "version": "1.0.0",
    "description": "Football fixtures, results, form and league tables for the Premier League, Championship, La Liga, Bundesliga, Serie A and Ligue 1, 2026/27 season. Understands everyday club names (Spurs, Man Utd, Barca, PSG, Wolves). Every answer has a ready-to-read `say` line. Stats only: no betting tips or odds. Read only, no account, nothing stored. Data: openfootball (public domain), updated after each round.",
    "contact": { "email": "hello@askmizan.com" }
  },
  "servers": [{ "url": "https://formguide.pages.dev" }],
  "paths": {
    "/v1/team": { "get": { "operationId": "getTeam", "summary": "A club's league position, recent form and next games", "description": "Use for \"how are Arsenal doing?\", \"what's Spurs' form?\", \"when do Birmingham play next?\".", "parameters": [ { "name": "team", "in": "query", "required": true, "schema": { "type": "string", "example": "Arsenal" } }, { "name": "league", "in": "query", "required": false, "description": "Only needed if two clubs share a name.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Team summary" }, "404": { "description": "Club not found" } } } },
    "/v1/fixtures": { "get": { "operationId": "getFixtures", "summary": "Upcoming fixtures for a club or a league", "description": "Use for \"who do Liverpool play next?\" or \"what's on in La Liga this weekend?\". Without team or league, gives the Premier League.", "parameters": [ { "name": "team", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "league", "in": "query", "required": false, "description": "premier league, championship, la liga, bundesliga, serie a, ligue 1", "schema": { "type": "string" } }, { "name": "days", "in": "query", "required": false, "description": "How far ahead, 1 to 60. Default 21. If nothing falls in the window (an international break), the next fixtures are returned anyway.", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Fixtures" } } } },
    "/v1/results": { "get": { "operationId": "getResults", "summary": "Latest results for a club, or the last round of a league", "parameters": [ { "name": "team", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "league", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "n", "in": "query", "required": false, "description": "How many of the club's results, 1 to 20. Default 5.", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Results" } } } },
    "/v1/table": { "get": { "operationId": "getTable", "summary": "League table", "parameters": [ { "name": "league", "in": "query", "required": false, "description": "Default premier league.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Table" } } } },
    "/v1/match": { "get": { "operationId": "compareTeams", "summary": "Two clubs side by side before they meet", "description": "Use for \"Arsenal v Leeds, how do they compare?\". Gives positions, form, goals, this season's meeting and the next date they play. Stats only; never give betting advice from it.", "parameters": [ { "name": "home", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "away", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Comparison" }, "404": { "description": "Club not found" } } } },
    "/v1/health": { "get": { "operationId": "health", "summary": "Service status", "responses": { "200": { "description": "OK" } } } }
  }
}
