{
  "openapi": "3.1.0",
  "info": {
    "title": "FootballAPIs API",
    "version": "1",
    "summary": "Free, read-only facts about football data APIs: prices, free plans, league coverage and data types, with sources.",
    "description": "Free, read-only facts about football data APIs: prices, free plans, league coverage and data types, with sources. Static, read-only JSON files: no key, no sign-up. Facts as of 2026-10-19. Verify on the vendor page before relying on them. \"unknown\" means not confirmed on public pages, never \"no\". Docs: https://footballapis.com/api/. MCP server: https://footballapis.com/mcp.",
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "contact": {
      "name": "FootballAPIs",
      "url": "https://footballapis.com/",
      "email": "hello@footballapis.com"
    }
  },
  "externalDocs": {
    "description": "API and MCP docs",
    "url": "https://footballapis.com/api/"
  },
  "servers": [
    {
      "url": "https://footballapis.com/api/v1"
    }
  ],
  "paths": {
    "/index.json": {
      "get": {
        "operationId": "getIndex",
        "summary": "Every endpoint, the MCP URL and the licence",
        "responses": {
          "200": {
            "description": "Every endpoint, the MCP URL and the licence",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Index"
                }
              }
            }
          }
        }
      }
    },
    "/providers.json": {
      "get": {
        "operationId": "listProviders",
        "summary": "All providers",
        "responses": {
          "200": {
            "description": "All providers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProvidersFile"
                }
              }
            }
          }
        }
      }
    },
    "/providers/{slug}.json": {
      "get": {
        "operationId": "getProvider",
        "summary": "One provider",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Provider slug, as in /p/{slug}/.",
            "schema": {
              "type": "string",
              "enum": [
                "api-football-api-sports",
                "data-sports-group-dsg",
                "entity-sports",
                "football-data-org",
                "footballant",
                "goalserve",
                "highlightly",
                "isports-api",
                "openligadb",
                "sportdevs",
                "sportmonks",
                "sportradar",
                "sportsdataio-soccer",
                "sportsgameodds",
                "stats-perform-opta",
                "statsbomb-open-data-hudl",
                "thesportsdb"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One provider",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderFile"
                }
              }
            }
          },
          "404": {
            "description": "No provider with this slug."
          }
        }
      }
    },
    "/changes.json": {
      "get": {
        "operationId": "listChanges",
        "summary": "Dated data and site changes, newest first",
        "responses": {
          "200": {
            "description": "Dated data and site changes, newest first",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangesFile"
                }
              }
            }
          }
        }
      }
    },
    "/checks.json": {
      "get": {
        "operationId": "getChecks",
        "summary": "Latest daily reachability checks, 90-day summary and live API checks",
        "description": "Served by the Worker from the daily checks (cached 10 minutes). Reachability is of public pages, not API uptime, unless kind is api/dataset.",
        "responses": {
          "200": {
            "description": "Latest daily reachability checks, 90-day summary and live API checks",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChecksFile"
                }
              }
            }
          }
        }
      }
    },
    "/sponsor.json": {
      "get": {
        "operationId": "getSponsorship",
        "summary": "Sponsorship offers and rules",
        "responses": {
          "200": {
            "description": "Sponsorship offers and rules",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Sponsorship"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenApi",
        "summary": "This OpenAPI description",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ProviderRecord": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Stable ID, the same as the page URL /p/<slug>/."
          },
          "name": {
            "type": "string",
            "description": "Provider name."
          },
          "url": {
            "type": "string",
            "description": "The provider page on FootballAPIs."
          },
          "website": {
            "type": "string"
          },
          "docsUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "statusPage": {
            "type": [
              "null",
              "string"
            ]
          },
          "apiStyle": {
            "type": [
              "string",
              "null"
            ],
            "description": "e.g. \"REST\", \"REST + WebSockets (add-on)\"."
          },
          "freePlan": {
            "type": "string",
            "enum": [
              "yes",
              "trial",
              "no",
              "unknown"
            ],
            "description": "\"trial\" = a free trial only, not an ongoing free plan."
          },
          "freePlanNote": {
            "type": [
              "null",
              "string"
            ],
            "description": "The free plan as the vendor describes it."
          },
          "cheapestPaidKind": {
            "type": "string",
            "enum": [
              "numeric",
              "quote",
              "free",
              "unknown"
            ],
            "description": "\"quote\" = contact sales; \"free\" = no paid plans."
          },
          "cheapestPaid": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "display": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "period": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "display",
              "amount",
              "currency",
              "period"
            ],
            "description": "{display, amount, currency, period}: the lowest clear public paid price, at face value. period is \"month\" or null."
          },
          "leagueCount": {
            "type": [
              "string",
              "null"
            ],
            "description": "The vendor's own league count, as written."
          },
          "leagues": {
            "type": "object",
            "properties": {
              "premier_league": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "championship": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "laliga": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "serie_a": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "bundesliga": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "ligue_1": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "primeira_liga": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "mls": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              },
              "champions_league": {
                "type": "string",
                "enum": [
                  "yes",
                  "no",
                  "unknown"
                ]
              }
            },
            "required": [
              "premier_league",
              "championship",
              "laliga",
              "serie_a",
              "bundesliga",
              "ligue_1",
              "primeira_liga",
              "mls",
              "champions_league"
            ],
            "description": "One key per league (premier_league, championship, laliga, serie_a, bundesliga, ligue_1, primeira_liga, mls, champions_league): \"yes\" | \"no\" | \"unknown\"."
          },
          "leaguesNote": {
            "type": [
              "string",
              "null"
            ]
          },
          "aliases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other well-known names (e.g. \"API-Sports\", \"Opta\", \"StatsBomb\"). The MCP tools accept the slug, name or any alias."
          },
          "dataTypes": {
            "type": "object",
            "properties": {
              "fixtures": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "live_scores": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "lineups": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "events": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "player_stats": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "xg": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "odds": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "injuries": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "transfers": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "predictions": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "historical_depth": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "fantasy": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "media": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "news": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              },
              "tracking": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": [
                      "yes",
                      "addon",
                      "no",
                      "unknown"
                    ]
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "state",
                  "note"
                ]
              }
            },
            "required": [
              "fixtures",
              "live_scores",
              "lineups",
              "events",
              "player_stats",
              "xg",
              "odds",
              "injuries",
              "transfers",
              "historical_depth"
            ],
            "description": "One key per data type (e.g. live_scores, odds, xg): {state: \"yes\" | \"addon\" | \"no\" | \"unknown\", note}. \"addon\" = listed, but sold as a paid add-on on top of a plan (price in addons). A note about the vendor's website (not its API) counts as \"unknown\"."
          },
          "addons": {
            "type": "object",
            "properties": {
              "odds": {
                "type": "string"
              },
              "news": {
                "type": "null"
              },
              "xg": {
                "type": "null"
              },
              "predictions": {
                "type": "null"
              }
            },
            "description": "Data types sold as a paid add-on, with the price as written: e.g. {\"odds\": \"€15/mo\"}; null = price not stated on the page we hold. Empty when there are none. addonDetails adds {price, source, note} per add-on."
          },
          "addonDetails": {
            "type": "object",
            "properties": {
              "odds": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "price",
                  "source",
                  "note"
                ]
              },
              "news": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "null"
                  },
                  "source": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "price",
                  "source",
                  "note"
                ]
              },
              "xg": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "null"
                  },
                  "source": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "price",
                  "source",
                  "note"
                ]
              },
              "predictions": {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "null"
                  },
                  "source": {
                    "type": "string"
                  },
                  "note": {
                    "type": "string"
                  }
                },
                "required": [
                  "price",
                  "source",
                  "note"
                ]
              }
            }
          },
          "pricing": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "plan": {
                  "type": "string"
                },
                "price": {
                  "type": "string"
                },
                "limits": {
                  "type": "string"
                }
              },
              "required": [
                "plan",
                "price",
                "limits"
              ]
            },
            "description": "Every public plan: {plan, price, limits}, as written on the vendor page."
          },
          "verification": {
            "type": "object",
            "properties": {
              "pricing": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "partial",
                      "unverified"
                    ]
                  },
                  "lastVerified": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "note": {
                    "type": "string"
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "vendor_plus_independent",
                      "vendor_only",
                      "unconfirmed"
                    ]
                  },
                  "confidenceLabel": {
                    "type": "string"
                  },
                  "independentSource": {
                    "type": "null"
                  },
                  "crossChecks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "party": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string"
                        },
                        "confirms": {
                          "type": "boolean"
                        },
                        "conflict": {
                          "type": "boolean"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url",
                        "party",
                        "kind",
                        "confirms",
                        "conflict",
                        "note"
                      ]
                    }
                  }
                },
                "required": [
                  "status",
                  "lastVerified",
                  "sources",
                  "note",
                  "confidence",
                  "confidenceLabel",
                  "independentSource",
                  "crossChecks"
                ]
              },
              "free_tier": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "partial",
                      "unverified"
                    ]
                  },
                  "lastVerified": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "note": {
                    "type": "string"
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "vendor_plus_independent",
                      "vendor_only",
                      "unconfirmed"
                    ]
                  },
                  "confidenceLabel": {
                    "type": "string"
                  },
                  "independentSource": {
                    "type": "null"
                  },
                  "crossChecks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "party": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string"
                        },
                        "confirms": {
                          "type": "boolean"
                        },
                        "conflict": {
                          "type": "boolean"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url",
                        "party",
                        "kind",
                        "confirms",
                        "conflict",
                        "note"
                      ]
                    }
                  }
                },
                "required": [
                  "status",
                  "lastVerified",
                  "sources",
                  "note",
                  "confidence",
                  "confidenceLabel",
                  "independentSource",
                  "crossChecks"
                ]
              },
              "coverage": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "partial",
                      "unverified"
                    ]
                  },
                  "lastVerified": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "note": {
                    "type": "string"
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "vendor_plus_independent",
                      "vendor_only",
                      "unconfirmed"
                    ]
                  },
                  "confidenceLabel": {
                    "type": "string"
                  },
                  "independentSource": {
                    "type": "null"
                  },
                  "crossChecks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "party": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string"
                        },
                        "confirms": {
                          "type": "boolean"
                        },
                        "conflict": {
                          "type": "boolean"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url",
                        "party",
                        "kind",
                        "confirms",
                        "conflict",
                        "note"
                      ]
                    }
                  }
                },
                "required": [
                  "status",
                  "lastVerified",
                  "sources",
                  "note",
                  "confidence",
                  "confidenceLabel",
                  "independentSource",
                  "crossChecks"
                ]
              },
              "data_types": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "partial",
                      "unverified"
                    ]
                  },
                  "lastVerified": {
                    "type": "null"
                  },
                  "sources": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "note": {
                    "type": "string"
                  },
                  "confidence": {
                    "type": "string",
                    "enum": [
                      "vendor_plus_independent",
                      "vendor_only",
                      "unconfirmed"
                    ]
                  },
                  "confidenceLabel": {
                    "type": "string"
                  },
                  "independentSource": {
                    "type": "null"
                  },
                  "crossChecks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": "string"
                        },
                        "party": {
                          "type": "string"
                        },
                        "kind": {
                          "type": "string"
                        },
                        "confirms": {
                          "type": "boolean"
                        },
                        "conflict": {
                          "type": "boolean"
                        },
                        "note": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url",
                        "party",
                        "kind",
                        "confirms",
                        "conflict",
                        "note"
                      ]
                    }
                  }
                },
                "required": [
                  "status",
                  "lastVerified",
                  "sources",
                  "note",
                  "confidence",
                  "confidenceLabel",
                  "independentSource",
                  "crossChecks"
                ]
              }
            },
            "required": [
              "pricing",
              "free_tier",
              "coverage",
              "data_types"
            ],
            "description": "Per fact group (pricing, free_tier, coverage, data_types): {status: \"verified\" | \"partial\" | \"unverified\", lastVerified, sources, note, confidence, confidenceLabel, independentSource, crossChecks}."
          },
          "lastChecked": {
            "type": [
              "string",
              "null"
            ],
            "description": "Most recent lastVerified date across fact groups."
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Every public page used."
          },
          "notes": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "required": [
          "slug",
          "name",
          "url",
          "website",
          "docsUrl",
          "statusPage",
          "apiStyle",
          "freePlan",
          "freePlanNote",
          "cheapestPaidKind",
          "cheapestPaid",
          "leagueCount",
          "leagues",
          "leaguesNote",
          "aliases",
          "dataTypes",
          "addons",
          "addonDetails",
          "pricing",
          "verification",
          "lastChecked",
          "sources",
          "notes"
        ]
      },
      "Change": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "provider": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": "string"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "date",
          "type",
          "provider",
          "summary",
          "sources",
          "url"
        ]
      },
      "Index": {
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "dataAsOf": {
            "type": "string"
          },
          "licence": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "attribution": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url",
              "attribution"
            ]
          },
          "disclaimer": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "documentation": {
            "type": "string"
          },
          "openapi": {
            "type": "string"
          },
          "endpoints": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "slugs": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "url",
                "description"
              ]
            }
          },
          "legacy": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mcp": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              },
              "transport": {
                "type": "string"
              },
              "authentication": {
                "type": "string"
              },
              "tools": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "serverCard": {
                "type": "string"
              }
            },
            "required": [
              "url",
              "transport",
              "authentication",
              "tools",
              "serverCard"
            ]
          },
          "agents": {
            "type": "object",
            "properties": {
              "guide": {
                "type": "string"
              },
              "llms": {
                "type": "string"
              },
              "llmsFull": {
                "type": "string"
              },
              "markdown": {
                "type": "string"
              }
            },
            "required": [
              "guide",
              "llms",
              "llmsFull",
              "markdown"
            ]
          }
        },
        "required": [
          "apiVersion",
          "generatedAt",
          "dataAsOf",
          "licence",
          "disclaimer",
          "name",
          "description",
          "documentation",
          "openapi",
          "endpoints",
          "legacy",
          "mcp",
          "agents"
        ]
      },
      "Sponsorship": {
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "pricingLabel": {
            "type": "string"
          },
          "offers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "price": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer"
                },
                "currency": {
                  "type": "string"
                },
                "unit": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "price",
                "amount",
                "currency",
                "unit",
                "description"
              ]
            }
          },
          "promotion": {
            "type": "string"
          },
          "policy": {
            "type": "string"
          },
          "placement": {
            "type": "string"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "contact": {
            "type": "object",
            "properties": {
              "text": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "mailto": {
                "type": "string"
              }
            },
            "required": [
              "text",
              "email",
              "mailto"
            ]
          },
          "independencePolicy": {
            "type": "string"
          }
        },
        "required": [
          "apiVersion",
          "generatedAt",
          "name",
          "url",
          "pricingLabel",
          "offers",
          "promotion",
          "policy",
          "placement",
          "rules",
          "contact",
          "independencePolicy"
        ]
      },
      "ProvidersFile": {
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "dataAsOf": {
            "type": "string"
          },
          "licence": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "attribution": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url",
              "attribution"
            ]
          },
          "disclaimer": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderRecord"
            }
          }
        },
        "required": [
          "apiVersion",
          "generatedAt",
          "dataAsOf",
          "licence",
          "disclaimer",
          "count",
          "providers"
        ]
      },
      "ProviderFile": {
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "dataAsOf": {
            "type": "string"
          },
          "licence": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "attribution": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url",
              "attribution"
            ]
          },
          "disclaimer": {
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderRecord"
          }
        },
        "required": [
          "apiVersion",
          "generatedAt",
          "dataAsOf",
          "licence",
          "disclaimer",
          "provider"
        ]
      },
      "ChangesFile": {
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string"
          },
          "generatedAt": {
            "type": "string"
          },
          "dataAsOf": {
            "type": "string"
          },
          "licence": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "attribution": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url",
              "attribution"
            ]
          },
          "disclaimer": {
            "type": "string"
          },
          "count": {
            "type": "integer"
          },
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Change"
            }
          }
        },
        "required": [
          "apiVersion",
          "generatedAt",
          "dataAsOf",
          "licence",
          "disclaimer",
          "count",
          "changes"
        ]
      },
      "ChecksFile": {
        "type": "object",
        "properties": {
          "generatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "schedule": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "kinds": {
            "type": "object"
          },
          "note": {
            "type": "string",
            "description": "\"No checks yet\" before the first run."
          },
          "latest": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "One reachability result; kind \"api\"/\"dataset\" means a keyless public endpoint, else a public web page.",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "target": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "kind": {
                  "type": "string"
                },
                "checkedAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "status": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "ok": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "ms": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "error": {
                  "type": "string"
                },
                "skipped": {
                  "type": "string"
                }
              },
              "required": [
                "slug"
              ]
            }
          },
          "last90": {
            "type": "array",
            "description": "Per provider: days checked, % reachable, median response ms.",
            "items": {
              "type": "object"
            }
          },
          "liveApi": {
            "type": "object",
            "properties": {
              "schedule": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "providers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "latest": {
                "type": "array",
                "items": {
                  "type": "object",
                  "description": "One live API check: a real call on a free plan or keyless endpoint.",
                  "properties": {
                    "slug": {
                      "type": "string"
                    },
                    "kind": {
                      "const": "live_api"
                    },
                    "endpoint": {
                      "type": "string"
                    },
                    "checkedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "status": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "ms": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "validData": {
                      "type": "boolean"
                    },
                    "evidence": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "rateLimit": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "skipped": {
                      "type": "string"
                    },
                    "note": {
                      "type": "string"
                    },
                    "retried": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "slug"
                  ]
                }
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "schedule",
              "label",
              "providers",
              "latest"
            ]
          }
        },
        "required": [
          "generatedAt",
          "schedule",
          "label",
          "userAgent",
          "latest",
          "liveApi"
        ]
      }
    }
  }
}
