{
  "openapi": "3.1.0",
  "info": {
    "title": "CageMetric Snapshot API",
    "version": "0.1.0",
    "description": "Read-only published snapshots. Query parameters, pagination, live prices, order execution and authenticated provider feeds are not supported. Client-side filter by promotion/event/fighter. Public Render requires no API key; private Sites retains its viewer authentication."
  },
  "servers": [
    {
      "url": "https://fightedge-public.onrender.com"
    }
  ],
  "paths": {
    "/api/v1/one.json": {
      "get": {
        "summary": "ONE upcoming events and public fighter profiles with source dates",
        "operationId": "one",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/one-odds.json": {
      "get": {
        "summary": "ONE Championship moneyline prices from BestFightOdds. Market prices, not predictions",
        "operationId": "one-odds",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sportsbook-odds.json": {
      "get": {
        "summary": "MMA sportsbook prices from The Odds API and the market consensus. Market prices, not betting advice",
        "operationId": "sportsbook-odds",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/events.json": {
      "get": {
        "summary": "UFC and PFL announced event/bout snapshots",
        "operationId": "events",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/statistics/ufc.json": {
      "get": {
        "summary": "Published UFCStats fighter and completed-event snapshot",
        "operationId": "statistics_ufc",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/models/status.json": {
      "get": {
        "summary": "Training coverage and retrospective evaluation",
        "operationId": "models_status",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/predictions.json": {
      "get": {
        "summary": "Per-fight model availability, including explicit abstentions",
        "operationId": "predictions",
        "responses": {
          "200": {
            "description": "Dated snapshot; inspect sourceCheckedAt and validated status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "apiVersion",
                    "generatedAt",
                    "mode",
                    "live",
                    "data"
                  ],
                  "properties": {
                    "apiVersion": {
                      "const": "1"
                    },
                    "generatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "mode": {
                      "const": "published-snapshot"
                    },
                    "live": {
                      "const": false
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
