{
  "openapi": "3.1.0",
  "info": {
    "title": "SandboxAPIs — Codex Analytics (paths only)",
    "version": "coverage-manifest-rev-5",
    "summary": "The 3 read paths SandboxAPIs serves on Codex Analytics.",
    "description": "Every read SandboxAPIs serves on Codex Analytics, pointed at https://chatgpt.sandboxapis.dev.\n\n3 requests, one per served row of our coverage manifest. PATHS ONLY: this file carries no request or\nresponse schema, because a schema is the part of an API description we do not own. It is generated from\ncoverage/COVERAGE_MANIFEST.yaml — our own record of what THIS host answers — and never from a vendor's\npublished specification, several of which may not be redistributed.\n\nThe host is read-only. Every write verb answers the provider's own error shape with a message naming what was\nattempted; the \"Read-only refusal, on purpose\" folder holds one so the shape is discoverable.\n\nNo credentials are needed — any value in `apiKey` is accepted, and a real SandboxAPIs key only raises the rate\nlimit. Path variables left blank are identifiers that move when the live host re-rolls; fill them from a list\nresponse."
  },
  "servers": [
    {
      "url": "https://chatgpt.sandboxapis.dev",
      "description": "The live Codex Analytics host"
    }
  ],
  "security": [
    {
      "sandboxapisKey": []
    }
  ],
  "components": {
    "securitySchemes": {
      "sandboxapisKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Authorization: Bearer <key>"
      }
    }
  },
  "paths": {
    "/v1/analytics/codex/workspaces/{workspace_id}/code_review_responses": {
      "get": {
        "summary": "GET /v1/analytics/codex/workspaces/{workspace_id}/code_review_responses",
        "operationId": "get_v1_analytics_codex_workspaces_workspace_id_code_review_responses",
        "tags": [
          "codex-code-review-responses"
        ],
        "description": "Served by SandboxAPIs. Answer mode: empty. Answers an EMPTY collection, and that is the true answer for this universe — not a gap. The response side of the same fact: with no code reviews, there are no review responses (DECISIONS 2026-08-18 [P32] decision 4)",
        "x-sandboxapis-mode": "empty",
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5"
          }
        ],
        "responses": {
          "200": {
            "description": "The provider's own response shape. This document describes paths only and carries no schema."
          }
        }
      }
    },
    "/v1/analytics/codex/workspaces/{workspace_id}/code_reviews": {
      "get": {
        "summary": "GET /v1/analytics/codex/workspaces/{workspace_id}/code_reviews",
        "operationId": "get_v1_analytics_codex_workspaces_workspace_id_code_reviews",
        "tags": [
          "codex-code-reviews"
        ],
        "description": "Served by SandboxAPIs. Answer mode: empty. Answers an EMPTY collection, and that is the true answer for this universe — not a gap. The two-seat Codex trial uses CLI and IDE clients and never enabled the GitHub review integration, so no code review exists to report (DECISIONS 2026-08-18 [P32] decision 4)",
        "x-sandboxapis-mode": "empty",
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5"
          }
        ],
        "responses": {
          "200": {
            "description": "The provider's own response shape. This document describes paths only and carries no schema."
          }
        }
      }
    },
    "/v1/analytics/codex/workspaces/{workspace_id}/usage": {
      "get": {
        "summary": "GET /v1/analytics/codex/workspaces/{workspace_id}/usage",
        "operationId": "get_v1_analytics_codex_workspaces_workspace_id_usage",
        "tags": [
          "codex-usage"
        ],
        "description": "Served by SandboxAPIs. Answer mode: derive.",
        "x-sandboxapis-mode": "derive",
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5"
          }
        ],
        "responses": {
          "200": {
            "description": "The provider's own response shape. This document describes paths only and carries no schema."
          }
        }
      }
    }
  }
}
