{
  "info": {
    "_postman_id": "12e0629e-862f-9e13-2e74-23973bba131a",
    "name": "SandboxAPIs — 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.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://chatgpt.sandboxapis.dev",
      "type": "string",
      "description": "The live Codex Analytics host. Swap it for a *.snap. pin to freeze the data for CI."
    },
    {
      "key": "apiKey",
      "value": "any-token",
      "type": "string",
      "description": "No key is required — any value is accepted. A SandboxAPIs key raises the rate limit and rides Authorization: Bearer <key>."
    }
  ],
  "item": [
    {
      "name": "codex-code-review-responses",
      "item": [
        {
          "name": "GET /v1/analytics/codex/workspaces/{workspace_id}/code_review_responses",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/analytics/codex/workspaces/2c9bcd8f-c169-4ce5-a266-c8cba93fbad5/code_review_responses",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "analytics",
                "codex",
                "workspaces",
                "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5",
                "code_review_responses"
              ]
            },
            "description": "Served by SandboxAPIs. Family: codex-code-review-responses.\n\nAnswers 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)"
          }
        }
      ]
    },
    {
      "name": "codex-code-reviews",
      "item": [
        {
          "name": "GET /v1/analytics/codex/workspaces/{workspace_id}/code_reviews",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/analytics/codex/workspaces/2c9bcd8f-c169-4ce5-a266-c8cba93fbad5/code_reviews",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "analytics",
                "codex",
                "workspaces",
                "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5",
                "code_reviews"
              ]
            },
            "description": "Served by SandboxAPIs. Family: codex-code-reviews.\n\nAnswers 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)"
          }
        }
      ]
    },
    {
      "name": "codex-usage",
      "item": [
        {
          "name": "GET /v1/analytics/codex/workspaces/{workspace_id}/usage",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/analytics/codex/workspaces/2c9bcd8f-c169-4ce5-a266-c8cba93fbad5/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "analytics",
                "codex",
                "workspaces",
                "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5",
                "usage"
              ]
            },
            "description": "Served by SandboxAPIs. Family: codex-usage."
          }
        }
      ]
    },
    {
      "name": "Read-only refusal, on purpose",
      "item": [
        {
          "name": "POST /v1/analytics/codex/workspaces/2c9bcd8f-c169-4ce5-a266-c8cba93fbad5/code_review_responses",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/analytics/codex/workspaces/2c9bcd8f-c169-4ce5-a266-c8cba93fbad5/code_review_responses",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "analytics",
                "codex",
                "workspaces",
                "2c9bcd8f-c169-4ce5-a266-c8cba93fbad5",
                "code_review_responses"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "This universe is read-only, and this request is here so you can see what that looks like before your\ncode does.\n\nIt answers Codex Analytics's own error status and body shape, with a message naming the write that was\nattempted and a link to the roadmap. Nothing mutates. Every other write verb, on every other path,\nanswers the same way — this one is an example, not the only one."
          }
        }
      ]
    }
  ]
}
