{
 "openapi": "3.1.0",
 "info": {
  "title": "FirmTape archive API",
  "version": "1.1.0",
  "description": "Every finished SPX session, free and with no account: the day list and each session's closing measurements. Measurements, never a trading recommendation."
 },
 "servers": [
  {
   "url": "https://firmtape.com"
  }
 ],
 "security": [],
 "x-product": "replay",
 "x-features": [
  "session-archive",
  "mcp-server",
  "for-ai-agents"
 ],
 "components": {
  "schemas": {}
 },
 "paths": {
  "/api/days": {
   "get": {
    "summary": "Every finished session",
    "description": "Every finished SPX session in the archive, back to 2022. No key.",
    "operationId": "listDays",
    "responses": {
     "200": {
      "description": "List of trading days",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "days": {
           "type": "array",
           "items": {
            "type": "string",
            "format": "date",
            "example": "2026-08-28"
           }
          },
          "step": {
           "type": "integer",
           "example": 1,
           "description": "Per-second grid step, in seconds, of the archived session build"
          }
         }
        },
        "example": {
         "days": [
          "2026-10-08",
          "2026-10-09"
         ],
         "step": 1
        }
       }
      }
     }
    },
    "x-slug": "days",
    "x-plan": "replay",
    "x-key": "none",
    "x-features": [
     "session-archive"
    ]
   }
  },
  "/api/session/{day}": {
   "get": {
    "operationId": "getArchivedSession",
    "summary": "One session's closing measurements",
    "description": "FirmTape's derived closing summary of one finished session: open, close, high, low, the zero-gamma flip and its crossings, the walls, the net-gamma percentile, ATM IV. No key.",
    "parameters": [
     {
      "name": "day",
      "in": "path",
      "required": true,
      "description": "Finished SPX trading day",
      "schema": {
       "type": "string",
       "format": "date",
       "example": "2026-08-28"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Public derived session summary",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "required": [
          "day",
          "url",
          "open",
          "close",
          "high",
          "low",
          "source"
         ],
         "properties": {
          "day": {
           "type": "string",
           "format": "date"
          },
          "url": {
           "type": "string",
           "format": "uri"
          },
          "previous_day": {
           "type": [
            "string",
            "null"
           ],
           "format": "date"
          },
          "next_day": {
           "type": [
            "string",
            "null"
           ],
           "format": "date"
          },
          "open": {
           "type": "number"
          },
          "close": {
           "type": "number"
          },
          "high": {
           "type": "number"
          },
          "low": {
           "type": "number"
          },
          "vwap_close": {
           "type": [
            "number",
            "null"
           ]
          },
          "zero_gamma_flip": {
           "type": [
            "number",
            "null"
           ]
          },
          "call_resistance": {
           "type": [
            "number",
            "null"
           ]
          },
          "put_support": {
           "type": [
            "number",
            "null"
           ]
          },
          "atm_iv_open": {
           "type": [
            "number",
            "null"
           ]
          },
          "net_gamma_percentile": {
           "type": [
            "number",
            "null"
           ]
          },
          "flip_crossings": {
           "type": "integer"
          },
          "source": {
           "type": "string"
          }
         }
        }
       }
      }
     },
     "404": {
      "description": "Unknown, live or unavailable session."
     }
    },
    "x-slug": "session",
    "x-plan": "replay",
    "x-key": "none",
    "x-features": [
     "session-archive",
     "free-replay"
    ],
    "x-since": "2026-09-01"
   }
  }
 }
}