{
  "openapi": "3.1.0",
  "info": {
    "title": "ArbPlay Odds HTTP API",
    "description": "Origin odds API at https://api.arbplay.app. Authenticate with header X-API-Key. List allowed JSON filenames, then download odds payloads. Marketplace proxies (RapidAPI, JoJ API, Zyla Labs) may add their own proxy secret headers.",
    "version": "1.0.0",
    "contact": {
      "name": "ArbPlay",
      "email": "info@arbplay.app",
      "url": "https://arbplay.app/contact"
    },
    "termsOfService": "https://arbplay.app/terms"
  },
  "servers": [
    {
      "url": "https://api.arbplay.app",
      "description": "Origin odds API"
    }
  ],
  "security": [
    {
      "ApiKeyHeader": []
    }
  ],
  "paths": {
    "/v1/files": {
      "get": {
        "operationId": "listFiles",
        "summary": "List allowed odds filenames",
        "description": "Returns the filenames the calling API key is permitted to download.",
        "tags": [
          "Odds"
        ],
        "responses": {
          "200": {
            "description": "Allowed filenames",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "files": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "examples": [
                        [
                          "site_live_stoiximan.json",
                          "site_pregame_stoiximan_soccer.json"
                        ]
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          },
          "429": {
            "description": "Rate limited"
          }
        }
      }
    },
    "/v1/data/{filename}": {
      "get": {
        "operationId": "getOddsData",
        "summary": "Download odds JSON by filename",
        "description": "Returns the JSON odds payload for an allowed filename.",
        "tags": [
          "Odds"
        ],
        "parameters": [
          {
            "name": "filename",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Exact filename from GET /v1/files (e.g. site_live_stoiximan.json)",
            "examples": {
              "stoiximan_live": {
                "value": "site_live_stoiximan.json"
              },
              "fonbet": {
                "value": "site_livepre_fonbet.json"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Odds JSON payload",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Bookmaker odds document; shape varies by feed.",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Filename not allowed for this key"
          },
          "404": {
            "description": "Unknown filename"
          },
          "429": {
            "description": "Rate limited"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "API key issued by ArbPlay or via a marketplace subscription."
      }
    }
  },
  "externalDocs": {
    "description": "Developer hub on arbplay.app",
    "url": "https://arbplay.app/api"
  }
}
