{
  "openapi": "3.1.0",
  "info": {
    "title": "OpenSkin API",
    "version": "1.0.0",
    "description": "OpenSkin provides a free, keyless CS2 Pricing API and authenticated Platform APIs for catalog, media, inventory, Steam, trading, webhooks, and audit workflows.",
    "contact": {
      "email": "hello@openskin.dev"
    }
  },
  "servers": [
    {
      "url": "https://api-v2.openskin.dev",
      "description": "Production"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "summary": "Health check",
        "description": "Returns 200 when all data sources are fresh, 503 when any source is stale.",
        "operationId": "getHealth",
        "tags": [
          "System"
        ],
        "responses": {
          "200": {
            "description": "Service is healthy",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                },
                "example": {
                  "status": "up",
                  "sources": {
                    "steam": {
                      "updated_at": "2026-06-30T17:18:40Z",
                      "status": "up"
                    },
                    "skinport": {
                      "updated_at": "2026-06-30T17:10:03Z",
                      "status": "up"
                    },
                    "buff": {
                      "updated_at": "2026-06-30T17:20:29Z",
                      "status": "up"
                    },
                    "youpin": {
                      "updated_at": "2026-06-30T17:20:29Z",
                      "status": "up"
                    },
                    "csfloat": {
                      "updated_at": "2026-06-30T17:08:22Z",
                      "status": "up"
                    }
                  },
                  "stats": {
                    "items": 36141
                  }
                }
              }
            }
          },
          "503": {
            "description": "One or more sources are stale",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/health": {
      "get": {
        "summary": "Check Platform API health",
        "description": "Returns the Platform v2 API process status.",
        "operationId": "getV2Health",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "responses": {
          "200": {
            "description": "Platform v2 contract is served",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetHealthResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/status": {
      "get": {
        "summary": "Read Platform operational status",
        "description": "Returns health information for Platform data, caches, media, webhooks, and Steam automation.",
        "operationId": "getV2OperationalStatus",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "responses": {
          "200": {
            "description": "Current aggregate Platform state, including degraded components",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2OperationalStatusResponse"
                }
              }
            }
          },
          "503": {
            "description": "Status service is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/meta/capabilities": {
      "get": {
        "summary": "List Platform feature availability",
        "description": "Lists each Platform feature as production, unavailable, or planned, together with the API-key scopes it requires.",
        "operationId": "listV2Capabilities",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "responses": {
          "200": {
            "description": "Current feature availability and required scopes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCapabilitiesResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/meta/scopes": {
      "get": {
        "summary": "List Platform API-key scopes",
        "description": "Returns every recognized scope in stable documentation order.",
        "operationId": "listV2Scopes",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "responses": {
          "200": {
            "description": "Recognized Platform scopes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListScopesResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/me": {
      "get": {
        "summary": "Read the current API key",
        "description": "Authenticates the API key and returns its workspace, service tier, and granted scopes.",
        "operationId": "getV2Principal",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Current API-key details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PrincipalResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/usage": {
      "get": {
        "summary": "Read live weighted Platform usage",
        "description": "Returns the workspace-wide minute and UTC-day weighted unit budget shared by every key in the subscribed workspace. Per-operation request/unit/error counters remain attributed to the current API key. Calling this endpoint consumes one unit.",
        "operationId": "getV2Usage",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Live Valkey-backed usage summary",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetUsageResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/audit/events": {
      "get": {
        "summary": "List workspace audit events",
        "description": "Returns the workspace’s audit events in newest-first order, including Platform settings and Steam automation events. Secret fields are removed from nested metadata. Each event can store up to 32 KiB of metadata.",
        "operationId": "listV2AuditEvents",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "platform",
                "steam"
              ]
            }
          },
          {
            "name": "event_type",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_.-]{1,79}$"
            }
          },
          {
            "name": "resource_type",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_.-]{1,79}$"
            }
          },
          {
            "name": "outcome",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "accepted",
                "rejected",
                "succeeded",
                "failed",
                "recorded"
              ]
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by the previous page. Pass it back unchanged and with the same filters; otherwise the API returns 400.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned audit page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListAuditEventsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed or cross-filter cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "description": "The API key does not have audit:read",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/audit/exports": {
      "get": {
        "summary": "List audit export jobs",
        "description": "Returns audit export jobs in newest-first order.",
        "operationId": "listV2AuditExports",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "queued",
                "leased",
                "completed",
                "failed"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by the previous page. Pass it back unchanged and with the same state filter.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned audit export page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2AuditExportPageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filter or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      },
      "post": {
        "summary": "Create an audit export",
        "description": "Queues a verified export of audit events in the requested time range. The range must be in the past, use an inclusive start and exclusive end, and span no more than 32 days.",
        "operationId": "createV2AuditExport",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2CreateAuditExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Idempotent replay returned the original job",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2AuditExportReceiptResponse"
                }
              }
            }
          },
          "201": {
            "description": "Audit export job created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2AuditExportReceiptResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid range or request document",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key was reused with a different range",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/audit/exports/{export_id}": {
      "get": {
        "summary": "Read an audit export",
        "description": "Returns one audit export job. A completed, unexpired export includes a new short-lived HTTPS download URL.",
        "operationId": "getV2AuditExport",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "export_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned audit export job",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2AuditExportJobResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Export is absent or belongs to another workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "$ref": "#/components/responses/V2UsageUnavailable"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v1/me/keys": {
      "get": {
        "summary": "List the signed-in workspace's Platform API keys",
        "operationId": "listMyPlatformKeys",
        "tags": [
          "Platform account"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "AccountSession": []
          }
        ],
        "responses": {
          "200": {
            "description": "Safe key metadata; raw secrets are never returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PlatformAPIKeyMetadata"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Account session missing or expired"
          }
        }
      },
      "post": {
        "summary": "Create a scoped Platform API key",
        "description": "Returns the raw key once. Labels are display metadata only. Omitting scopes grants the safe read-only defaults.",
        "operationId": "createMyPlatformKey",
        "tags": [
          "Platform account"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "AccountSession": []
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "description": "Human-readable display name; never used for authentication."
                  },
                  "scopes": {
                    "type": "array",
                    "minItems": 1,
                    "uniqueItems": true,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "One-time key receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformAPIKeySecretReceipt"
                }
              }
            }
          },
          "401": {
            "description": "Account session missing or expired"
          },
          "403": {
            "description": "Commercial subscription required"
          },
          "409": {
            "description": "Active key limit reached"
          }
        }
      }
    },
    "/v1/me/keys/{id}/rotate": {
      "post": {
        "summary": "Rotate an owned Platform API key",
        "description": "Atomically installs a one-time replacement with the same label, tier, scopes, and expiry, then revokes the original.",
        "operationId": "rotateMyPlatformKey",
        "tags": [
          "Platform account"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "AccountSession": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "201": {
            "description": "One-time replacement receipt",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PlatformAPIKeySecretReceipt"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "rotated_from": {
                          "type": "integer",
                          "format": "int64"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Account session missing or expired"
          },
          "404": {
            "description": "Key not found for this workspace"
          }
        }
      }
    },
    "/v1/me/keys/{id}": {
      "delete": {
        "summary": "Revoke an owned Platform API key",
        "operationId": "revokeMyPlatformKey",
        "tags": [
          "Platform account"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "AccountSession": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Key revoked"
          },
          "401": {
            "description": "Account session missing or expired"
          },
          "404": {
            "description": "Key not found for this workspace"
          }
        }
      }
    },
    "/v1/float/screenshot": {
      "get": {
        "summary": "Render a CS2 item screenshot",
        "description": "Returns a cached Source 2 screenshot for a self-encoded CS2 inspect link, or idempotently queues one. Poll the same URL while the response is 202. Sticker and keychain placement is not supported yet.",
        "operationId": "getFloatScreenshot",
        "tags": [
          "Float"
        ],
        "parameters": [
          {
            "name": "link",
            "in": "query",
            "required": true,
            "description": "A March 2026 self-encoded CS2 inspect link or its bare hexadecimal payload.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The content-addressed render is ready",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "fingerprint",
                    "status",
                    "url"
                  ],
                  "properties": {
                    "fingerprint": {
                      "type": "string",
                      "pattern": "^[0-9a-f]{64}$"
                    },
                    "status": {
                      "type": "string",
                      "const": "done"
                    },
                    "url": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "The render is pending or currently rendering; retry after two seconds",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "integer",
                  "const": 2
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "fingerprint",
                    "status",
                    "retry_after_seconds"
                  ],
                  "properties": {
                    "fingerprint": {
                      "type": "string",
                      "pattern": "^[0-9a-f]{64}$"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "rendering"
                      ]
                    },
                    "retry_after_seconds": {
                      "type": "integer",
                      "const": 2
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "422": {
            "description": "The inspect payload is incomplete or uses an unsupported visual attachment"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "description": "The render failed or the queue is unavailable"
          }
        }
      }
    },
    "/v1/prices": {
      "get": {
        "summary": "Current prices (all marketplaces)",
        "description": "Returns the current ask and bid for one item across all available marketplaces (Steam, Skinport, Buff163, YouPin, CSFloat). `lowest_ask` reflects the cheapest ask across all five. Per-marketplace metrics (spread, slippage, liquidity score, volatility) are included for Steam and Skinport.",
        "operationId": "getPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          },
          {
            "name": "pattern",
            "in": "query",
            "required": false,
            "description": "Phase or pattern variant for Doppler knives (e.g. Phase 1, Ruby, Sapphire, Black Pearl).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Price data and metrics",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "icon_url": "https://community.fastly.steamstatic.com/economy/image/...",
                  "prices": {
                    "steam": {
                      "bid": 12.18,
                      "ask": 12.45,
                      "median": 12.31,
                      "volume_24h": 3148,
                      "buy_order_count": 54133,
                      "sell_order_count": 1101,
                      "currency": "USD"
                    },
                    "skinport": {
                      "ask": 11.2,
                      "ask_volume": 47,
                      "mean": 11.45,
                      "median": 11.3,
                      "max_ask": 13.9,
                      "suggested_price": 11.35,
                      "currency": "USD"
                    },
                    "buff": {
                      "ask": 11.05,
                      "ask_volume": 312,
                      "bid": 10.88,
                      "bid_volume": 540,
                      "currency": "USD",
                      "native_currency": {
                        "code": "CNY",
                        "ask": 74.3,
                        "bid": 73.15
                      }
                    },
                    "youpin": {
                      "ask": 11.18,
                      "ask_volume": 89,
                      "bid": 10.95,
                      "bid_volume": 203,
                      "currency": "USD",
                      "native_currency": {
                        "code": "CNY",
                        "ask": 75.17,
                        "bid": 73.62
                      }
                    },
                    "csfloat": {
                      "ask": 11.15,
                      "sell_order_count": 84,
                      "highest_bid": 11.1,
                      "bid_volume": 12,
                      "currency": "USD"
                    }
                  },
                  "lowest_ask": {
                    "marketplace": "buff",
                    "price": 11.05
                  },
                  "metrics": {
                    "steam": {
                      "spread": {
                        "absolute": 0.27,
                        "percent": 2.22
                      },
                      "slippage": {
                        "absolute": 0.13,
                        "percent": 1.06
                      },
                      "liquidity_score": 84,
                      "volatility": {
                        "1d": 7.35,
                        "7d": 10.48,
                        "all": 5.69
                      }
                    },
                    "skinport": {
                      "premium": {
                        "absolute": -0.15,
                        "percent": -1.32
                      },
                      "liquidity_score": 61,
                      "volatility": {
                        "1d": 8.12,
                        "all": 6.44
                      }
                    }
                  },
                  "updated_at": "2026-06-18T04:12:09Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/steam": {
      "get": {
        "summary": "Steam prices",
        "description": "Returns Steam-only price data for one item: bid, ask, 24h median, volume, order book depth, plus spread, slippage, liquidity score, and volatility metrics.",
        "operationId": "getSteamPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          },
          {
            "name": "pattern",
            "in": "query",
            "required": false,
            "description": "Phase variant for Doppler knives (e.g. Phase 2, Ruby).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Steam price data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SteamPriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "steam",
                  "bid": 12.18,
                  "ask": 12.45,
                  "median": 12.31,
                  "volume_24h": 3148,
                  "buy_order_count": 54133,
                  "sell_order_count": 1101,
                  "spread": {
                    "absolute": 0.27,
                    "percent": 2.22
                  },
                  "slippage": {
                    "absolute": 0.13,
                    "percent": 1.06
                  },
                  "liquidity_score": 84,
                  "volatility": {
                    "1d": 7.35,
                    "7d": 10.48,
                    "all": 5.69
                  },
                  "updated_at": "2026-06-18T04:12:09Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/skinport": {
      "get": {
        "summary": "Skinport prices",
        "description": "Returns Skinport-only price data for one item: lowest ask, ask volume, mean, median, max ask, suggested price, premium vs suggested, liquidity score, and volatility.",
        "operationId": "getSkinportPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          },
          {
            "name": "pattern",
            "in": "query",
            "required": false,
            "description": "Phase variant for Doppler knives (e.g. Phase 2, Ruby).",
            "schema": {
              "type": "string"
            },
            "example": "Ruby"
          }
        ],
        "responses": {
          "200": {
            "description": "Skinport price data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkinportPriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "skinport",
                  "ask": 11.2,
                  "ask_volume": 47,
                  "mean": 11.45,
                  "median": 11.3,
                  "max_ask": 13.9,
                  "suggested_price": 11.35,
                  "premium": {
                    "absolute": -0.15,
                    "percent": -1.32
                  },
                  "liquidity_score": 61,
                  "volatility": {
                    "1d": 8.12,
                    "all": 6.44
                  },
                  "updated_at": "2026-06-18T04:10:22Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/skinport/phases": {
      "get": {
        "summary": "Skinport Doppler phases",
        "description": "Returns all Doppler and Gamma Doppler phase prices for one knife in a single response, ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald.",
        "operationId": "getSkinportPhases",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of a Doppler-family knife.",
            "schema": {
              "type": "string"
            },
            "example": "★ Karambit | Doppler (Factory New)"
          }
        ],
        "responses": {
          "200": {
            "description": "All Skinport phase prices for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkinportPhasesResponse"
                },
                "example": {
                  "item": "★ Karambit | Doppler (Factory New)",
                  "patterns": [
                    {
                      "pattern": "Phase 2",
                      "ask": 812.45,
                      "ask_volume": 7,
                      "mean": 850,
                      "median": 830,
                      "max_ask": 920,
                      "suggested_price": 855,
                      "updated_at": "2026-06-27T22:00:00Z"
                    },
                    {
                      "pattern": "Ruby",
                      "ask": 2674.58,
                      "ask_volume": 3,
                      "mean": 2811.02,
                      "median": 2702.59,
                      "max_ask": 3055.91,
                      "suggested_price": 2520.36,
                      "updated_at": "2026-06-27T22:00:00Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/buff": {
      "get": {
        "summary": "Buff163 prices",
        "description": "Returns Buff163 ask and bid prices for one item. Prices are converted from CNY to USD at the current exchange rate. native_currency contains the original unrounded CNY quote.",
        "operationId": "getBuffPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          }
        ],
        "responses": {
          "200": {
            "description": "Buff163 price data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuffYoupinPriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "buff",
                  "ask": 11.05,
                  "ask_volume": 312,
                  "bid": 10.88,
                  "bid_volume": 540,
                  "currency": "USD",
                  "native_currency": {
                    "code": "CNY",
                    "ask": 74.3,
                    "bid": 73.15
                  },
                  "updated_at": "2026-06-27T14:00:00Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/buff/phases": {
      "get": {
        "summary": "Buff163 Doppler phases",
        "description": "Returns all Doppler and Gamma Doppler phase prices for one knife in a single response, ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald.",
        "operationId": "getBuffPhases",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of a Doppler-family knife.",
            "schema": {
              "type": "string"
            },
            "example": "★ Karambit | Doppler (Factory New)"
          }
        ],
        "responses": {
          "200": {
            "description": "All Buff163 phase prices for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuffPhasesResponse"
                },
                "example": {
                  "item": "★ Gut Knife | Doppler (Factory New)",
                  "patterns": [
                    {
                      "pattern": "Phase 1",
                      "ask": 116.06,
                      "bid": 108.62,
                      "currency": "USD",
                      "native_currency": {
                        "code": "CNY",
                        "ask": 780,
                        "bid": 730
                      },
                      "updated_at": "2026-08-26T18:04:41Z"
                    },
                    {
                      "pattern": "Ruby",
                      "ask": 431.52,
                      "bid": 392.83,
                      "currency": "USD",
                      "native_currency": {
                        "code": "CNY",
                        "ask": 2900,
                        "bid": 2640
                      },
                      "updated_at": "2026-08-26T18:04:41Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/youpin": {
      "get": {
        "summary": "YouPin prices",
        "description": "Returns YouPin ask and bid prices for one item. Prices are converted from CNY to USD at the current exchange rate. native_currency contains the original unrounded CNY quote.",
        "operationId": "getYoupinPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          }
        ],
        "responses": {
          "200": {
            "description": "YouPin price data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuffYoupinPriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "youpin",
                  "ask": 11.18,
                  "ask_volume": 89,
                  "bid": 10.95,
                  "bid_volume": 203,
                  "currency": "USD",
                  "native_currency": {
                    "code": "CNY",
                    "ask": 75.17,
                    "bid": 73.62
                  },
                  "updated_at": "2026-06-27T14:00:00Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/csfloat": {
      "get": {
        "summary": "CSFloat prices",
        "description": "Returns CSFloat prices for one item: lowest ask, total active listing count, highest buy order, and buy order quantity. For Doppler knives, pass `pattern` to get a specific phase; omit to get the cheapest available phase.",
        "operationId": "getCSFloatPrice",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          },
          {
            "name": "pattern",
            "in": "query",
            "required": false,
            "description": "Phase name for Doppler knives (e.g. Ruby, Sapphire, Black Pearl, Emerald, Phase 1, Phase 2, Phase 3, Phase 4).",
            "schema": {
              "type": "string"
            },
            "example": "Ruby"
          }
        ],
        "responses": {
          "200": {
            "description": "CSFloat price data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSFloatPriceResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "csfloat",
                  "ask": 11.15,
                  "sell_order_count": 84,
                  "highest_bid": 11.1,
                  "bid_volume": 12,
                  "currency": "USD",
                  "updated_at": "2026-06-30T02:32:17Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/csfloat/phases": {
      "get": {
        "summary": "CSFloat Doppler phases",
        "description": "Returns all Doppler and Gamma Doppler phase prices for one knife in a single response, ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald.",
        "operationId": "getCSFloatPhases",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of a Doppler-family knife.",
            "schema": {
              "type": "string"
            },
            "example": "★ Karambit | Doppler (Factory New)"
          }
        ],
        "responses": {
          "200": {
            "description": "All phase prices for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSFloatPhasesResponse"
                },
                "example": {
                  "item": "★ Karambit | Doppler (Factory New)",
                  "patterns": [
                    {
                      "pattern": "Phase 1",
                      "ask": 1269.66,
                      "sell_order_count": 232,
                      "updated_at": "2026-06-30T02:32:17Z"
                    },
                    {
                      "pattern": "Phase 2",
                      "ask": 1915,
                      "sell_order_count": 201,
                      "updated_at": "2026-06-30T02:32:17Z"
                    },
                    {
                      "pattern": "Ruby",
                      "ask": 7454.2,
                      "sell_order_count": 49,
                      "updated_at": "2026-06-30T02:32:17Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/csfloat/patterns": {
      "get": {
        "summary": "CSFloat Case Hardened patterns",
        "description": "Returns Case Hardened / Heat Treated pattern (paint-seed tier) prices for one item in a single response, highest-value tiers first. Each entry includes the exact paint_seed. The Case Hardened counterpart to /v1/prices/csfloat/phases.",
        "operationId": "getCSFloatPatterns",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of a Case Hardened / Heat Treated item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Case Hardened (Field-Tested)"
          }
        ],
        "responses": {
          "200": {
            "description": "All Case Hardened pattern prices for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSFloatPatternsResponse"
                },
                "example": {
                  "item": "AK-47 | Case Hardened (Field-Tested)",
                  "patterns": [
                    {
                      "pattern": "Tier 1 #661",
                      "ask": 70000,
                      "sell_order_count": null,
                      "paint_seed": 661,
                      "updated_at": "2026-07-05T06:37:40Z"
                    },
                    {
                      "pattern": "Tier 2 #426",
                      "ask": 34989.82,
                      "sell_order_count": null,
                      "paint_seed": 426,
                      "updated_at": "2026-07-05T06:34:51Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/prices/csfloat/fade": {
      "get": {
        "summary": "CSFloat Fade patterns",
        "description": "Returns Fade pattern prices for one item in a single response, highest-value first. Top-value seeds are priced individually; the rest are bucketed by fade percentage range (95-100%, 90-95%, 85-90%, 80-85%). Fade patterns share the same version-string shape as Doppler phases and Case Hardened tiers, but are a distinct pattern family with their own endpoint.",
        "operationId": "getCSFloatFade",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of a Fade-eligible item.",
            "schema": {
              "type": "string"
            },
            "example": "★ Karambit | Fade (Factory New)"
          }
        ],
        "responses": {
          "200": {
            "description": "All Fade pattern prices for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSFloatPatternsResponse"
                },
                "example": {
                  "item": "★ Karambit | Fade (Factory New)",
                  "patterns": [
                    {
                      "pattern": "Fade #412",
                      "ask": 10450,
                      "sell_order_count": 1,
                      "paint_seed": 412,
                      "updated_at": "2026-07-13T01:37:49Z"
                    },
                    {
                      "pattern": "95-100%",
                      "ask": 2100.67,
                      "sell_order_count": 8,
                      "paint_seed": 413,
                      "updated_at": "2026-07-13T07:55:16Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/steam/orderbook": {
      "get": {
        "summary": "Steam order book",
        "description": "Returns the live Steam order book for one item: bid/ask prices, order counts, spread, slippage, and full bid/ask depth arrays.",
        "operationId": "getSteamOrderbook",
        "tags": [
          "Prices"
        ],
        "parameters": [
          {
            "name": "item",
            "in": "query",
            "required": true,
            "description": "The Steam market_hash_name of the item.",
            "schema": {
              "type": "string"
            },
            "example": "AK-47 | Redline (Field-Tested)"
          }
        ],
        "responses": {
          "200": {
            "description": "Steam order book data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderbookResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "steam",
                  "bid": 42.29,
                  "ask": 42.98,
                  "spread": {
                    "absolute": 0.69,
                    "percent": 1.63
                  },
                  "buy_order_count": 53963,
                  "sell_order_count": 1084,
                  "slippage": {
                    "absolute": 0.43,
                    "percent": 1
                  },
                  "bid_depth": [
                    {
                      "price": 42.29,
                      "quantity": 19
                    },
                    {
                      "price": 42.25,
                      "quantity": 5
                    }
                  ],
                  "ask_depth": [
                    {
                      "price": 42.98,
                      "quantity": 1
                    },
                    {
                      "price": 43,
                      "quantity": 3
                    }
                  ],
                  "updated_at": "2026-06-23T18:45:00Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/history": {
      "post": {
        "summary": "Price history",
        "description": "Returns time-series price data for one item on one marketplace. Steam supports daily and hourly data, Skinport supports 10min, hourly, and daily data, and Buff163 and YouPin are stored hourly. Steam history goes back to 2013.",
        "operationId": "getHistory",
        "tags": [
          "History"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HistoryRequest"
              },
              "example": {
                "item": "AK-47 | Redline (Field-Tested)",
                "marketplace": "steam",
                "interval": "daily",
                "from": "2025-01-01",
                "to": "2025-01-03"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Price history data points",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoryResponse"
                },
                "example": {
                  "item": "AK-47 | Redline (Field-Tested)",
                  "marketplace": "steam",
                  "interval": "daily",
                  "from": "2025-01-01",
                  "to": "2025-01-03",
                  "data": [
                    {
                      "timestamp": "2025-01-01T01:00:00Z",
                      "price": 37.62,
                      "volume": 150
                    },
                    {
                      "timestamp": "2025-01-02T01:00:00Z",
                      "price": 39.42,
                      "volume": 104
                    },
                    {
                      "timestamp": "2025-01-03T01:00:00Z",
                      "price": 40.14,
                      "volume": 94
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/v1/history/batch": {
      "post": {
        "summary": "Batch price history",
        "description": "Returns time-series price data for up to 500 items in one request. marketplace, interval, from/to, and pattern apply to every item in the batch. Omitting from defaults to the last 90 days; pass from explicitly to request older data.",
        "operationId": "getHistoryBatch",
        "tags": [
          "History"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HistoryBatchRequest"
              },
              "example": {
                "items": [
                  "AK-47 | Redline (Field-Tested)",
                  "AWP | Asiimov (Field-Tested)"
                ],
                "marketplace": "steam",
                "interval": "daily",
                "from": "2025-01-01",
                "to": "2025-01-03"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Price history data points, keyed by item name",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoryBatchResponse"
                },
                "example": {
                  "marketplace": "steam",
                  "interval": "daily",
                  "from": "2025-01-01",
                  "to": "2025-01-03",
                  "data": {
                    "AK-47 | Redline (Field-Tested)": [
                      {
                        "timestamp": "2025-01-01T00:00:00Z",
                        "price": 37.62,
                        "volume": 150
                      },
                      {
                        "timestamp": "2025-01-02T00:00:00Z",
                        "price": 39.42,
                        "volume": 104
                      },
                      {
                        "timestamp": "2025-01-03T00:00:00Z",
                        "price": 40.14,
                        "volume": 94
                      }
                    ],
                    "AWP | Asiimov (Field-Tested)": [
                      {
                        "timestamp": "2025-01-01T00:00:00Z",
                        "price": 105.2,
                        "volume": 40
                      },
                      {
                        "timestamp": "2025-01-02T00:00:00Z",
                        "price": 106.75,
                        "volume": 33
                      },
                      {
                        "timestamp": "2025-01-03T00:00:00Z",
                        "price": 108.02,
                        "volume": 51
                      }
                    ]
                  },
                  "count": 2
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/v1/prices/batch": {
      "post": {
        "summary": "Batch prices",
        "description": "Returns current prices for up to 500 items in a single request. Items may be bare market_hash_name strings or { item, pattern } objects to request a specific Doppler phase or Case Hardened tier per item. The response carries both a data map (keyed by name) and an ordered results array (one entry per request, so the same item at multiple patterns returns multiple entries).",
        "operationId": "batchPrices",
        "tags": [
          "Prices"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              },
              "example": {
                "items": [
                  "AWP | Asiimov (Field-Tested)",
                  {
                    "item": "★ Karambit | Doppler (Factory New)",
                    "pattern": "Ruby"
                  },
                  {
                    "item": "AK-47 | Case Hardened (Field-Tested)",
                    "pattern": "Tier 1 #661"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Price data as a keyed map and an ordered results array",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponse"
                },
                "example": {
                  "data": {
                    "★ Karambit | Doppler (Factory New)": {
                      "pattern": "Ruby",
                      "icon_url": "https://community.fastly.steamstatic.com/economy/image/...",
                      "skinport": {
                        "ask": 2674.58,
                        "ask_volume": 3,
                        "mean": 2811.02,
                        "median": 2702.59,
                        "max_ask": 3055.91,
                        "suggested_price": 2520.36,
                        "liquidity_score": 61,
                        "currency": "USD",
                        "patterns": [
                          {
                            "pattern": "Phase 2",
                            "ask": 812.45,
                            "ask_volume": 7,
                            "updated_at": "2026-07-04T22:00:00Z"
                          },
                          {
                            "pattern": "Ruby",
                            "ask": 2674.58,
                            "ask_volume": 3,
                            "updated_at": "2026-07-04T22:00:00Z"
                          }
                        ]
                      },
                      "csfloat": {
                        "ask": 2699,
                        "sell_order_count": 49,
                        "highest_bid": 2650,
                        "bid_volume": 4,
                        "paint_seed": null,
                        "base_price": 1289.66,
                        "currency": "USD",
                        "patterns": [
                          {
                            "pattern": "Phase 1",
                            "ask": 1269.66,
                            "sell_order_count": 232,
                            "paint_seed": null,
                            "updated_at": "2026-07-04T02:32:17Z"
                          },
                          {
                            "pattern": "Ruby",
                            "ask": 2699,
                            "sell_order_count": 49,
                            "paint_seed": null,
                            "updated_at": "2026-07-04T02:32:17Z"
                          }
                        ]
                      },
                      "lowest_ask": {
                        "marketplace": "csfloat",
                        "price": 2699
                      },
                      "updated_at": "2026-07-04T03:05:45Z"
                    }
                  },
                  "results": [
                    {
                      "item": "★ Karambit | Doppler (Factory New)",
                      "pattern": "Ruby",
                      "csfloat": {
                        "ask": 2699,
                        "highest_bid": 2650,
                        "bid_volume": 4,
                        "base_price": 1289.66,
                        "currency": "USD"
                      }
                    }
                  ],
                  "count": 1,
                  "updated_at": "2026-07-04T03:05:45Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/v1/prices/all": {
      "get": {
        "summary": "All prices",
        "description": "Returns current prices for every tracked item in one response, keyed by market_hash_name. Same per-item shape as /v1/prices. Cached and CDN-served (Cache-Control: public, max-age=300). Send Accept-Encoding: gzip for a bulk sync; the raw payload is ~40MB.",
        "operationId": "getAllPrices",
        "tags": [
          "Prices"
        ],
        "responses": {
          "200": {
            "description": "Price data for every tracked item, keyed by market_hash_name",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkPricesResponse"
                },
                "example": {
                  "data": {
                    "AK-47 | Aphrodite (Factory New)": {
                      "icon_url": "https://community.fastly.steamstatic.com/economy/image/...",
                      "steam": {
                        "bid": 612.69,
                        "ask": 683.69,
                        "median": 610.18,
                        "volume_24h": 2,
                        "buy_order_count": 1327,
                        "sell_order_count": 56,
                        "liquidity_score": 84,
                        "currency": "USD"
                      },
                      "skinport": {
                        "ask": 523,
                        "ask_volume": 12,
                        "mean": 999.68,
                        "median": 926.37,
                        "max_ask": 1736.97,
                        "suggested_price": 545.38,
                        "patterns": null,
                        "liquidity_score": 61,
                        "currency": "USD"
                      },
                      "buff": {
                        "ask": 464.5,
                        "ask_volume": 212,
                        "bid": 423.21,
                        "bid_volume": 9,
                        "currency": "USD"
                      },
                      "youpin": {
                        "ask": 449.75,
                        "ask_volume": 415,
                        "bid": 432.06,
                        "bid_volume": 58,
                        "currency": "USD"
                      },
                      "csfloat": {
                        "ask": 468.31,
                        "sell_order_count": 221,
                        "highest_bid": 460,
                        "bid_volume": 6,
                        "paint_seed": null,
                        "base_price": 468.31,
                        "patterns": null,
                        "currency": "USD"
                      },
                      "links": {
                        "steam": "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Aphrodite%20%28Factory%20New%29",
                        "skinport": "https://skinport.com/market?search=AK-47+%7C+Aphrodite+%28Factory+New%29&sort=price&order=asc",
                        "buff": "https://buff.163.com/goods/1133060",
                        "youpin": "https://youpin898.com/market/goods-list?listType=30&templateId=120531&gameId=730",
                        "csfloat": "https://csfloat.com/search?category=1&sort_by=lowest_price&min_float=0&max_float=0.07&def_index=7&paint_index=1397"
                      },
                      "lowest_ask": {
                        "marketplace": "youpin",
                        "price": 449.75
                      },
                      "updated_at": "2026-07-05T03:56:29.214643Z"
                    }
                  },
                  "count": 36201,
                  "updated_at": "2026-07-05T03:57:00.512Z"
                }
              }
            }
          }
        }
      }
    },
    "/v1/items": {
      "get": {
        "summary": "Item catalog",
        "description": "Returns a paginated list of all tracked CS2 items with filtering by name, type, weapon, exterior, rarity, StatTrak, and Souvenir.",
        "operationId": "getItems",
        "tags": [
          "Catalog"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Case-insensitive substring match on item name.",
            "schema": {
              "type": "string"
            },
            "example": "redline"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Filter by item type.",
            "schema": {
              "type": "string",
              "enum": [
                "weapon",
                "knife",
                "gloves",
                "sticker",
                "case",
                "agent",
                "graffiti",
                "patch",
                "music_kit",
                "key",
                "other"
              ]
            }
          },
          {
            "name": "weapon",
            "in": "query",
            "required": false,
            "description": "Filter by weapon name (e.g. AK-47, AWP).",
            "schema": {
              "type": "string"
            },
            "example": "AK-47"
          },
          {
            "name": "exterior",
            "in": "query",
            "required": false,
            "description": "Filter by wear condition.",
            "schema": {
              "type": "string",
              "enum": [
                "Factory New",
                "Minimal Wear",
                "Field-Tested",
                "Well-Worn",
                "Battle-Scarred"
              ]
            }
          },
          {
            "name": "rarity",
            "in": "query",
            "required": false,
            "description": "Filter by rarity (lowercase).",
            "schema": {
              "type": "string",
              "enum": [
                "consumer",
                "industrial",
                "mil_spec",
                "restricted",
                "classified",
                "covert",
                "contraband"
              ]
            }
          },
          {
            "name": "stattrak",
            "in": "query",
            "required": false,
            "description": "Filter to StatTrak or non-StatTrak items.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "souvenir",
            "in": "query",
            "required": false,
            "description": "Filter to Souvenir or non-Souvenir items.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number (1-indexed).",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page.",
            "schema": {
              "type": "integer",
              "default": 100,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated list of items",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ItemsResponse"
                },
                "example": {
                  "total": 33241,
                  "page": 1,
                  "limit": 100,
                  "data": [
                    {
                      "name": "AK-47 | Redline (Field-Tested)",
                      "type": "weapon",
                      "weapon": "AK-47",
                      "skin": "Redline",
                      "exterior": "Field-Tested",
                      "rarity": "classified",
                      "is_stattrak": false,
                      "is_souvenir": false,
                      "icon_url": "https://community.fastly.steamstatic.com/economy/image/..."
                    },
                    {
                      "name": "AWP | Asiimov (Field-Tested)",
                      "type": "weapon",
                      "weapon": "AWP",
                      "skin": "Asiimov",
                      "exterior": "Field-Tested",
                      "rarity": "covert",
                      "is_stattrak": false,
                      "is_souvenir": false,
                      "icon_url": "https://community.fastly.steamstatic.com/economy/image/..."
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/v2/catalog/items": {
      "get": {
        "summary": "List CS2 catalog items",
        "description": "Returns Steam Market item variants that use the cs2.market.v1 identity format. Treat catalog IDs and cursors as API-generated values and pass them back unchanged.",
        "operationId": "listV2CatalogItems",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Literal case-insensitive substring of market_hash_name.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weapon",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exterior",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rarity",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phase",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stattrak",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "souvenir",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "definition_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "paint_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by the previous page. Omit it for the first page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Catalog page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCatalogItemsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filter or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Catalog or usage service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/items/{catalog_id}": {
      "get": {
        "summary": "Read a CS2 catalog item",
        "description": "Returns the catalog item identified by a versioned catalog ID.",
        "operationId": "getV2CatalogItem",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Exact catalog variant",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "Unsupported or malformed catalog identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Catalog or usage service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/collections": {
      "get": {
        "summary": "List CS2 collections",
        "description": "Returns CS2 collections and the source of each collection record. Current collection membership data comes from ByMykel CSGO-API.",
        "operationId": "listV2CatalogCollections",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Collection summaries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCatalogCollectionsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/collections/{collection_id}": {
      "get": {
        "summary": "Read a CS2 collection",
        "description": "Returns one collection and its Steam Market item variants.",
        "operationId": "getV2CatalogCollection",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.collection\\.bymykel\\.v1\\.[A-Za-z0-9_-]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Collection detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogCollectionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Unsupported collection identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Collection not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/containers": {
      "get": {
        "summary": "List CS2 containers",
        "description": "Returns CS2 containers and the number of imported regular and rare drops for each container.",
        "operationId": "listV2CatalogContainers",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Container summaries",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCatalogContainersResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/containers/{catalog_id}/contents": {
      "get": {
        "summary": "List a container's contents",
        "description": "Returns the regular and rare item drops recorded for one container.",
        "operationId": "getV2CatalogContainerContents",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Container and drop relationships",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogContainerContentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Unsupported catalog identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Container or imported contents not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/currencies": {
      "get": {
        "summary": "List decimal exchange-rate references",
        "description": "Rates are expressed as units of the named currency per one USD and retain the Frankfurter observation timestamp.",
        "operationId": "listV2CatalogCurrencies",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Current currency references",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCatalogCurrenciesResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/snapshot": {
      "get": {
        "summary": "Read current catalog state",
        "description": "Returns a SHA-256 digest and ETag for the current catalog state. The result represents one database transaction and is cached for five minutes.",
        "operationId": "getV2CatalogSnapshot",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "If-None-Match",
            "in": "header",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current catalog snapshot",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogSnapshotResponse"
                }
              }
            }
          },
          "304": {
            "description": "The caller already has the current cached snapshot"
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/releases/latest": {
      "get": {
        "summary": "Read the latest catalog release",
        "description": "Returns the latest release only after verifying its Ed25519 signature with the configured trusted key. A published release cannot be changed.",
        "operationId": "getLatestV2CatalogRelease",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Latest verified release",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetLatestCatalogReleaseResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "404": {
            "description": "No release has been published",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Release verification is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/releases/{release_id}": {
      "get": {
        "summary": "Read a catalog release",
        "description": "Returns the requested catalog release after verifying its signature.",
        "operationId": "getV2CatalogRelease",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "release_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2rel_[A-Za-z0-9_-]{43}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Verified signed release",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogReleaseResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "404": {
            "description": "Release not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Release verification is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/releases/{release_id}/export": {
      "get": {
        "summary": "Download a catalog release",
        "description": "Returns a five-minute download URL for the signed release’s gzip-compressed NDJSON archive.",
        "operationId": "getV2CatalogReleaseExport",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "release_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2rel_[A-Za-z0-9_-]{43}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Verified archive receipt and temporary download URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCatalogReleaseExportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid catalog release identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "The signed release or its verified archive was not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Release verification or read-only object signing is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/catalog/release-keys": {
      "get": {
        "summary": "List catalog release verification keys",
        "description": "Lists the public keys trusted to verify catalog releases.",
        "operationId": "listV2CatalogReleaseKeys",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Configured public verification keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListCatalogReleaseKeysResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "503": {
            "description": "Release verification is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}": {
      "get": {
        "summary": "Read current prices for one catalog item",
        "description": "Returns current prices for one catalog item as decimal strings, including source time and freshness. A version filter selects one stored version; an unfiltered request returns every stored version.",
        "operationId": "getV2CurrentPrices",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Exact source pattern, phase, or tier. Omit to return all stored versions.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current source observations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCurrentPricesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid catalog identity or version",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}/orderbook": {
      "get": {
        "summary": "Read the current Steam order book for one catalog item",
        "description": "Returns exact decimal bid, ask, spread, active order counts, stored depth, slippage, liquidity, source time, and freshness. The order book is Steam-only and is not inferred from third-party listings.",
        "operationId": "getV2CurrentOrderBook",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current Steam order book",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCurrentOrderBookResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid catalog identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item or stored Steam order book not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Stored order book failed validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Order-book service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}/orderbook/history": {
      "get": {
        "summary": "Read historical Steam buy and sell orders",
        "description": "Returns historical Steam order-book data for one catalog item. Each point includes the best bid and ask, spread, buy and sell order counts, price depth, slippage, and observation time. Use `from` and `to` to limit the time range.",
        "operationId": "getV2OrderBookHistory",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by the previous page. Pass it back unchanged with the same `catalog_id`, `from`, and `to` values.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Historical Steam order-book data for the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetOrderBookHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid identity, range, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Stored history failed validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Order-book service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/batch": {
      "post": {
        "summary": "Read current prices for up to 100 catalog items",
        "description": "Returns prices for up to 100 catalog items in request order. Items with a valid ID but no stored price are reported separately.",
        "operationId": "getV2CurrentPricesBatch",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2CurrentPriceBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Current price batch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCurrentPricesBatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid, duplicate, empty, or oversized batch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}/history": {
      "get": {
        "summary": "Read source price history",
        "description": "Returns stored daily, hourly, or 10-minute source prices as decimal strings. Pass a cursor back only with the same filters.",
        "operationId": "getV2PriceHistory",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "marketplace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Exact pattern or phase. Omit to return each stored version as a separate point.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "hourly",
                "10min"
              ],
              "default": "daily"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One page of source history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetPriceHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid identity, source, range, granularity, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}/history/aggregate": {
      "get": {
        "summary": "Read cross-market price history",
        "description": "Returns decimal price aggregates for each item version and identifies every marketplace and source price included in each aggregate.",
        "operationId": "getV2AggregatePriceHistory",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Exact pattern or phase. Omit to return each version as a separate aggregate point.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "hourly",
                "10min"
              ],
              "default": "daily"
            }
          },
          {
            "name": "minimum_sources",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5,
              "default": 1
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One page of cross-market history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetAggregatePriceHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid identity, range, coverage, granularity, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/prices/{catalog_id}/history/coverage": {
      "get": {
        "summary": "Read price-history coverage",
        "description": "Reports the stored time range and the number of present, expected, and missing buckets for each marketplace, version, and interval. It also returns a SHA-256 receipt for the page.",
        "operationId": "getV2PriceHistoryCoverage",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "catalog_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "marketplace",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "Exact pattern or phase; an explicit empty value selects only the unversioned series.",
            "schema": {
              "type": "string",
              "maxLength": 120
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "hourly",
                "10min"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Filter-bound keyset cursor over marketplace, version, and granularity.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One page of exact stored series coverage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetPriceHistoryCoverageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid identity, filter, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Catalog item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/markets": {
      "get": {
        "summary": "List marketplaces",
        "description": "Lists supported marketplaces and the age at which each source is considered stale.",
        "operationId": "listV2Markets",
        "tags": [
          "Platform v2 pricing"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Integrated market references",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListMarketsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market/summary": {
      "get": {
        "summary": "Read the current CS2 market summary",
        "description": "Returns current USD totals calculated from the latest source prices. This is a point-in-time summary, not a historical price index.",
        "operationId": "getV2MarketSummary",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "marketplace",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "segment",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Exact segment value; required with segment.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "fresh_only",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current market summary",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetMarketSummaryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid source or segment filter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market/segments": {
      "get": {
        "summary": "List CS2 market segments",
        "description": "Lists the CS2 item segments that currently have enough price data for market-index calculations.",
        "operationId": "listV2MarketSegments",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "dimension",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "marketplace",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Segment values and priced-item coverage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListMarketSegmentsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid dimension, source, or limit",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market-index/cs2": {
      "get": {
        "summary": "Read the current CS2 market index",
        "description": "Returns the latest successful cs2.chain-equal-weight.v1 index calculation for one marketplace and, optionally, one segment. The response includes the latest point and the data needed to reproduce the calculation.",
        "operationId": "getV2CS2MarketIndex",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "marketplace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "segment",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Exact segment value; required with segment.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "methodology",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "cs2.chain-equal-weight.v1"
              ],
              "default": "cs2.chain-equal-weight.v1"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Newest successful completed index calculation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCS2MarketIndexResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid source, segment, or methodology",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "No successful calculation matches the exact query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market-index/cs2/coverage": {
      "get": {
        "summary": "Read CS2 market-index history coverage",
        "description": "Reports the stored and missing daily buckets for the latest completed index calculation. Missing ranges include both boundary dates.",
        "operationId": "getV2CS2MarketIndexCoverage",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "marketplace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "segment",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Exact segment value; required with segment.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "methodology",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "cs2.chain-equal-weight.v1"
              ],
              "default": "cs2.chain-equal-weight.v1"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Deterministic stored-history coverage receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCS2MarketIndexCoverageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid source, segment, or methodology",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "No successful calculation matches the exact query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market-index/cs2/history": {
      "get": {
        "summary": "Read CS2 market-index OHLC history",
        "description": "Returns daily, weekly, or monthly candles from the latest completed index calculation, ordered newest first.",
        "operationId": "getV2CS2MarketIndexHistory",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "marketplace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "segment",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "Exact segment value; required with segment.",
            "schema": {
              "type": "string",
              "maxLength": 160
            }
          },
          {
            "name": "methodology",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "cs2.chain-equal-weight.v1"
              ],
              "default": "cs2.chain-equal-weight.v1"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "weekly",
                "monthly"
              ],
              "default": "daily"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Inclusive RFC3339 candle boundary.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Exclusive RFC3339 candle boundary.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Filter-bound keyset cursor.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One page of index candles and the completed calculation receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetCS2MarketIndexHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid source, segment, methodology, granularity, time range, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "No successful calculation matches the exact query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/market-index/cs2/compare": {
      "get": {
        "summary": "Compare CS2 segment indices",
        "description": "Compares two to eight separately calculated segment indices. The response preserves request order. If any requested series is missing, the endpoint returns an error instead of a partial comparison.",
        "operationId": "compareV2CS2MarketIndices",
        "tags": [
          "Platform v2 market analytics"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "marketplace",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "steam",
                "skinport",
                "buff",
                "youpin",
                "csfloat"
              ]
            }
          },
          {
            "name": "segment",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "type",
                "weapon",
                "rarity",
                "exterior",
                "stattrak",
                "souvenir",
                "phase",
                "collection"
              ]
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Repeat this parameter two to eight times; request order becomes response-series order.",
            "schema": {
              "type": "array",
              "minItems": 2,
              "maxItems": 8,
              "uniqueItems": true,
              "items": {
                "type": "string",
                "maxLength": 160
              }
            },
            "style": "form",
            "explode": true
          },
          {
            "name": "methodology",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "cs2.chain-equal-weight.v1"
              ],
              "default": "cs2.chain-equal-weight.v1"
            }
          },
          {
            "name": "granularity",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "daily",
                "weekly",
                "monthly"
              ],
              "default": "daily"
            }
          },
          {
            "name": "from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum candles per series.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 365
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ordered segment-index series",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CompareCS2MarketIndicesResponse"
                }
              }
            }
          },
          "400": {
            "description": "The request contains an invalid segment, a duplicate segment, or too many segments",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "One or more requested segments have no successful calculation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inventories/{steam_id}": {
      "get": {
        "summary": "Read a CS2 inventory",
        "description": "Returns any public Steam inventory with one record per asset and exact Valve-provided item state when available, including wear, paint seed, applied stickers, charms or keychains with pattern and offsets, StatTrak, and name tag. A Platform API key authenticates the API caller, and a publicly visible Steam inventory is the owner's sole requirement.",
        "operationId": "getV2Inventory",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "steam_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Normalized inventory snapshot",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetInventoryResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inventories/{steam_id}/resolve": {
      "post": {
        "summary": "Find missing details for public inventory items",
        "description": "Finds missing item details for items in the named public Steam inventory. Returns a request ID that can be checked until the lookup finishes; no Steam login is required from the API caller or inventory owner.",
        "operationId": "resolveV2PublicInventoryExactState",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "steam_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Item-detail request accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InventoryInspectResolutionResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Item-detail service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "unavailable"
      }
    },
    "/v2/inventories/batch": {
      "post": {
        "summary": "Resolve up to 20 CS2 inventories",
        "description": "Results preserve input order and report failures per SteamID.",
        "operationId": "getV2InventoryBatch",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2InventoryBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ordered inventory results with per-entry data or typed error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InventoryBatchResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/decode": {
      "post": {
        "summary": "Read item details from a CS2 inspect link",
        "description": "Reads a current CS2 inspect link and returns its wear, paint seed, stickers, charm, StatTrak value, and name tag.",
        "operationId": "decodeV2Inspect",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2InspectDecodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Standard item state used by the inventory and rendering APIs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2DecodeInspectResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid inspect link or certificate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/resolve-item": {
      "post": {
        "summary": "Match an inspect link to an OpenSkin catalog item",
        "description": "Reads a current CS2 inspect link, identifies its catalog item, and returns the details needed to create an image or 3D view.",
        "operationId": "resolveV2InspectItem",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ResolveItemRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Returns the item details and whether one matching catalog item was found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ResolveItemResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or inspect link",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "500": {
            "description": "Catalog resolution failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Inspect decoding or catalog resolution is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/viewer-session": {
      "post": {
        "summary": "Create a viewer session from an inspect link",
        "description": "Reads a current CS2 inspect link and creates a temporary 3D link using saved camera and background settings.",
        "operationId": "createV2InspectViewerSession",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2InspectViewerSessionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Temporary 3D link created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InspectViewerSessionReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid inspect link or scene selector",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Item or saved settings not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The certificate is ambiguous",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Catalog resolution failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Inspect resolution or viewer session creation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/render": {
      "post": {
        "summary": "Queue an image from an inspect link",
        "description": "Requires inspect:read, catalog:read, and render:create. Reads a current inspect link and creates a transparent PNG or WebP that keeps its StatTrak value, name tag, stickers, charm, wear, and pattern.",
        "operationId": "createV2InspectImageRender",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2InspectImageRenderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Same image request returned again",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InspectImageRenderReceipt"
                }
              }
            }
          },
          "202": {
            "description": "Image request accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InspectImageRenderReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid inspect link, scene selector, output, or idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Item or saved settings not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "The certificate is ambiguous or the idempotency key has different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Catalog resolution failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Inspect resolution or image rendering is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/create-link": {
      "post": {
        "summary": "Create a current CS2 inspect link",
        "description": "Creates a current CS2 inspect link from the supplied item data.",
        "operationId": "createV2InspectLink",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2InspectCreateLinkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Current CS2 inspect link",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InspectCreateLinkResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid item state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "500": {
            "description": "Inspect certificate encoding failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Inspect encoding is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/resolve-market-listing": {
      "post": {
        "summary": "Resolve a current Steam Market listing",
        "description": "Fetches the listing from Steam Community Market, verifies that its listing ID matches the request, and decodes Valve asset property 6 into the public item format. The request accepts a listing ID, not an arbitrary URL or inspect certificate.",
        "operationId": "resolveV2MarketListingInspect",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2MarketListingInspectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Valve-validated public market-listing item state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2MarketListingInspectResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid market hash name or listing identifier",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Listing is not currently present on the Steam Market page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Steam Market page data was unavailable or invalid",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Market-listing resolver is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/inspect/resolve": {
      "post": {
        "summary": "Resolve a legacy CS2 inspect link",
        "x-openskin-availability": "unavailable",
        "description": "Queues a CS2 Game Coordinator lookup for an older S...A...D... or M...A...D... inspect link. Poll the returned command ID for the resolved item state.",
        "operationId": "resolveV2LegacyInspect",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2LegacyInspectResolveRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Game Coordinator lookup queued for the current workspace. Poll /v2/steam/commands/{command_id}; on success, result.item contains a V2ItemInstance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ResolveLegacyInspectResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid legacy inspect link or idempotency key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key was reused with different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/inspect/assets": {
      "get": {
        "summary": "Search decoded CS2 inventory assets",
        "x-openskin-availability": "unavailable",
        "description": "Searches only authenticated inventory records owned by the current workspace. Supports owner, finish, float, seed, StatTrak, sticker, and keychain filters with stable cursor pagination.",
        "operationId": "searchV2InspectAssets",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          },
          {
            "name": "steam_id64",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          },
          {
            "name": "asset_id",
            "in": "query",
            "description": "Exact Steam inventory asset identifier owned by this workspace.",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,19}$"
            }
          },
          {
            "name": "definition_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "paint_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "paint_seed",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "min_wear",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          {
            "name": "max_wear",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          {
            "name": "stattrak",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "souvenir",
            "in": "query",
            "description": "Select Souvenir or non-Souvenir certificate state using Valve economy quality 12.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "name_tag",
            "in": "query",
            "description": "Exact case-sensitive custom name tag.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "has_name_tag",
            "in": "query",
            "description": "Select items with or without a non-empty custom name tag.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sticker_definition",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "keychain_definition",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned decoded asset page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InspectAssetPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filter or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Inspect asset search is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/inspect/public-assets": {
      "get": {
        "summary": "Search public Valve-validated CS2 assets",
        "x-openskin-availability": "unavailable",
        "description": "Searches public item states returned by Valve’s Game Coordinator for owner-asset or market-listing references.",
        "operationId": "searchV2PublicInspectAssets",
        "tags": [
          "Platform v2"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "steam_id64",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          },
          {
            "name": "asset_id",
            "in": "query",
            "description": "Exact Steam inventory asset identifier.",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,19}$"
            }
          },
          {
            "name": "market_listing_id",
            "in": "query",
            "description": "Exact Steam Community Market listing identifier. Cannot be combined with steam_id64.",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,19}$"
            }
          },
          {
            "name": "definition_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "paint_index",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "paint_seed",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "min_wear",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          {
            "name": "max_wear",
            "in": "query",
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          {
            "name": "stattrak",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "souvenir",
            "in": "query",
            "description": "Select Souvenir or non-Souvenir certificate state using Valve economy quality 12.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "name_tag",
            "in": "query",
            "description": "Exact case-sensitive custom name tag.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "has_name_tag",
            "in": "query",
            "description": "Select items with or without a non-empty custom name tag.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sticker_definition",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "keychain_definition",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 4294967295
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by the previous page. Pass it back unchanged and with the same filters; otherwise the API returns 400.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Public Valve-observed asset page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PublicInspectAssetPage"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filter or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Public inspect asset search is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/ids/{steam_id}": {
      "get": {
        "summary": "Normalize a Steam ID",
        "description": "Converts a public individual SteamID64, SteamID2, or SteamID3 to the other supported formats.",
        "operationId": "normalizeV2SteamID",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SteamID"
          }
        ],
        "responses": {
          "200": {
            "description": "Supported Steam ID formats",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2NormalizeSteamIDResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or unsupported Steam ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/resolve/{identity}": {
      "get": {
        "summary": "Resolve a Steam account identity",
        "description": "Normalizes SteamID64, SteamID2, and SteamID3 locally. Vanity names are resolved through Valve's documented ResolveVanityURL endpoint and include source, observation, and cache metadata.",
        "operationId": "resolveV2SteamIdentity",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "identity",
            "in": "path",
            "required": true,
            "description": "Public individual SteamID64, SteamID2, SteamID3, or Steam Community vanity name",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Normalized Steam account identity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ResolveSteamIdentityResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid Steam identity or vanity syntax",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Vanity name not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Valve is rate limiting vanity resolution",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Valve profile integration is not configured in v2-test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/profiles/{steam_id}": {
      "get": {
        "summary": "Get a public Steam profile",
        "description": "Returns a normalized public profile with explicit source and cache freshness.",
        "operationId": "getV2SteamProfile",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SteamID"
          }
        ],
        "responses": {
          "200": {
            "description": "Normalized Steam profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSteamProfileResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Profile not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Profile service is not configured in v2-test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/profiles/batch": {
      "post": {
        "summary": "Get up to 20 public Steam profiles",
        "description": "Preserves request order, coalesces duplicate IDs, and reports missing profiles per entry.",
        "operationId": "getV2SteamProfileBatch",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ProfileBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ordered profile results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSteamProfileBatchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid batch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Profile service is not configured in v2-test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/profiles/{steam_id}/friends": {
      "get": {
        "summary": "Get a public Steam friend list",
        "description": "Returns the current public friend list for one Steam profile.",
        "operationId": "getV2SteamFriends",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SteamID"
          }
        ],
        "responses": {
          "200": {
            "description": "Public friend list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSteamFriendsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "description": "API scope missing or the friend list is private",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Profile service is not configured in v2-test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/profiles/{steam_id}/trade-eligibility": {
      "get": {
        "summary": "Get public Steam trade-restriction signals",
        "description": "Reports public ban/economy signals only. complete is always false because private holds and partner-specific restrictions require an authenticated account check.",
        "operationId": "getV2SteamTradeEligibility",
        "tags": [
          "Platform v2 profiles"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SteamID"
          }
        ],
        "responses": {
          "200": {
            "description": "Public trade-restriction signals",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSteamTradeEligibilityResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Profile service is not configured in v2-test",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts": {
      "get": {
        "summary": "List connected Steam accounts",
        "x-openskin-availability": "production",
        "description": "Returns the connected Steam accounts owned by the current workspace.",
        "operationId": "listV2SteamAccounts",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned account records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListSteamAccountsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        }
      },
      "post": {
        "summary": "Create a Steam account record",
        "x-openskin-availability": "production",
        "description": "Creates a Steam account record for the current workspace.",
        "operationId": "createV2SteamAccount",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamAccountCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Account record created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SteamAccount"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/health": {
      "get": {
        "summary": "Read Steam account health",
        "x-openskin-availability": "production",
        "description": "Returns the account’s session, authenticator, inventory, reconciliation, command, and trading status.",
        "operationId": "getV2SteamAccountHealth",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-specific operational health receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSteamAccountHealthResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/controls": {
      "put": {
        "summary": "Pause or resume Steam account changes",
        "x-openskin-availability": "production",
        "description": "Pauses or resumes Steam account changes. Pausing cancels queued state-changing commands and disables the active trade policy.",
        "operationId": "updateV2SteamAccountControls",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamAccountControlRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Workspace-specific control receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2UpdateSteamAccountControlsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid control request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/login": {
      "post": {
        "summary": "Authenticate a Steam account",
        "x-openskin-availability": "production",
        "description": "Authenticates a connected Steam account with a username and password or a Steam refresh token. Successful authentication saves a refresh token for later sessions.",
        "operationId": "loginV2SteamAccount",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamLoginRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Authentication command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "encrypted storage or automation worker is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/web-api-key": {
      "post": {
        "summary": "Store a Steam Web API key",
        "x-openskin-availability": "production",
        "description": "Stores the connected account’s IEconService key in encrypted workspace storage.",
        "operationId": "importV2SteamWebAPIKey",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamWebAPIKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Key encrypted and imported",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "example": "private, no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "The key is not exactly 32 hexadecimal characters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Managed Steam account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/refresh-session": {
      "post": {
        "summary": "Renew a Steam Community session",
        "x-openskin-availability": "production",
        "description": "Uses the encrypted refresh token inside the isolated worker and rotates only the encrypted short-lived session cookie. No token is returned in command data.",
        "operationId": "refreshV2SteamSession",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Session-refresh command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "encrypted storage or automation worker is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/inventory/sync": {
      "post": {
        "summary": "Synchronize the connected account inventory",
        "x-openskin-availability": "production",
        "description": "Queues a private CS2 inventory sync through Steam’s Econ service and returns the command status.",
        "operationId": "syncV2AuthenticatedSteamInventory",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Authenticated inventory sync queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Connected account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/inventory": {
      "get": {
        "summary": "Read the latest authenticated inventory",
        "x-openskin-availability": "production",
        "description": "Returns the latest saved inventory for the connected account with catalog, price, valuation, and inspect-link fields.",
        "operationId": "getV2AuthenticatedSteamInventory",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          }
        ],
        "responses": {
          "200": {
            "description": "Latest workspace-owned authenticated inventory",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetAuthenticatedSteamInventoryResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account or authenticated snapshot not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Inventory normalization is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/inventory/history": {
      "get": {
        "summary": "List authenticated inventory history",
        "x-openskin-availability": "production",
        "description": "Returns saved inventory snapshots and the exact assets added, removed, or changed between snapshots for a Steam account owned by the current workspace. It omits historical valuations because applying current prices to older inventories would be misleading. Requires accounts:read and inventory:read.",
        "operationId": "listV2AuthenticatedSteamInventoryHistory",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Newest-first authenticated inventory history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetAuthenticatedInventoryHistoryResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid account, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Connected account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/guard/code": {
      "post": {
        "summary": "Generate a Steam Guard code",
        "x-openskin-availability": "production",
        "description": "Generates a Steam Guard code and encrypts it for the caller’s P-256 public key.",
        "operationId": "generateV2SteamGuardCode",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2EncryptedDeliveryRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "OpenSkin does not hold authenticator material for the connected customer-owned account",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/trade-link": {
      "post": {
        "summary": "Fetch the connected account's inbound trade-offer link",
        "x-openskin-availability": "production",
        "description": "Returns the account’s current Steam trade URL encrypted for the caller’s P-256 public key.",
        "operationId": "fetchV2SteamTradeLink",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2EncryptedDeliveryRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Trade-link command queued",
            "headers": {
              "Cache-Control": {
                "schema": {
                  "type": "string",
                  "example": "private, no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid account ID or delivery public key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Connected account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/import": {
      "post": {
        "summary": "Import an existing Steam mobile authenticator",
        "x-openskin-availability": "production",
        "description": "Imports and stores the account’s Steam authenticator values as one encrypted set.",
        "operationId": "importV2SteamAuthenticator",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2AuthenticatorImport"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Authenticator encrypted and imported atomically",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid authenticator material",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different authenticator material",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/enroll": {
      "post": {
        "summary": "Begin Steam mobile-authenticator enrollment",
        "x-openskin-availability": "production",
        "description": "Stores the provisional authenticator data in encrypted storage for 24 hours. The data becomes active account credentials only after Steam accepts the finalization request.",
        "operationId": "enrollV2SteamAuthenticator",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Enrollment command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/enroll/{enrollment_id}/finalize": {
      "post": {
        "summary": "Finalize Steam mobile-authenticator enrollment",
        "x-openskin-availability": "production",
        "description": "The one-time activation code is encrypted before queuing. Authenticator secrets become active account credentials only after Steam confirms finalization.",
        "operationId": "finalizeV2SteamAuthenticator",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "name": "enrollment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2AuthenticatorFinalizeRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Finalization command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid or unavailable enrollment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different finalization material",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/remove": {
      "post": {
        "summary": "Remove the active Steam mobile authenticator",
        "x-openskin-availability": "production",
        "description": "OpenSkin destroys its active shared, identity, revocation, and device envelopes only after Steam confirms removal. Cookie revocation is an explicit caller choice.",
        "operationId": "removeV2SteamAuthenticator",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2AuthenticatorRemoveRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Removal command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/recovery": {
      "post": {
        "summary": "Begin lost-revocation-code authenticator recovery",
        "x-openskin-availability": "production",
        "description": "Requests an SMS challenge through Steam’s authenticator recovery protocol.",
        "operationId": "startV2SteamAuthenticatorRecovery",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "SMS recovery challenge queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/authenticator/recovery/{recovery_id}/complete": {
      "post": {
        "summary": "Complete authenticator recovery with an SMS code",
        "x-openskin-availability": "production",
        "description": "Completes Steam authenticator recovery with the SMS code and stores the replacement authenticator values.",
        "operationId": "completeV2SteamAuthenticatorRecovery",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "name": "recovery_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2AuthenticatorRecoveryCompleteRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Authenticator-transfer completion queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid SMS code or recovery challenge",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different recovery material",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/commands": {
      "get": {
        "summary": "List Steam automation commands",
        "x-openskin-availability": "production",
        "description": "Returns Steam command history for the current workspace in newest-first order.",
        "operationId": "listV2SteamCommands",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          },
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "queued",
                "running",
                "succeeded",
                "failed",
                "canceled"
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9_.]{1,80}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned command history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SteamCommandPageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid command-history filter or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Steam automation storage is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/commands/{command_id}": {
      "get": {
        "summary": "Read a Steam command result",
        "description": "Returns sanitized command state. Sensitive results, such as Steam Guard codes, are returned only as ciphertext encrypted for the caller.",
        "operationId": "getV2SteamCommand",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "command_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned command state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandStatus"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Command does not exist for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts/{account_id}/guard/confirmations": {
      "post": {
        "summary": "List Steam mobile confirmations",
        "x-openskin-availability": "production",
        "description": "Queues retrieval of the account’s current mobile confirmations. Stored confirmation secrets remain encrypted.",
        "operationId": "listV2SteamConfirmations",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/guard/confirmations/{confirmation_id}": {
      "post": {
        "summary": "Accept or deny a Steam mobile confirmation",
        "x-openskin-availability": "production",
        "description": "Queues acceptance or denial of one confirmation. Immediately before acting, OpenSkin fetches the current confirmations again and continues only if exactly one entry matches the confirmation ID, nonce, and creator ID. The confirmation signature is generated from encrypted account secrets.",
        "operationId": "resolveV2SteamConfirmation",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "name": "confirmation_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]*$"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ConfirmationResolveRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Confirmation action queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid confirmation ID, nonce, creator ID, or action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused for another action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/guard/confirmations/batch": {
      "post": {
        "summary": "Resolve selected Steam mobile confirmations",
        "description": "Queues one accept or deny decision for 1 to 10 explicitly selected confirmations. Each confirmation ID may appear once. OpenSkin re-reads the current list and acts only when every confirmation ID, nonce, and creator ID still matches. Unlisted confirmations remain unchanged; there is no confirm-all operation.",
        "operationId": "resolveV2SteamConfirmationBatch",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ConfirmationBatchResolveRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Bounded confirmation action queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Selection must contain 1 to 10 valid entries with unique confirmation IDs and one valid action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused for another action",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts/{account_id}/disconnect": {
      "post": {
        "summary": "Queue account disconnection and credential destruction",
        "operationId": "disconnectV2SteamAccount",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Command queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "description": "Queues removal of the Steam account connection. After Steam confirms the operation, OpenSkin deletes the stored credentials.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts/{account_id}/trade-hold-check": {
      "post": {
        "summary": "Check the partner-specific Steam trade hold",
        "x-openskin-availability": "production",
        "description": "Returns the current combined Steam trade-hold duration between the connected account and one partner.",
        "operationId": "checkV2SteamTradeHold",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamTradeHoldRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Partner hold check queued; read the eventual V2SteamTradeHoldResult through the command endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid partner SteamID64 or trade token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Connected account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted storage or Steam automation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/steam/accounts/{account_id}/trade-policy": {
      "get": {
        "summary": "Read the account trade policy",
        "description": "Returns a disabled fail-closed policy when no policy has been configured.",
        "operationId": "getV2SteamTradePolicy",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          }
        ],
        "responses": {
          "200": {
            "description": "Trade policy",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SteamTradePolicy"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      },
      "put": {
        "summary": "Replace the account trade policy",
        "description": "Enables or disables trade execution and sets partner, gift, and asset-count limits. The request is rejected while account changes are paused.",
        "operationId": "updateV2SteamTradePolicy",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2UpdateSteamTradePolicy"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated trade policy",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SteamTradePolicy"
                }
              }
            }
          },
          "400": {
            "description": "Invalid policy",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts/{account_id}/trades/sync": {
      "post": {
        "summary": "Synchronize Steam trade offers",
        "description": "Reads sent and incoming Steam trade offers and saves their direction, items, hold status, protection status, current state, and reversals.",
        "operationId": "syncV2SteamTrades",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Trade sync queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/steam/accounts/{account_id}/trades/history/sync": {
      "post": {
        "summary": "Synchronize one page of Steam trade history",
        "description": "Imports up to 100 Steam trade-history entries and matches them by trade ID, partner, and items. Use the cursor from the completed account action to request the next page.",
        "operationId": "syncV2SteamTradeHistory",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2AccountID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SteamTradeHistorySyncRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "One history page queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid account-bound history cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trade-intents/preview": {
      "post": {
        "summary": "Validate a trade instruction",
        "description": "Validates an outbound create_offer instruction or a synchronized incoming accept_offer instruction against the current account and trade policy.",
        "operationId": "previewV2TradeIntent",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2PreviewTradeIntentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Account permissions at the time of the request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentPreviewResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Connected account not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Current server-owned inventory or valuation is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trade-intents": {
      "get": {
        "summary": "List trade instructions",
        "description": "Returns saved trade instructions for the current workspace in newest-first order. A cursor can be reused only with the same filters. The response includes execution state and assets, but not customer prices, credits, or profit calculations.",
        "operationId": "listV2TradeIntents",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "Comma-separated intent states",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "partner_steam_id64",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          },
          {
            "name": "external_reference",
            "in": "query",
            "description": "Exact opaque customer workflow reference",
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned trade-intent page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentPageResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      },
      "post": {
        "summary": "Create a trade instruction",
        "description": "Creates a saved create_offer or accept_offer instruction after validating policy, inventory, and valuation. Outgoing assets are reserved in the same transaction.",
        "operationId": "createV2TradeIntent",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2CreateTradeIntentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Validated draft intent and outgoing asset reservations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid intent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency, external-reference, target-offer, or asset-reservation conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trade-intents/{intent_id}": {
      "get": {
        "summary": "Read a trade instruction",
        "operationId": "getV2TradeIntent",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2TradeIntentID"
          }
        ],
        "responses": {
          "200": {
            "description": "Trade intent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Intent not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns one saved trade instruction owned by the current workspace.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/trade-intents/{intent_id}/execute": {
      "post": {
        "summary": "Execute a trade instruction",
        "description": "Creates a Steam command from a reserved create_offer or accept_offer instruction after checking the synchronized offer state.",
        "operationId": "executeV2TradeIntent",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2TradeIntentID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ExecuteTradeIntentRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Existing or newly created exact Steam command",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentExecutionResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Intent not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Intent state, target-offer integrity, or idempotency conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "410": {
            "description": "Intent expired before execution",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trade-intents/{intent_id}/cancel": {
      "post": {
        "summary": "Cancel an unexecuted trade instruction",
        "description": "Releases all reserved outgoing assets. An instruction that is executing or active cannot be canceled here because it may already have been submitted to Steam. Repeating the request with the same Idempotency-Key and instruction returns the canceled instruction; using that key with another instruction returns a conflict.",
        "operationId": "cancelV2TradeIntent",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2TradeIntentID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Canceled intent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeIntentResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Intent not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Intent has already begun execution",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trades": {
      "get": {
        "summary": "List Steam trade operations",
        "description": "Returns synchronized and OpenSkin-created offers for the current workspace. Use external_offer_id to find an offer already recorded by OpenSkin. A cursor can be reused only with the same account and filters.",
        "operationId": "listV2Trades",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "account_id",
            "in": "query",
            "description": "Restrict results to one workspace-owned managed account.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1
            }
          },
          {
            "name": "direction",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "incoming",
                "outbound"
              ]
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "One state or a comma-separated set of lifecycle states.",
            "schema": {
              "type": "string",
              "example": "active,confirmation_required"
            }
          },
          {
            "name": "partner_steam_id64",
            "in": "query",
            "schema": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          },
          {
            "name": "external_offer_id",
            "in": "query",
            "description": "Restrict results to one Steam offer ID already recorded in this workspace.",
            "schema": {
              "type": "string",
              "pattern": "^[1-9][0-9]{0,19}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Opaque keyset cursor from the preceding response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Trade operations",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListTradesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid filters or a cursor that does not match them",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trades/{trade_id}": {
      "get": {
        "summary": "Read a Steam trade operation",
        "operationId": "getV2Trade",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "trade_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Trade state and assets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2TradeOperation"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Trade not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns one synchronized or OpenSkin-created Steam trade owned by the current workspace.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/trades/{trade_id}/reconcile": {
      "post": {
        "summary": "Refresh one Steam trade offer",
        "description": "Queues a read-only IEconService/GetTradeOffer lookup for the trade's recorded Steam offer ID. OpenSkin updates only that offer and preserves newer recorded state. Reconciliation remains available when the account's safety switch pauses state-changing commands.",
        "operationId": "reconcileV2Trade",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "trade_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Exact-offer reconciliation queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Trade not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/trades/{trade_id}/cancel": {
      "post": {
        "summary": "Cancel an outgoing Steam trade offer",
        "operationId": "cancelV2Trade",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "trade_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Trade cancellation queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Trade not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Queues cancellation of an outgoing Steam trade offer.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/trades/{trade_id}/decline": {
      "post": {
        "summary": "Decline an incoming Steam trade offer",
        "operationId": "declineV2Trade",
        "tags": [
          "Platform v2 automation"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "trade_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Trade decline queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2CommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Trade not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Queues rejection of an incoming Steam trade offer.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhook-event-types": {
      "get": {
        "summary": "List supported webhook event types",
        "operationId": "listV2WebhookEventTypes",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Supported event types",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookEventTypesResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "description": "Lists the event types that can be sent to webhook endpoints.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhooks": {
      "get": {
        "summary": "List webhook endpoints",
        "operationId": "listV2Webhooks",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "workspace endpoints",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListWebhooksResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "description": "Returns webhook endpoints owned by the current workspace.",
        "x-openskin-availability": "production"
      },
      "post": {
        "summary": "Create a webhook endpoint",
        "description": "Creates a webhook endpoint and returns its signing secret with the initial response.",
        "operationId": "createV2Webhook",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2WebhookEndpointRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Endpoint and one-time signing secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookSecretReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted webhook-secret storage is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhooks/{endpoint_id}": {
      "put": {
        "summary": "Replace webhook endpoint settings",
        "operationId": "updateV2Webhook",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2WebhookEndpointID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2WebhookEndpointUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookCommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Endpoint not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Replaces the webhook endpoint URL and event subscriptions.",
        "x-openskin-availability": "production"
      },
      "delete": {
        "summary": "Disable a webhook endpoint",
        "operationId": "disableV2Webhook",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2WebhookEndpointID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Disabled endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookCommandReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Endpoint not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Disables the endpoint. Existing delivery history remains available.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhooks/{endpoint_id}/rotate-secret": {
      "post": {
        "summary": "Rotate a webhook signing secret",
        "description": "Returns the new secret once and keeps the prior version valid for existing deliveries for 24 hours.",
        "operationId": "rotateV2WebhookSecret",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2WebhookEndpointID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Endpoint and one-time new secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookSecretReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Endpoint not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "encrypted webhook-secret storage is not configured",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhooks/{endpoint_id}/test": {
      "post": {
        "summary": "Queue a test webhook event",
        "operationId": "testV2Webhook",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2WebhookEndpointID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Durable test event and delivery queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookTestReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Endpoint not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Queues a test event and delivery for the endpoint.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhook-deliveries": {
      "get": {
        "summary": "List recent webhook deliveries",
        "operationId": "listV2WebhookDeliveries",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "endpoint_id",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recent workspace delivery state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListWebhookDeliveriesResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "description": "Returns recent webhook deliveries in newest-first order.",
        "x-openskin-availability": "production"
      }
    },
    "/v2/webhook-deliveries/{delivery_id}/retry": {
      "post": {
        "summary": "Retry a failed webhook delivery",
        "description": "Queues another delivery of a failed webhook event to its active endpoint.",
        "operationId": "retryV2WebhookDelivery",
        "tags": [
          "Platform v2 webhooks"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "delivery_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "A new delivery was queued, or the idempotent retry receipt was replayed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2WebhookRetryReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Delivery not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Delivery is not terminal-failed, endpoint is inactive, webhook-secret storage is unavailable, or the idempotency key conflicts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Webhook delivery is unavailable in this environment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/scenes": {
      "get": {
        "summary": "List viewer scenes",
        "operationId": "listV2Scenes",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "include_archived",
            "in": "query",
            "schema": {
              "type": "integer",
              "enum": [
                0,
                1
              ],
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "workspace scenes",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListScenesResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          }
        },
        "description": "Returns viewer scenes owned by the current workspace.",
        "x-openskin-availability": "production"
      },
      "post": {
        "summary": "Create a viewer scene",
        "description": "Creates the first revision of a schema version 3 scene document. A scene contains presentation settings, not item identity or visual item state.",
        "operationId": "createV2Scene",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SceneDocument"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Scene created; the response returns a quoted ETag containing the SHA-256 of the normalized scene JSON",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SceneMutationReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/scenes/{scene_id}": {
      "get": {
        "summary": "Read the current scene revision",
        "operationId": "getV2Scene",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SceneID"
          }
        ],
        "responses": {
          "200": {
            "description": "Current scene revision",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetSceneResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Scene not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Returns the latest revision of one viewer scene.",
        "x-openskin-availability": "production"
      },
      "put": {
        "summary": "Create a new scene revision",
        "operationId": "updateV2Scene",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SceneID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "$ref": "#/components/parameters/V2SceneIfMatch"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2SceneDocument"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated scene",
            "headers": {
              "ETag": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SceneMutationReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Scene not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency key reused with different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "412": {
            "description": "Digest, state, or next revision does not match",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "428": {
            "description": "A quoted current scene digest is required in If-Match",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "description": "Creates a new revision of the scene. Existing revisions remain unchanged.",
        "x-openskin-availability": "production"
      },
      "delete": {
        "summary": "Archive a viewer scene",
        "description": "Archives the scene. Existing revisions remain available for render records and cannot be changed.",
        "operationId": "archiveV2Scene",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2SceneID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Archived scene",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2SceneMutationReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Scene not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/viewer/sessions": {
      "post": {
        "summary": "Create a 3D viewer session",
        "description": "Creates a temporary browser session for one catalog item and saved scene revision.",
        "operationId": "createV2ViewerSession",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ViewerSessionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Short-lived viewer session and exact scene receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ViewerSessionReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid item or scene selector",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Scene, scene revision, or renderer item not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Renderer session creation unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/viewer/publications/{publication_id}": {
      "get": {
        "summary": "Read viewer publication status",
        "description": "Returns renderer publication status for the current workspace.",
        "operationId": "getV2ViewerPublication",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "publication_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Publication status",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2InstancePublicationResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Publication not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Publication status unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/viewer/publications/{publication_id}/sessions": {
      "post": {
        "summary": "Create a session for a published item",
        "description": "Creates a temporary session ticket after the item bundle has been published for the saved scene. The client cannot provide or choose a bundle ID.",
        "operationId": "createV2PublishedViewerSession",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "publication_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2PublishedViewerSessionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Short-lived viewer session and exact scene receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ViewerSessionReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid scene selector",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Publication, scene, or content-addressed bundle not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Publication is not ready",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Viewer session creation unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/renders": {
      "get": {
        "summary": "List image requests",
        "description": "Returns image requests for the current account in newest-first order.",
        "operationId": "listV2ImageRenders",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "queued",
                "leased",
                "rendering",
                "succeeded",
                "failed",
                "canceled"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Recent image requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ListImageRendersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid state, limit, or cursor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "503": {
            "description": "Image history unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      },
      "post": {
        "summary": "Queue an item image",
        "description": "Creates an image using one catalog item, saved camera and background settings, and the requested output format. When it finishes, the image is available through a temporary private URL.",
        "operationId": "createV2ImageRender",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V2ImageRenderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Existing matching request returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ImageRenderReceipt"
                }
              }
            }
          },
          "202": {
            "description": "Image request accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ImageRenderReceipt"
                }
              }
            }
          },
          "400": {
            "description": "Invalid item details, saved settings, or output",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "409": {
            "description": "Idempotency key reused with different content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "The item files or image service are unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/renders/{render_id}": {
      "get": {
        "summary": "Read an image request",
        "description": "Returns one image request. Completed requests include a private result URL valid for approximately five minutes.",
        "operationId": "getV2ImageRender",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2RenderID"
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace-owned job",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2GetImageRenderResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Job not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Private result signing unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    },
    "/v2/renders/{render_id}/retry": {
      "post": {
        "summary": "Retry a failed image request",
        "description": "Retries a failed image request with the same item, saved settings, and output settings.",
        "operationId": "retryV2ImageRender",
        "tags": [
          "Platform v2 media"
        ],
        "servers": [
          {
            "url": "https://api-v2.openskin.dev",
            "description": "v2-test only"
          }
        ],
        "security": [
          {
            "PlatformAPIKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/V2RenderID"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Existing retry returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ImageRenderReceipt"
                }
              }
            }
          },
          "202": {
            "description": "Retry accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2ImageRenderReceipt"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/V2Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/V2Forbidden"
          },
          "404": {
            "description": "Job not found for this workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Job is not failed or idempotency key conflicts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Image render queue unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V2PlatformErrorResponse"
                }
              }
            }
          }
        },
        "x-openskin-availability": "production"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "PlatformAPIKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Scoped OpenSkin Platform key. Query-string keys are not accepted."
      },
      "AccountSession": {
        "type": "apiKey",
        "in": "cookie",
        "name": "openskin_session",
        "description": "Secure HttpOnly OpenSkin account session cookie."
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "minLength": 8,
          "maxLength": 128
        }
      },
      "V2AccountID": {
        "name": "account_id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "integer",
          "format": "int64",
          "minimum": 1
        }
      },
      "V2SteamID": {
        "name": "steam_id",
        "in": "path",
        "required": true,
        "description": "Public individual SteamID64, SteamID2, or SteamID3",
        "schema": {
          "type": "string"
        }
      },
      "V2WebhookEndpointID": {
        "name": "endpoint_id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "V2SceneID": {
        "name": "scene_id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "V2RenderID": {
        "name": "render_id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "V2TradeIntentID": {
        "name": "intent_id",
        "in": "path",
        "required": true,
        "description": "Workspace-owned customer-directed trade intent identifier",
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "V2SceneIfMatch": {
        "name": "If-Match",
        "in": "header",
        "required": true,
        "description": "Quoted SHA-256 digest returned by the current scene ETag",
        "schema": {
          "type": "string",
          "pattern": "^\\\"[0-9a-f]{64}\\\"$"
        }
      }
    },
    "schemas": {
      "PlatformAPIKeyMetadata": {
        "type": "object",
        "required": [
          "id",
          "label",
          "key_prefix",
          "tier",
          "scopes",
          "is_active",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "key_prefix": {
            "type": "string"
          },
          "tier": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_used_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "PlatformAPIKeySecretReceipt": {
        "type": "object",
        "required": [
          "id",
          "key",
          "label",
          "tier",
          "scopes"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "key": {
            "type": "string",
            "pattern": "^osk_live_[A-Za-z0-9_-]{32}$",
            "description": "Returned once; OpenSkin stores only its hash."
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "tier": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2Capability": {
        "type": "object",
        "required": [
          "name",
          "state",
          "required_scopes",
          "boundary"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "production",
              "unavailable",
              "planned"
            ]
          },
          "required_scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "uniqueItems": true
          },
          "boundary": {
            "type": "string",
            "enum": [
              "data",
              "media",
              "control",
              "automation"
            ]
          }
        }
      },
      "V2UsageWindow": {
        "type": "object",
        "required": [
          "used_units",
          "limit",
          "resets_at"
        ],
        "properties": {
          "used_units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "Zero indicates that the subscription has no fixed usage allowance."
          },
          "resets_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2UsageOperation": {
        "type": "object",
        "required": [
          "operation",
          "requests",
          "units",
          "errors"
        ],
        "properties": {
          "operation": {
            "type": "string",
            "pattern": "^[a-z0-9_.]{1,96}$"
          },
          "requests": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "errors": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          }
        }
      },
      "V2UsageSummary": {
        "type": "object",
        "required": [
          "day",
          "minute",
          "daily",
          "operations",
          "source",
          "quota_scope",
          "attribution_scope"
        ],
        "properties": {
          "day": {
            "type": "string",
            "format": "date"
          },
          "minute": {
            "$ref": "#/components/schemas/V2UsageWindow"
          },
          "daily": {
            "$ref": "#/components/schemas/V2UsageWindow"
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2UsageOperation"
            }
          },
          "source": {
            "type": "string",
            "const": "valkey-live"
          },
          "quota_scope": {
            "type": "string",
            "const": "unlimited",
            "description": "The subscription has no fixed request allowance."
          },
          "attribution_scope": {
            "type": "string",
            "const": "api_key",
            "description": "The operations array contains counters for only the authenticated API key."
          }
        }
      },
      "V2AuditEvent": {
        "type": "object",
        "required": [
          "id",
          "source",
          "event_type",
          "resource_type",
          "outcome",
          "metadata",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^(platform|steam):[1-9][0-9]*$"
          },
          "source": {
            "type": "string",
            "enum": [
              "platform",
              "steam"
            ]
          },
          "event_type": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "resource_id": {
            "type": "string"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "accepted",
              "rejected",
              "succeeded",
              "failed",
              "recorded"
            ]
          },
          "actor_key_id": {
            "type": "integer",
            "format": "int64"
          },
          "request_id": {
            "type": "string"
          },
          "idempotency_key": {
            "type": "string"
          },
          "source_ip": {
            "type": "string"
          },
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "trade_id": {
            "type": "string",
            "format": "uuid"
          },
          "command_id": {
            "type": "string",
            "format": "uuid"
          },
          "from_state": {
            "type": "string"
          },
          "to_state": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2AuditPage": {
        "type": "object",
        "required": [
          "events",
          "count"
        ],
        "properties": {
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2AuditEvent"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 200
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2CreateAuditExportRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "from",
          "to"
        ],
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time",
            "description": "Inclusive UTC range start"
          },
          "to": {
            "type": "string",
            "format": "date-time",
            "description": "Exclusive UTC range end. Must be in the past and no more than 32 days after from."
          }
        }
      },
      "V2AuditExportResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url",
          "expires_at",
          "sha256",
          "canonical_event_sha256",
          "compressed_bytes",
          "event_count",
          "platform_event_count",
          "steam_event_count",
          "first_event_at",
          "last_event_at",
          "object_verification_method"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Temporary HTTPS download URL. Omitted from list responses and never contains an API key."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Signed URL expiry, not the durable export retention boundary"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "SHA-256 of the exact compressed object bytes"
          },
          "canonical_event_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "SHA-256 of the redacted event JSON after sorting events by time"
          },
          "compressed_bytes": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "event_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "platform_event_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "steam_event_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "first_event_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_event_at": {
            "type": "string",
            "format": "date-time"
          },
          "object_verification_method": {
            "type": "string",
            "const": "read_after_write_sha256"
          }
        }
      },
      "V2AuditExportJob": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "state",
          "format",
          "from",
          "to",
          "attempts",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "leased",
              "completed",
              "failed"
            ]
          },
          "format": {
            "type": "string",
            "const": "openskin.audit.ndjson.gz.v1"
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "attempts": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5
          },
          "error_code": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_.-]{1,79}$"
          },
          "result_available_until": {
            "type": "string",
            "format": "date-time",
            "description": "Durable object availability boundary; distinct from a signed URL's expiry"
          },
          "result": {
            "$ref": "#/components/schemas/V2AuditExportResult"
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Workspace-specific asynchronous export. Private object keys, credentials, and unredacted audit metadata are never returned."
      },
      "V2AuditExportReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "job",
          "created"
        ],
        "properties": {
          "job": {
            "$ref": "#/components/schemas/V2AuditExportJob"
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2AuditExportPage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "jobs",
          "count"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2AuditExportJob"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2AuditExportReceiptResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2AuditExportReceipt"
          }
        }
      },
      "V2AuditExportJobResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2AuditExportJob"
          }
        }
      },
      "V2AuditExportPageResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2AuditExportPage"
          }
        }
      },
      "V2SteamIDFormats": {
        "type": "object",
        "required": [
          "steam_id64",
          "steam_id2",
          "steam_id3",
          "account_id"
        ],
        "properties": {
          "steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "steam_id2": {
            "type": "string",
            "pattern": "^STEAM_[0-5]:[01]:[0-9]+$"
          },
          "steam_id3": {
            "type": "string",
            "pattern": "^\\[U:1:[0-9]+\\]$"
          },
          "account_id": {
            "type": "integer",
            "format": "uint32"
          }
        }
      },
      "V2SteamIdentityResolution": {
        "allOf": [
          {
            "$ref": "#/components/schemas/V2SteamIDFormats"
          },
          {
            "type": "object",
            "required": [
              "input",
              "kind",
              "source"
            ],
            "properties": {
              "input": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "steam_id",
                  "vanity"
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "local",
                  "steam-web-api-resolve-vanity"
                ]
              },
              "observed_at": {
                "type": "string",
                "format": "date-time"
              },
              "cache": {
                "$ref": "#/components/schemas/V2ProfileCache"
              }
            }
          }
        ]
      },
      "V2ResolveSteamIdentityResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamIdentityResolution"
          }
        }
      },
      "V2ProfileCache": {
        "type": "object",
        "required": [
          "status",
          "stale"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "miss",
              "hit",
              "stale"
            ]
          },
          "stale": {
            "type": "boolean"
          }
        }
      },
      "V2SteamProfile": {
        "type": "object",
        "required": [
          "steam_id64",
          "persona_name",
          "profile_url",
          "avatar_url",
          "avatar_medium_url",
          "avatar_full_url",
          "community_visibility_state",
          "profile_state",
          "persona_state",
          "observed_at",
          "source",
          "cache"
        ],
        "properties": {
          "steam_id64": {
            "type": "string"
          },
          "persona_name": {
            "type": "string"
          },
          "profile_url": {
            "type": "string",
            "format": "uri"
          },
          "avatar_url": {
            "type": "string",
            "format": "uri"
          },
          "avatar_medium_url": {
            "type": "string",
            "format": "uri"
          },
          "avatar_full_url": {
            "type": "string",
            "format": "uri"
          },
          "community_visibility_state": {
            "type": "integer"
          },
          "profile_state": {
            "type": "integer"
          },
          "persona_state": {
            "type": "integer"
          },
          "real_name": {
            "type": "string"
          },
          "primary_clan_id": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "state_code": {
            "type": "string"
          },
          "city_id": {
            "type": "integer"
          },
          "last_logoff": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "cache": {
            "$ref": "#/components/schemas/V2ProfileCache"
          }
        }
      },
      "V2ProfileBatchRequest": {
        "type": "object",
        "required": [
          "steam_ids"
        ],
        "properties": {
          "steam_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2ProfileBatchResult": {
        "type": "object",
        "required": [
          "steam_id64"
        ],
        "properties": {
          "steam_id64": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/V2SteamProfile"
          },
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      },
      "V2SteamFriend": {
        "type": "object",
        "required": [
          "steam_id64",
          "relationship"
        ],
        "properties": {
          "steam_id64": {
            "type": "string"
          },
          "relationship": {
            "type": "string"
          },
          "friend_since": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2SteamFriendList": {
        "type": "object",
        "required": [
          "steam_id64",
          "friends",
          "count",
          "observed_at",
          "source",
          "cache"
        ],
        "properties": {
          "steam_id64": {
            "type": "string"
          },
          "friends": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2SteamFriend"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "cache": {
            "$ref": "#/components/schemas/V2ProfileCache"
          }
        }
      },
      "V2SteamBanSignals": {
        "type": "object",
        "required": [
          "community_banned",
          "vac_banned",
          "vac_ban_count",
          "days_since_last_ban",
          "game_ban_count",
          "economy_ban"
        ],
        "properties": {
          "community_banned": {
            "type": "boolean"
          },
          "vac_banned": {
            "type": "boolean"
          },
          "vac_ban_count": {
            "type": "integer",
            "minimum": 0
          },
          "days_since_last_ban": {
            "type": "integer",
            "minimum": 0
          },
          "game_ban_count": {
            "type": "integer",
            "minimum": 0
          },
          "economy_ban": {
            "type": "string"
          }
        }
      },
      "V2SteamTradeEligibility": {
        "type": "object",
        "required": [
          "steam_id64",
          "status",
          "complete",
          "reasons",
          "signals",
          "observed_at",
          "source",
          "cache"
        ],
        "properties": {
          "steam_id64": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "restricted",
              "no_public_restriction",
              "unknown"
            ]
          },
          "complete": {
            "type": "boolean",
            "const": false
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signals": {
            "$ref": "#/components/schemas/V2SteamBanSignals"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "cache": {
            "$ref": "#/components/schemas/V2ProfileCache"
          }
        }
      },
      "V2WebhookEndpoint": {
        "type": "object",
        "required": [
          "id",
          "url",
          "description",
          "event_types",
          "state",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://"
          },
          "description": {
            "type": "string",
            "maxLength": 200
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "maxItems": 32,
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "state": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2WebhookEndpointRequest": {
        "type": "object",
        "required": [
          "url",
          "event_types"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://",
            "maxLength": 2048
          },
          "description": {
            "type": "string",
            "maxLength": 200
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "maxItems": 32,
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2WebhookSecretReceipt": {
        "type": "object",
        "required": [
          "endpoint",
          "secret_version",
          "created"
        ],
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/V2WebhookEndpoint"
          },
          "signing_secret": {
            "type": "string",
            "description": "Returned once for a newly created secret; omitted on idempotent replay"
          },
          "secret_version": {
            "type": "integer",
            "minimum": 1
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2WebhookTestReceipt": {
        "type": "object",
        "required": [
          "event_id",
          "delivery_id",
          "created"
        ],
        "properties": {
          "event_id": {
            "type": "string",
            "format": "uuid"
          },
          "delivery_id": {
            "type": "string",
            "format": "uuid"
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2SceneDocument": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema",
          "kind",
          "name",
          "revision",
          "presentation",
          "chrome"
        ],
        "properties": {
          "schema": {
            "type": "integer",
            "const": 3
          },
          "kind": {
            "type": "string",
            "const": "openskin-viewer-scene"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "revision": {
            "type": "integer",
            "minimum": 1
          },
          "presentation": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "background",
              "camera",
              "quality"
            ],
            "properties": {
              "background": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "type",
                  "value"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "color"
                  },
                  "value": {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  }
                }
              },
              "camera": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "preset"
                ],
                "properties": {
                  "preset": {
                    "type": "string",
                    "enum": [
                      "inspect",
                      "back",
                      "top"
                    ]
                  }
                }
              },
              "quality": {
                "type": "string",
                "enum": [
                  "interactive",
                  "reference"
                ]
              }
            }
          },
          "chrome": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "showControls",
              "allowFullscreen",
              "watermark"
            ],
            "properties": {
              "showControls": {
                "type": "boolean"
              },
              "allowFullscreen": {
                "type": "boolean"
              },
              "watermark": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "value"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "text"
                      },
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                      }
                    }
                  }
                ]
              }
            }
          }
        }
      },
      "V2Scene": {
        "type": "object",
        "required": [
          "id",
          "state",
          "document",
          "sha256",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "enum": [
              "active",
              "archived"
            ]
          },
          "document": {
            "$ref": "#/components/schemas/V2SceneDocument"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2SceneMutationReceipt": {
        "type": "object",
        "required": [
          "scene",
          "created"
        ],
        "properties": {
          "scene": {
            "$ref": "#/components/schemas/V2Scene"
          },
          "created": {
            "type": "boolean",
            "description": "False when this response repeats the original request with the same idempotency key."
          }
        }
      },
      "V2RenderItemRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "state"
        ],
        "properties": {
          "item": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "family",
              "definition_index"
            ],
            "properties": {
              "family": {
                "type": "string",
                "enum": [
                  "weapon",
                  "knife",
                  "gloves",
                  "sticker",
                  "sticker-slab",
                  "charm",
                  "agent",
                  "patch",
                  "music-kit"
                ]
              },
              "definition_index": {
                "type": "integer",
                "minimum": 1
              },
              "paint_index": {
                "type": "integer",
                "minimum": 0,
                "description": "Required only for weapon, knife, and gloves"
              }
            }
          },
          "state": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "wear": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "pattern": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              }
            }
          },
          "instance": {
            "$ref": "#/components/schemas/V2ItemInstance"
          }
        }
      },
      "V2ViewerSessionRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "scene_id"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2RenderItemRequest"
          },
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "V2ViewerSession": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "bundle_id",
          "bundle_ids",
          "ticket",
          "expires_at",
          "exchange_url",
          "viewer_url",
          "review_url",
          "state"
        ],
        "properties": {
          "bundle_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "bundle_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 16,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "description": "Content-addressed bundles required for this exact item and its attachments."
          },
          "ticket": {
            "type": "string",
            "minLength": 1,
            "description": "Temporary session ticket. Never place it in a URL or log."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "exchange_url": {
            "type": "string",
            "format": "uri"
          },
          "viewer_url": {
            "type": "string",
            "format": "uri",
            "description": "Advanced direct viewer URL. Prefer review_url for framework-neutral browser embedding."
          },
          "review_url": {
            "type": "string",
            "format": "uri",
            "description": "Customer-safe hosted iframe URL. Append the exact HTTPS parentOrigin before embedding."
          },
          "state": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "wear": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "pattern": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4294967295
              }
            }
          }
        }
      },
      "V2ViewerSceneReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "revision",
          "sha256",
          "document"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "revision": {
            "type": "integer",
            "minimum": 1
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "document": {
            "$ref": "#/components/schemas/V2SceneDocument"
          }
        }
      },
      "V2ViewerSessionReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "session",
          "scene"
        ],
        "properties": {
          "session": {
            "$ref": "#/components/schemas/V2ViewerSession"
          },
          "scene": {
            "$ref": "#/components/schemas/V2ViewerSceneReceipt"
          }
        }
      },
      "V2PublishedViewerSessionRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "scene_id"
        ],
        "properties": {
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "V2InstancePublication": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "state",
          "request_sha256",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "leased",
              "publishing",
              "succeeded",
              "failed"
            ]
          },
          "request_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "bundle_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "renderer_build_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "capabilities": {
            "type": "object",
            "description": "Present only after successful publication. Contains the authored live wear and pattern domains.",
            "additionalProperties": false,
            "required": [
              "wear",
              "pattern"
            ],
            "properties": {
              "wear": {
                "type": "object"
              },
              "pattern": {
                "type": "object"
              }
            }
          },
          "error_code": {
            "type": "string",
            "description": "limited customer-safe terminal code; never an exception or object-store detail."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2InstancePublicationResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2InstancePublication"
          }
        }
      },
      "V2ImageRenderOutput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "width",
          "height",
          "format"
        ],
        "properties": {
          "width": {
            "type": "integer",
            "minimum": 64,
            "maximum": 4096
          },
          "height": {
            "type": "integer",
            "minimum": 64,
            "maximum": 4096
          },
          "format": {
            "type": "string",
            "enum": [
              "png",
              "webp"
            ]
          },
          "background": {
            "type": "string",
            "enum": [
              "transparent"
            ],
            "default": "transparent",
            "description": "Returns an alpha-bearing item cutout. The pinned scene supplies camera and lighting inputs, but its visible background is not included."
          }
        }
      },
      "V2ImageRenderRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "item",
          "scene_id",
          "output"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2RenderItemRequest"
          },
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          },
          "output": {
            "$ref": "#/components/schemas/V2ImageRenderOutput"
          }
        }
      },
      "V2ImageRenderResult": {
        "type": "object",
        "required": [
          "url",
          "sha256",
          "expires_at"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2ImageRenderJob": {
        "type": "object",
        "required": [
          "id",
          "state",
          "item",
          "scene_id",
          "scene_revision",
          "scene_sha256",
          "bundle_id",
          "bundle_ids",
          "renderer_build_id",
          "output",
          "attempts",
          "total_attempts",
          "retry_count",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "leased",
              "rendering",
              "succeeded",
              "failed",
              "canceled"
            ]
          },
          "item": {
            "$ref": "#/components/schemas/V2RenderItemRequest"
          },
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          },
          "scene_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "bundle_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "bundle_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 16,
            "uniqueItems": true,
            "description": "Sorted content-addressed bundle dependency set. It includes bundle_id and any sticker or attachment material bundles required by the exact item instance.",
            "items": {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            }
          },
          "renderer_build_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "output_pipeline_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "Version identifier for server-side alpha extraction and output encoding"
          },
          "output": {
            "$ref": "#/components/schemas/V2ImageRenderOutput"
          },
          "attempts": {
            "type": "integer",
            "minimum": 0,
            "description": "Worker attempts in the current automatic retry cycle"
          },
          "total_attempts": {
            "type": "integer",
            "minimum": 0,
            "description": "Monotonic worker attempts across every retry cycle"
          },
          "retry_count": {
            "type": "integer",
            "minimum": 0
          },
          "error_code": {
            "type": "string"
          },
          "last_retried_at": {
            "type": "string",
            "format": "date-time"
          },
          "result": {
            "$ref": "#/components/schemas/V2ImageRenderResult"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2ImageRenderReceipt": {
        "type": "object",
        "required": [
          "job",
          "created"
        ],
        "properties": {
          "job": {
            "$ref": "#/components/schemas/V2ImageRenderJob"
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2ImageRenderPage": {
        "type": "object",
        "required": [
          "jobs",
          "count"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2ImageRenderJob"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2PriceFreshness": {
        "type": "object",
        "required": [
          "state",
          "age_seconds",
          "threshold_seconds"
        ],
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "fresh",
              "stale"
            ]
          },
          "age_seconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "threshold_seconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          }
        }
      },
      "V2OrderBookDepthLevel": {
        "type": "object",
        "required": [
          "price",
          "quantity"
        ],
        "properties": {
          "price": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]{2}$"
          },
          "quantity": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          }
        }
      },
      "V2OrderBookSpread": {
        "type": "object",
        "required": [
          "absolute",
          "percentage"
        ],
        "properties": {
          "absolute": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]{2}$"
          },
          "percentage": {
            "type": "string",
            "pattern": "^[0-9]+\\.[0-9]{4}$"
          }
        }
      },
      "V2OrderBookSnapshot": {
        "type": "object",
        "required": [
          "item",
          "marketplace",
          "currency",
          "bid_depth",
          "ask_depth",
          "observed_at",
          "freshness"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "marketplace": {
            "type": "string",
            "const": "steam"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "bid": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "spread": {
            "$ref": "#/components/schemas/V2OrderBookSpread"
          },
          "buy_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "sell_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "bid_depth": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2OrderBookDepthLevel"
            }
          },
          "ask_depth": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2OrderBookDepthLevel"
            }
          },
          "slippage": {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$"
          },
          "liquidity_score": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness": {
            "$ref": "#/components/schemas/V2PriceFreshness"
          }
        }
      },
      "V2OrderBookHistoryPoint": {
        "type": "object",
        "required": [
          "bid_depth",
          "ask_depth",
          "observed_at"
        ],
        "properties": {
          "bid": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "spread": {
            "$ref": "#/components/schemas/V2OrderBookSpread"
          },
          "buy_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "sell_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "bid_depth": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2OrderBookDepthLevel"
            }
          },
          "ask_depth": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2OrderBookDepthLevel"
            }
          },
          "slippage": {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2OrderBookHistoryPage": {
        "type": "object",
        "required": [
          "item",
          "marketplace",
          "currency",
          "points",
          "count"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "marketplace": {
            "type": "string",
            "const": "steam"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "points": {
            "type": "array",
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/V2OrderBookHistoryPoint"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2PriceObservation": {
        "type": "object",
        "required": [
          "marketplace",
          "version",
          "currency",
          "observed_at",
          "freshness"
        ],
        "properties": {
          "marketplace": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "bid": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "mean": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "median": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "suggested_price": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "max_ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "ask_volume": {
            "type": "integer",
            "minimum": 0
          },
          "bid_volume": {
            "type": "integer",
            "minimum": 0
          },
          "volume_24h": {
            "type": "integer",
            "minimum": 0
          },
          "buy_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "sell_order_count": {
            "type": "integer",
            "minimum": 0
          },
          "liquidity_score": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "float_value": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "paint_seed": {
            "type": "integer",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness": {
            "$ref": "#/components/schemas/V2PriceFreshness"
          }
        }
      },
      "V2PriceQuote": {
        "type": "object",
        "required": [
          "marketplace",
          "version",
          "amount",
          "currency",
          "observed_at",
          "stale"
        ],
        "properties": {
          "marketplace": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "amount": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "stale": {
            "type": "boolean"
          }
        }
      },
      "V2CrossMarketPriceAggregate": {
        "type": "object",
        "required": [
          "version",
          "currency",
          "source_count",
          "fresh_source_count",
          "stale_source_count",
          "ask_source_count",
          "fresh_ask_source_count"
        ],
        "properties": {
          "version": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "source_count": {
            "type": "integer",
            "minimum": 0
          },
          "fresh_source_count": {
            "type": "integer",
            "minimum": 0
          },
          "stale_source_count": {
            "type": "integer",
            "minimum": 0
          },
          "ask_source_count": {
            "type": "integer",
            "minimum": 0
          },
          "fresh_ask_source_count": {
            "type": "integer",
            "minimum": 0
          },
          "minimum_fresh_ask": {
            "$ref": "#/components/schemas/V2PriceQuote"
          },
          "maximum_fresh_ask": {
            "$ref": "#/components/schemas/V2PriceQuote"
          },
          "mean_fresh_ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "median_fresh_ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "observed_from": {
            "type": "string",
            "format": "date-time"
          },
          "observed_to": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2CurrentPrices": {
        "type": "object",
        "required": [
          "item",
          "observations",
          "count",
          "aggregates",
          "aggregate_count"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "requested_version": {
            "type": "string"
          },
          "observations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2PriceObservation"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "lowest_ask": {
            "$ref": "#/components/schemas/V2PriceQuote"
          },
          "lowest_fresh_ask": {
            "$ref": "#/components/schemas/V2PriceQuote"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "aggregates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CrossMarketPriceAggregate"
            }
          },
          "aggregate_count": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "V2CurrentPriceBatch": {
        "type": "object",
        "required": [
          "items",
          "missing_catalog_ids",
          "count"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CurrentPrices"
            }
          },
          "missing_catalog_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          }
        }
      },
      "V2PriceHistoryPoint": {
        "type": "object",
        "required": [
          "bucket",
          "version",
          "price",
          "recorded_at",
          "granularity",
          "marketplace"
        ],
        "properties": {
          "bucket": {
            "type": "string",
            "format": "date-time"
          },
          "version": {
            "type": "string"
          },
          "price": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "bid": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "volume": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "bid_volume": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "paint_seed": {
            "type": "integer",
            "minimum": 0
          },
          "recorded_at": {
            "type": "string",
            "format": "date-time"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          }
        }
      },
      "V2PriceHistoryPage": {
        "type": "object",
        "required": [
          "item",
          "marketplace",
          "granularity",
          "points",
          "count"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "version": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2PriceHistoryPoint"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2AggregatePriceHistorySource": {
        "type": "object",
        "required": [
          "marketplace",
          "price",
          "recorded_at"
        ],
        "properties": {
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "price": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "recorded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2AggregatePriceHistoryQuote": {
        "type": "object",
        "required": [
          "marketplace",
          "amount"
        ],
        "properties": {
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "amount": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          }
        }
      },
      "V2AggregatePriceHistoryPoint": {
        "type": "object",
        "required": [
          "bucket",
          "version",
          "currency",
          "granularity",
          "source_count",
          "sources",
          "minimum",
          "maximum",
          "mean_price",
          "median_price",
          "latest_recorded_at"
        ],
        "properties": {
          "bucket": {
            "type": "string",
            "format": "date-time"
          },
          "version": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "source_count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "sources": {
            "type": "array",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/V2AggregatePriceHistorySource"
            }
          },
          "minimum": {
            "$ref": "#/components/schemas/V2AggregatePriceHistoryQuote"
          },
          "maximum": {
            "$ref": "#/components/schemas/V2AggregatePriceHistoryQuote"
          },
          "mean_price": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "median_price": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "latest_recorded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2AggregatePriceHistoryPage": {
        "type": "object",
        "required": [
          "item",
          "granularity",
          "minimum_sources",
          "points",
          "count"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "version": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "minimum_sources": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "points": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2AggregatePriceHistoryPoint"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2PriceHistoryCoverageSeries": {
        "type": "object",
        "required": [
          "marketplace",
          "version",
          "granularity",
          "retained_from",
          "retained_to",
          "bucket_count",
          "expected_bucket_count",
          "missing_bucket_count",
          "coverage_ratio",
          "latest_recorded_at"
        ],
        "properties": {
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "version": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "retained_from": {
            "type": "string",
            "format": "date-time"
          },
          "retained_to": {
            "type": "string",
            "format": "date-time"
          },
          "bucket_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "expected_bucket_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "missing_bucket_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "coverage_ratio": {
            "type": "string",
            "pattern": "^(?:0(?:\\.[0-9]{6})?|1(?:\\.0{6})?)$"
          },
          "latest_recorded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2PriceHistoryCoveragePage": {
        "type": "object",
        "required": [
          "coverage_version",
          "item",
          "series",
          "count",
          "page_sha256",
          "observed_at"
        ],
        "properties": {
          "coverage_version": {
            "type": "string",
            "const": "cs2.price-history.coverage.v1"
          },
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "version": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "hourly",
              "10min"
            ]
          },
          "series": {
            "type": "array",
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/V2PriceHistoryCoverageSeries"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500
          },
          "page_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "SHA-256 over the response methodology, item, filters, and exact series on this page; observed_at and cursor are excluded."
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2MarketReference": {
        "type": "object",
        "required": [
          "id",
          "name",
          "kind",
          "normalized_currency",
          "freshness_threshold_seconds"
        ],
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "steam_community_market",
              "cash_market"
            ]
          },
          "normalized_currency": {
            "type": "string",
            "const": "USD"
          },
          "freshness_threshold_seconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          }
        }
      },
      "V2MarketSummary": {
        "type": "object",
        "required": [
          "game",
          "methodology_version",
          "currency",
          "fresh_only",
          "current_series_count",
          "catalog_item_count",
          "marketplace_count",
          "stale_series_count",
          "listed_units",
          "ordered_units",
          "volume_24h",
          "listing_value",
          "order_book_value",
          "turnover_24h_estimate",
          "turnover_is_estimate"
        ],
        "properties": {
          "game": {
            "type": "string",
            "const": "cs2"
          },
          "methodology_version": {
            "type": "string",
            "const": "cs2.current-market-summary.v1"
          },
          "currency": {
            "type": "string",
            "const": "USD"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "segment_dimension": {
            "type": "string",
            "enum": [
              "type",
              "weapon",
              "rarity",
              "exterior",
              "stattrak",
              "souvenir",
              "phase",
              "collection"
            ]
          },
          "segment_value": {
            "type": "string"
          },
          "fresh_only": {
            "type": "boolean"
          },
          "current_series_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "catalog_item_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "marketplace_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "stale_series_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "listed_units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "ordered_units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "volume_24h": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "average_ask": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "listing_value": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "order_book_value": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "turnover_24h_estimate": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "source_observed_from": {
            "type": "string",
            "format": "date-time"
          },
          "source_observed_to": {
            "type": "string",
            "format": "date-time"
          },
          "turnover_is_estimate": {
            "type": "boolean",
            "const": true
          }
        }
      },
      "V2MarketSegment": {
        "type": "object",
        "required": [
          "dimension",
          "value",
          "item_count"
        ],
        "properties": {
          "dimension": {
            "type": "string",
            "enum": [
              "type",
              "weapon",
              "rarity",
              "exterior",
              "stattrak",
              "souvenir",
              "phase",
              "collection"
            ]
          },
          "value": {
            "type": "string"
          },
          "item_count": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          }
        }
      },
      "V2MarketIndexPoint": {
        "type": "object",
        "required": [
          "bucket",
          "value",
          "constituent_count",
          "volume_units",
          "turnover_estimate",
          "source_recorded_at"
        ],
        "properties": {
          "bucket": {
            "type": "string",
            "format": "date-time"
          },
          "value": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "log_return": {
            "type": "string",
            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$"
          },
          "constituent_count": {
            "type": "integer",
            "minimum": 1
          },
          "volume_units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "turnover_estimate": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "source_recorded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2MarketIndexRun": {
        "type": "object",
        "required": [
          "run_id",
          "game",
          "methodology_version",
          "marketplace",
          "base_value",
          "basket_target_size",
          "basket_size",
          "minimum_constituents",
          "winsor_log_return",
          "lookback_days",
          "basket_sha256",
          "source_from",
          "source_to",
          "point_count",
          "completed_at",
          "freshness"
        ],
        "properties": {
          "run_id": {
            "type": "string",
            "format": "uuid"
          },
          "game": {
            "type": "string",
            "const": "cs2"
          },
          "methodology_version": {
            "type": "string",
            "const": "cs2.chain-equal-weight.v1"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "segment_dimension": {
            "type": "string",
            "enum": [
              "type",
              "weapon",
              "rarity",
              "exterior",
              "stattrak",
              "souvenir",
              "phase",
              "collection"
            ]
          },
          "segment_value": {
            "type": "string"
          },
          "base_value": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "basket_target_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5000
          },
          "basket_size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5000
          },
          "minimum_constituents": {
            "type": "integer",
            "minimum": 1
          },
          "winsor_log_return": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "lookback_days": {
            "type": "integer",
            "minimum": 2,
            "maximum": 3650
          },
          "basket_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "source_from": {
            "type": "string",
            "format": "date-time"
          },
          "source_to": {
            "type": "string",
            "format": "date-time"
          },
          "point_count": {
            "type": "integer",
            "minimum": 1
          },
          "completed_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness": {
            "$ref": "#/components/schemas/V2MarketIndexFreshness"
          },
          "latest": {
            "$ref": "#/components/schemas/V2MarketIndexPoint"
          }
        }
      },
      "V2MarketIndexFreshness": {
        "type": "object",
        "required": [
          "state",
          "age_seconds",
          "threshold_seconds",
          "materialized_at",
          "refresh_due_at"
        ],
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "fresh",
              "stale"
            ]
          },
          "age_seconds": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "threshold_seconds": {
            "type": "integer",
            "format": "int64",
            "const": 129600
          },
          "materialized_at": {
            "type": "string",
            "format": "date-time"
          },
          "refresh_due_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2MarketIndexCandle": {
        "type": "object",
        "required": [
          "bucket",
          "open",
          "high",
          "low",
          "close",
          "minimum_constituent_count",
          "volume_units",
          "turnover_estimate",
          "source_recorded_at"
        ],
        "properties": {
          "bucket": {
            "type": "string",
            "format": "date-time"
          },
          "open": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "high": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "low": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "close": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "minimum_constituent_count": {
            "type": "integer",
            "minimum": 1
          },
          "volume_units": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "turnover_estimate": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$"
          },
          "source_recorded_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2MarketIndexMissingRange": {
        "type": "object",
        "required": [
          "from",
          "through",
          "missing_buckets"
        ],
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "through": {
            "type": "string",
            "format": "date-time"
          },
          "missing_buckets": {
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "V2MarketIndexCoverage": {
        "type": "object",
        "required": [
          "coverage_version",
          "run",
          "expected_daily_buckets",
          "retained_daily_buckets",
          "missing_daily_buckets",
          "coverage_ratio",
          "missing_ranges",
          "missing_range_count",
          "missing_ranges_truncated",
          "run_point_count_matches",
          "complete",
          "coverage_sha256"
        ],
        "properties": {
          "coverage_version": {
            "type": "string",
            "const": "cs2.market-index.coverage.v1"
          },
          "run": {
            "$ref": "#/components/schemas/V2MarketIndexRun"
          },
          "expected_daily_buckets": {
            "type": "integer",
            "minimum": 1
          },
          "retained_daily_buckets": {
            "type": "integer",
            "minimum": 0
          },
          "missing_daily_buckets": {
            "type": "integer",
            "minimum": 0
          },
          "coverage_ratio": {
            "type": "string",
            "pattern": "^[01]\\.[0-9]{6}$"
          },
          "retained_from": {
            "type": "string",
            "format": "date-time"
          },
          "retained_through": {
            "type": "string",
            "format": "date-time"
          },
          "missing_ranges": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/V2MarketIndexMissingRange"
            }
          },
          "missing_range_count": {
            "type": "integer",
            "minimum": 0
          },
          "missing_ranges_truncated": {
            "type": "boolean"
          },
          "run_point_count_matches": {
            "type": "boolean"
          },
          "complete": {
            "type": "boolean"
          },
          "coverage_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          }
        }
      },
      "V2MarketIndexHistoryPage": {
        "type": "object",
        "required": [
          "run",
          "granularity",
          "candles",
          "count"
        ],
        "properties": {
          "run": {
            "$ref": "#/components/schemas/V2MarketIndexRun"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly"
            ]
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "candles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2MarketIndexCandle"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 500
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2MarketIndexComparisonSeries": {
        "type": "object",
        "required": [
          "segment_value",
          "run",
          "candles"
        ],
        "properties": {
          "segment_value": {
            "type": "string"
          },
          "run": {
            "$ref": "#/components/schemas/V2MarketIndexRun"
          },
          "candles": {
            "type": "array",
            "maxItems": 500,
            "items": {
              "$ref": "#/components/schemas/V2MarketIndexCandle"
            }
          }
        }
      },
      "V2MarketIndexComparison": {
        "type": "object",
        "required": [
          "game",
          "marketplace",
          "segment_dimension",
          "methodology_version",
          "granularity",
          "series",
          "count"
        ],
        "properties": {
          "game": {
            "type": "string",
            "const": "cs2"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ]
          },
          "segment_dimension": {
            "type": "string",
            "enum": [
              "type",
              "weapon",
              "rarity",
              "exterior",
              "stattrak",
              "souvenir",
              "phase",
              "collection"
            ]
          },
          "methodology_version": {
            "type": "string",
            "const": "cs2.chain-equal-weight.v1"
          },
          "granularity": {
            "type": "string",
            "enum": [
              "daily",
              "weekly",
              "monthly"
            ]
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "series": {
            "type": "array",
            "minItems": 2,
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/V2MarketIndexComparisonSeries"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 2,
            "maximum": 8
          }
        }
      },
      "V2CatalogCollection": {
        "type": "object",
        "required": [
          "id",
          "source_id",
          "name",
          "item_count",
          "source"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cs2\\.collection\\.valve\\.v1\\.[A-Za-z0-9_-]+$"
          },
          "source_id": {
            "type": "string",
            "description": "Valve item-set identifier from the extracted CS2 economy schema."
          },
          "name": {
            "type": "string"
          },
          "item_count": {
            "type": "integer",
            "minimum": 0
          },
          "source": {
            "type": "string",
            "const": "valve_items_game"
          }
        }
      },
      "V2CatalogCollectionDetail": {
        "type": "object",
        "required": [
          "collection",
          "items",
          "count"
        ],
        "properties": {
          "collection": {
            "$ref": "#/components/schemas/V2CatalogCollection"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CatalogItem"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "V2CatalogContainer": {
        "type": "object",
        "required": [
          "id",
          "market_hash_name",
          "regular_item_count",
          "rare_item_count",
          "catalog_authority",
          "relationship_source"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
          },
          "market_hash_name": {
            "type": "string"
          },
          "icon_url": {
            "type": "string",
            "format": "uri"
          },
          "regular_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "rare_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "catalog_authority": {
            "type": "string",
            "const": "steam_community_catalog"
          },
          "relationship_source": {
            "type": "string",
            "const": "bymykel_csgo_api"
          }
        }
      },
      "V2CatalogDrop": {
        "type": "object",
        "required": [
          "item",
          "is_rare"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "is_rare": {
            "type": "boolean"
          }
        }
      },
      "V2CatalogContainerContents": {
        "type": "object",
        "required": [
          "container",
          "drops",
          "count"
        ],
        "properties": {
          "container": {
            "$ref": "#/components/schemas/V2CatalogContainer"
          },
          "drops": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CatalogDrop"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "V2CatalogCurrency": {
        "type": "object",
        "required": [
          "code",
          "units_per_usd",
          "updated_at"
        ],
        "properties": {
          "code": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "units_per_usd": {
            "type": "string",
            "pattern": "^[0-9]+(?:\\.[0-9]+)?$",
            "description": "Decimal units of this currency per one USD."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2CatalogCurrencySet": {
        "type": "object",
        "required": [
          "base",
          "items",
          "count",
          "observed_at",
          "source"
        ],
        "properties": {
          "base": {
            "type": "string",
            "const": "USD"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CatalogCurrency"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string",
            "const": "frankfurter.dev"
          }
        }
      },
      "V2CatalogSnapshot": {
        "type": "object",
        "required": [
          "snapshot_version",
          "identity_version",
          "sha256",
          "counts",
          "observed_at",
          "sources"
        ],
        "properties": {
          "snapshot_version": {
            "type": "string",
            "const": "cs2.catalog.snapshot.v1"
          },
          "identity_version": {
            "type": "string",
            "const": "cs2.market.v1"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "counts": {
            "$ref": "#/components/schemas/V2CatalogCounts"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2CatalogReleaseKey": {
        "type": "object",
        "required": [
          "key_id",
          "algorithm",
          "public_key"
        ],
        "properties": {
          "key_id": {
            "type": "string"
          },
          "algorithm": {
            "type": "string",
            "const": "ed25519"
          },
          "public_key": {
            "type": "string",
            "description": "Raw 32-byte Ed25519 public key encoded as unpadded base64url."
          }
        }
      },
      "V2CatalogRelease": {
        "type": "object",
        "required": [
          "release_id",
          "payload",
          "signature",
          "verification"
        ],
        "properties": {
          "release_id": {
            "type": "string",
            "pattern": "^cs2rel_[A-Za-z0-9_-]{43}$"
          },
          "payload": {
            "type": "object",
            "required": [
              "release_version",
              "source",
              "source_build_id",
              "snapshot_version",
              "identity_version",
              "snapshot_sha256",
              "counts",
              "sources",
              "observed_at",
              "published_at"
            ],
            "properties": {
              "release_version": {
                "type": "string",
                "const": "cs2.catalog.release.v1"
              },
              "source": {
                "type": "string"
              },
              "source_build_id": {
                "type": "string"
              },
              "snapshot_version": {
                "type": "string",
                "const": "cs2.catalog.snapshot.v1"
              },
              "identity_version": {
                "type": "string",
                "const": "cs2.market.v1"
              },
              "snapshot_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "counts": {
                "$ref": "#/components/schemas/V2CatalogCounts"
              },
              "sources": {
                "type": "array",
                "minItems": 1,
                "uniqueItems": true,
                "items": {
                  "type": "string"
                }
              },
              "observed_at": {
                "type": "string",
                "format": "date-time"
              },
              "published_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "signature": {
            "type": "object",
            "required": [
              "algorithm",
              "key_id",
              "value"
            ],
            "properties": {
              "algorithm": {
                "type": "string",
                "const": "ed25519"
              },
              "key_id": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          },
          "verification": {
            "type": "object",
            "required": [
              "status",
              "public_key"
            ],
            "properties": {
              "status": {
                "type": "string",
                "const": "verified"
              },
              "public_key": {
                "type": "string"
              }
            }
          }
        }
      },
      "V2CatalogReleaseExport": {
        "type": "object",
        "required": [
          "format",
          "release_id",
          "sha256",
          "compressed_bytes",
          "snapshot_sha256",
          "counts",
          "verified_at",
          "download"
        ],
        "properties": {
          "format": {
            "type": "string",
            "const": "openskin.catalog.ndjson.gz.v1"
          },
          "release_id": {
            "type": "string",
            "pattern": "^cs2rel_[A-Za-z0-9_-]{43}$"
          },
          "sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "SHA-256 of the complete compressed archive bytes."
          },
          "compressed_bytes": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 268435456
          },
          "snapshot_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$",
            "description": "Exact catalog snapshot digest carried by the signed release."
          },
          "counts": {
            "$ref": "#/components/schemas/V2CatalogCounts"
          },
          "verified_at": {
            "type": "string",
            "format": "date-time"
          },
          "download": {
            "type": "object",
            "required": [
              "url",
              "expires_at"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Temporary HTTPS download URL."
              },
              "expires_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "V2CatalogRenderWear": {
        "type": "object",
        "required": [
          "supported"
        ],
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "minimum": {
            "type": "string",
            "pattern": "^(0(\\.[0-9]+)?|1(\\.0+)?)$",
            "description": "Exact authored minimum wear. Omitted when wear is unsupported."
          },
          "maximum": {
            "type": "string",
            "pattern": "^(0(\\.[0-9]+)?|1(\\.0+)?)$",
            "description": "Exact authored maximum wear. Omitted when wear is unsupported."
          },
          "default": {
            "type": "string",
            "pattern": "^(0(\\.[0-9]+)?|1(\\.0+)?)$",
            "description": "Renderer default inside the authored range. Omitted when wear is unsupported."
          }
        }
      },
      "V2CatalogRenderPattern": {
        "type": "object",
        "required": [
          "supported"
        ],
        "properties": {
          "supported": {
            "type": "boolean"
          },
          "minimum": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "Exact minimum accepted pattern value. Omitted when pattern is unsupported."
          },
          "maximum": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "Exact maximum accepted pattern value. Omitted when pattern is unsupported."
          },
          "default": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "Renderer default inside the accepted pattern range. Omitted when pattern is unsupported."
          }
        }
      },
      "V2CatalogRenderContract": {
        "type": "object",
        "required": [
          "contract_version",
          "renderer_catalog_id",
          "family",
          "definition_index",
          "wear",
          "pattern",
          "availability"
        ],
        "properties": {
          "contract_version": {
            "type": "string",
            "const": "cs2.render-capability.v1"
          },
          "renderer_catalog_id": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "family": {
            "type": "string",
            "enum": [
              "weapon",
              "knife",
              "gloves",
              "sticker",
              "sticker-slab",
              "charm",
              "agent",
              "patch",
              "music-kit"
            ]
          },
          "definition_index": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535
          },
          "paint_index": {
            "type": "integer",
            "minimum": 0,
            "maximum": 65535,
            "description": "Present only for weapon, knife, and glove finish contracts."
          },
          "wear": {
            "$ref": "#/components/schemas/V2CatalogRenderWear"
          },
          "pattern": {
            "$ref": "#/components/schemas/V2CatalogRenderPattern"
          },
          "availability": {
            "type": "string",
            "enum": [
              "validated",
              "published",
              "approved"
            ],
            "description": "validated means the item maps to one render definition. published means its required files can be downloaded. approved means the result has also passed visual review."
          }
        }
      },
      "V2CatalogItem": {
        "type": "object",
        "required": [
          "id",
          "identity_version",
          "app_id",
          "game",
          "market_hash_name",
          "stattrak",
          "souvenir",
          "identity_basis",
          "catalog_authority"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$",
            "description": "Versioned catalog ID generated by OpenSkin. Pass it back unchanged."
          },
          "identity_version": {
            "type": "string",
            "const": "cs2.market.v1"
          },
          "app_id": {
            "type": "integer",
            "const": 730
          },
          "game": {
            "type": "string",
            "const": "cs2"
          },
          "market_hash_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weapon": {
            "type": "string"
          },
          "skin": {
            "type": "string"
          },
          "exterior": {
            "type": "string"
          },
          "rarity": {
            "type": "string"
          },
          "stattrak": {
            "type": "boolean"
          },
          "souvenir": {
            "type": "boolean"
          },
          "phase": {
            "type": "string"
          },
          "definition_index": {
            "type": "integer",
            "minimum": 0
          },
          "paint_index": {
            "type": "integer",
            "minimum": 0
          },
          "icon_url": {
            "type": "string",
            "format": "uri"
          },
          "sealed_sticker_id": {
            "type": "string",
            "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
          },
          "identity_basis": {
            "type": "string",
            "const": "steam_market_hash_name"
          },
          "catalog_authority": {
            "type": "string",
            "const": "steam_community_catalog"
          },
          "render": {
            "$ref": "#/components/schemas/V2CatalogRenderContract",
            "description": "Exact authored renderer state when this signed catalog identity has a validated alias. Omitted rather than guessed when unavailable."
          }
        }
      },
      "V2CatalogPage": {
        "type": "object",
        "required": [
          "items",
          "count",
          "identity_version",
          "source"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CatalogItem"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 200
          },
          "next_cursor": {
            "type": "string",
            "description": "Opaque keyset cursor; omit on the final page."
          },
          "identity_version": {
            "type": "string",
            "const": "cs2.market.v1"
          },
          "source": {
            "type": "string",
            "const": "steam_catalog"
          }
        }
      },
      "V2WebhookDelivery": {
        "type": "object",
        "required": [
          "id",
          "endpoint_id",
          "event_id",
          "event_type",
          "state",
          "attempt_count",
          "next_attempt_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "format": "uuid"
          },
          "event_id": {
            "type": "string",
            "format": "uuid"
          },
          "event_type": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "delivering",
              "retry",
              "succeeded",
              "dead"
            ]
          },
          "attempt_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 8
          },
          "next_attempt_at": {
            "type": "string",
            "format": "date-time"
          },
          "delivered_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_error_code": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "replay_of_delivery_id": {
            "type": "string",
            "format": "uuid",
            "description": "The terminal failed delivery that the customer explicitly retried. Omitted for original fanout."
          }
        }
      },
      "V2WebhookRetryReceipt": {
        "type": "object",
        "required": [
          "delivery",
          "created"
        ],
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/V2WebhookDelivery"
          },
          "created": {
            "type": "boolean",
            "description": "False only when the same idempotency key replays the original retry receipt."
          }
        }
      },
      "V2SteamAccount": {
        "type": "object",
        "required": [
          "id",
          "display_label",
          "state",
          "mutation_blocked",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "display_label": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "pending",
              "authenticating",
              "guard_required",
              "active",
              "reconnecting",
              "suspended",
              "failed",
              "revoked"
            ]
          },
          "state_reason": {
            "type": "string"
          },
          "mutation_blocked": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2SteamAccountHealth": {
        "type": "object",
        "required": [
          "account_id",
          "overall",
          "account_state",
          "mutation_blocked",
          "worker",
          "session",
          "authenticator",
          "inventory",
          "reconciliation",
          "commands",
          "trading",
          "checked_at"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "overall": {
            "type": "string",
            "enum": [
              "healthy",
              "degraded",
              "action_required",
              "blocked"
            ]
          },
          "account_state": {
            "type": "string"
          },
          "mutation_blocked": {
            "type": "boolean"
          },
          "worker": {
            "type": "object",
            "required": [
              "status",
              "dedicated"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "unavailable"
                ]
              },
              "dedicated": {
                "type": "boolean"
              }
            }
          },
          "session": {
            "type": "object",
            "required": [
              "status",
              "refresh_token_available"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "fresh",
                  "expiring",
                  "active",
                  "expired",
                  "refreshable",
                  "unavailable"
                ]
              },
              "refresh_token_available": {
                "type": "boolean"
              },
              "expires_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_connected_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "authenticator": {
            "type": "object",
            "required": [
              "status",
              "code_generation_available",
              "confirmation_management_available",
              "recovery_available"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "managed",
                  "incomplete",
                  "external_or_none"
                ]
              },
              "code_generation_available": {
                "type": "boolean"
              },
              "confirmation_management_available": {
                "type": "boolean"
              },
              "recovery_available": {
                "type": "boolean"
              }
            }
          },
          "inventory": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "fresh",
                  "stale",
                  "not_synced"
                ]
              },
              "observed_at": {
                "type": "string",
                "format": "date-time"
              },
              "asset_count": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "reconciliation": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "fresh",
                  "stale",
                  "not_synced"
                ]
              },
              "last_reconciled_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "commands": {
            "type": "object",
            "required": [
              "pending_count"
            ],
            "properties": {
              "pending_count": {
                "type": "integer",
                "minimum": 0
              },
              "last_type": {
                "type": "string"
              },
              "last_state": {
                "type": "string"
              },
              "last_error_code": {
                "type": "string"
              },
              "last_completed_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "trading": {
            "type": "object",
            "description": "Reports whether the connected account has the configuration required to execute trades. OpenSkin validates the partner, assets, policy, and account state for each trade before execution.",
            "required": [
              "status",
              "intent_preflight_available",
              "mutation_pipeline_available",
              "trade_specific_validation_required",
              "policy_enabled",
              "policy_revision",
              "rolling_24_hours",
              "active_account_lease",
              "reason_codes"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "ready",
                  "temporarily_unavailable",
                  "blocked"
                ]
              },
              "intent_preflight_available": {
                "type": "boolean"
              },
              "mutation_pipeline_available": {
                "type": "boolean"
              },
              "trade_specific_validation_required": {
                "type": "boolean",
                "const": true
              },
              "policy_enabled": {
                "type": "boolean"
              },
              "policy_revision": {
                "type": "integer",
                "format": "int64",
                "minimum": 0
              },
              "rolling_24_hours": {
                "$ref": "#/components/schemas/V2SteamTradeBudgetUsage"
              },
              "active_account_lease": {
                "type": "boolean"
              },
              "lease_expires_at": {
                "type": "string",
                "format": "date-time"
              },
              "reason_codes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "checked_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2SteamAccountControlReceipt": {
        "type": "object",
        "required": [
          "account_id",
          "mutation_blocked",
          "changed",
          "canceled_commands",
          "in_flight_commands",
          "updated_at"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "mutation_blocked": {
            "type": "boolean"
          },
          "changed": {
            "type": "boolean"
          },
          "canceled_commands": {
            "type": "integer",
            "minimum": 0
          },
          "in_flight_commands": {
            "type": "integer",
            "minimum": 0,
            "description": "Risk-increasing commands already leased when the switch changed. Their Steam outcome must be reconciled."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2CommandReceipt": {
        "type": "object",
        "required": [
          "id",
          "state",
          "idempotency_key",
          "created"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string"
          },
          "idempotency_key": {
            "type": "string"
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2OperationFailure": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "code",
          "origin",
          "transient"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Stable machine-readable failure code."
          },
          "origin": {
            "type": "string",
            "enum": [
              "customer_instruction",
              "customer_account",
              "steam",
              "openskin"
            ],
            "description": "Identifies whether the failure originated in the customer instruction, customer account, Steam, or OpenSkin."
          },
          "transient": {
            "type": "boolean",
            "description": "True when retrying later may succeed without changing the instruction. Before retrying a Steam action, follow the endpoint’s idempotency and reconciliation rules."
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2CommandStatus": {
        "allOf": [
          {
            "$ref": "#/components/schemas/V2CommandReceipt"
          },
          {
            "type": "object",
            "required": [
              "account_id",
              "type",
              "created_at"
            ],
            "properties": {
              "account_id": {
                "type": "integer",
                "format": "int64",
                "minimum": 1
              },
              "type": {
                "type": "string"
              },
              "result": {
                "type": "object",
                "additionalProperties": true,
                "description": "Sanitized result; secrets are never plaintext"
              },
              "error_code": {
                "type": "string",
                "deprecated": true,
                "description": "Backward-compatible failure code. New integrations should use failure.code and failure.origin."
              },
              "failure": {
                "$ref": "#/components/schemas/V2OperationFailure"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "completed_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "V2SteamCommandPage": {
        "type": "object",
        "required": [
          "commands",
          "count"
        ],
        "properties": {
          "commands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2CommandStatus"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2SteamCommandPageResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamCommandPage"
          }
        }
      },
      "V2AuthenticatorImport": {
        "type": "object",
        "required": [
          "shared_secret",
          "identity_secret",
          "revocation_code",
          "device_id"
        ],
        "properties": {
          "shared_secret": {
            "type": "string",
            "format": "byte",
            "writeOnly": true,
            "description": "Decoded Steam shared secret, base64-encoded for transport"
          },
          "identity_secret": {
            "type": "string",
            "format": "byte",
            "writeOnly": true,
            "description": "Decoded Steam identity secret, base64-encoded for transport"
          },
          "revocation_code": {
            "type": "string",
            "format": "byte",
            "writeOnly": true,
            "description": "UTF-8 revocation code bytes, base64-encoded for transport"
          },
          "device_id": {
            "type": "string",
            "format": "byte",
            "writeOnly": true,
            "description": "UTF-8 android device identifier bytes, base64-encoded for transport"
          }
        }
      },
      "V2TradeAsset": {
        "type": "object",
        "required": [
          "app_id",
          "context_id",
          "asset_id",
          "amount"
        ],
        "properties": {
          "app_id": {
            "type": "integer"
          },
          "context_id": {
            "type": "string"
          },
          "asset_id": {
            "type": "string"
          },
          "amount": {
            "type": "integer",
            "minimum": 1
          },
          "class_id": {
            "type": "string"
          },
          "instance_id": {
            "type": "string"
          },
          "new_context_id": {
            "type": "string"
          },
          "new_asset_id": {
            "type": "string"
          }
        }
      },
      "V2SteamTradeHistorySyncRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "cursor": {
            "type": "string",
            "description": "Opaque account-bound cursor returned by the previous history-sync command. Omit for the first page."
          }
        }
      },
      "V2SteamTradeHoldRequest": {
        "type": "object",
        "required": [
          "partner_steam_id64"
        ],
        "properties": {
          "partner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "trade_offer_token": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 128,
            "description": "Optional token from the partner trade URL; encrypted before the command is stored"
          }
        }
      },
      "V2SteamTradeHoldResult": {
        "type": "object",
        "required": [
          "partner_steam_id64",
          "both_escrow_seconds",
          "hold_days",
          "has_trade_hold",
          "scope",
          "observed_at"
        ],
        "properties": {
          "partner_steam_id64": {
            "type": "string"
          },
          "both_escrow_seconds": {
            "type": "integer",
            "format": "uint32",
            "minimum": 0
          },
          "hold_days": {
            "type": "integer",
            "format": "uint64",
            "minimum": 0,
            "description": "Combined escrow rounded up to whole days"
          },
          "has_trade_hold": {
            "type": "boolean"
          },
          "scope": {
            "type": "string",
            "const": "partner_escrow"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2UpdateSteamTradePolicy": {
        "type": "object",
        "required": [
          "enabled",
          "allow_outbound_gifts",
          "require_partner_allowlist",
          "allowed_partner_steam_ids",
          "max_offered_assets",
          "max_requested_assets",
          "max_offered_value_usd",
          "max_daily_trade_count",
          "max_daily_offered_value_usd"
        ],
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "allow_outbound_gifts": {
            "type": "boolean"
          },
          "require_partner_allowlist": {
            "type": "boolean"
          },
          "allowed_partner_steam_ids": {
            "type": "array",
            "maxItems": 250,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^7656119[0-9]{10}$"
            }
          },
          "max_offered_assets": {
            "type": "integer",
            "minimum": 1,
            "maximum": 255
          },
          "max_requested_assets": {
            "type": "integer",
            "minimum": 1,
            "maximum": 255
          },
          "max_offered_value_usd": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000,
            "description": "Server-enforced ceiling for the total OpenSkin-valued USD amount leaving the account. Must be greater than zero when enabled."
          },
          "max_daily_trade_count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000,
            "description": "Maximum newly authorized trade operations in any rolling 24-hour window."
          },
          "max_daily_offered_value_usd": {
            "type": "number",
            "minimum": 0.01,
            "maximum": 10000000,
            "description": "Maximum server-valued outgoing USD amount authorized in any rolling 24-hour window. Must be at least max_offered_value_usd."
          }
        }
      },
      "V2SteamTradePolicy": {
        "allOf": [
          {
            "$ref": "#/components/schemas/V2UpdateSteamTradePolicy"
          },
          {
            "type": "object",
            "required": [
              "account_id",
              "revision",
              "rolling_24_hours",
              "updated_at"
            ],
            "properties": {
              "account_id": {
                "type": "integer",
                "format": "int64"
              },
              "revision": {
                "type": "integer",
                "format": "int64",
                "minimum": 0,
                "description": "Monotonic per-account policy revision. Zero means the account has never had an explicit trade policy."
              },
              "rolling_24_hours": {
                "$ref": "#/components/schemas/V2SteamTradeBudgetUsage"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ]
      },
      "V2SteamTradeBudgetUsage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "authorized_trade_count",
          "offered_value_usd",
          "remaining_trade_count",
          "remaining_offered_value_usd",
          "observed_at"
        ],
        "properties": {
          "authorized_trade_count": {
            "type": "integer",
            "minimum": 0,
            "description": "Trade mutations authorized during the rolling 24-hour window, including outbound creation and incoming acceptance, regardless of later Steam state."
          },
          "offered_value_usd": {
            "type": "number",
            "minimum": 0,
            "description": "Server-owned outgoing reference value consumed during the rolling window."
          },
          "remaining_trade_count": {
            "type": "integer",
            "minimum": 0
          },
          "remaining_offered_value_usd": {
            "type": "number",
            "minimum": 0
          },
          "next_release_at": {
            "type": "string",
            "format": "date-time",
            "description": "When the oldest currently counted operation leaves the rolling window. Omitted when the window is empty."
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2CreateTradeRequest": {
        "type": "object",
        "required": [
          "account_id",
          "partner_steam_id64"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "partner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "trade_offer_token": {
            "type": "string",
            "writeOnly": true
          },
          "message": {
            "type": "string"
          },
          "offered": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          }
        }
      },
      "V2CreateTradeIntentRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "account_id",
          "external_reference",
          "expires_at"
        ],
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "create_offer",
              "accept_offer"
            ],
            "default": "create_offer",
            "description": "`create_offer` sends a customer-authored outbound offer. `accept_offer` binds an already synchronized incoming offer and does not accept customer-restated partner or asset fields."
          },
          "account_id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "external_reference": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
            "description": "Your order, deposit, withdrawal, or ledger identifier. OpenSkin stores it but does not use it to make price or credit decisions."
          },
          "target_trade_id": {
            "type": "string",
            "format": "uuid",
            "description": "Required only for `accept_offer`. This is the workspace-owned synchronized incoming trade operation to bind."
          },
          "partner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "message": {
            "type": "string",
            "maxLength": 128
          },
          "offered": {
            "type": "array",
            "maxItems": 255,
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "maxItems": 255,
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Customer-selected execution deadline from one minute to seven days after creation"
          }
        },
        "description": "For `create_offer`, `partner_steam_id64`, `offered`, and `requested` are required, at least one asset is required, and `target_trade_id` is forbidden. For `accept_offer`, `target_trade_id` is required and partner, message, offered, and requested must be omitted or empty. The customer owns the economic decision; OpenSkin validates and executes only the exact instruction or observed offer."
      },
      "V2PreviewTradeIntentRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "account_id"
        ],
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "create_offer",
              "accept_offer"
            ],
            "default": "create_offer"
          },
          "account_id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "target_trade_id": {
            "type": "string",
            "format": "uuid",
            "description": "Required only for `accept_offer`; partner and assets are read from this synchronized incoming offer."
          },
          "partner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "message": {
            "type": "string",
            "maxLength": 128
          },
          "offered": {
            "type": "array",
            "maxItems": 255,
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "maxItems": 255,
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          }
        },
        "description": "`create_offer` requires an exact partner and asset sets. `accept_offer` requires only `account_id` and `target_trade_id`, and forbids customer-restated offer details. Customer price, credit, and profit calculations are intentionally not accepted by this execution-safety boundary."
      },
      "V2TradeIntentPreview": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "would_authorize",
          "decision_code",
          "kind",
          "account_id",
          "partner_steam_id64",
          "offered",
          "requested",
          "policy_revision",
          "evaluated_at"
        ],
        "properties": {
          "would_authorize": {
            "type": "boolean"
          },
          "decision_code": {
            "type": "string",
            "enum": [
              "would_authorize",
              "trade_policy_denied",
              "asset_authorization_denied",
              "authorization_unavailable",
              "rolling_trade_count_exceeded",
              "rolling_offered_value_exceeded",
              "account_mutation_blocked",
              "incoming_offer_unavailable"
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "create_offer",
              "accept_offer"
            ]
          },
          "account_id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "target_trade_id": {
            "type": "string",
            "format": "uuid"
          },
          "partner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "offered": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "policy_revision": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "offered_value_usd": {
            "type": "number",
            "minimum": 0,
            "description": "Server-owned safety valuation, not the customer's price or credit amount."
          },
          "authorization_observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "inventory_valid_until": {
            "type": "string",
            "format": "date-time",
            "description": "Freshness boundary of the inventory evidence used by this preview. Execution may invalidate it sooner if Steam state changes."
          },
          "authorization_projection": {
            "$ref": "#/components/schemas/V2TradeAuthorizationReceipt",
            "description": "Shows the policy and rolling-budget checks evaluated during preview. The execute endpoint evaluates these checks again using the current account and trade state."
          },
          "evaluated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Validation result for customer strategy code. A true result is not a reservation or guarantee; OpenSkin checks again before every Steam action."
      },
      "V2TradeIntentPreviewResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2TradeIntentPreview"
          }
        }
      },
      "V2ExecuteTradeIntentRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "trade_offer_token": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 128,
            "description": "Optional only for `create_offer`. It is encrypted inside the execution command and never returned in the intent or execution response. It is rejected for `accept_offer`."
          }
        }
      },
      "V2TradeIntent": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "kind",
          "account_id",
          "external_reference",
          "instruction_sha256",
          "partner_steam_id64",
          "state",
          "state_version",
          "offered",
          "requested",
          "expires_at",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "kind": {
            "type": "string",
            "enum": [
              "create_offer",
              "accept_offer"
            ]
          },
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "external_reference": {
            "type": "string"
          },
          "instruction_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "SHA-256 of the saved customer instruction. Store it with external_reference to identify the instruction that OpenSkin later executed."
          },
          "partner_steam_id64": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "draft",
              "executing",
              "active",
              "accepted_unreconciled",
              "settled",
              "failed",
              "canceled",
              "expired"
            ]
          },
          "state_version": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Monotonic per-intent state version. Commit a webhook only when its state_version is newer than the version already stored for this intent."
          },
          "offered_value_usd": {
            "type": "number",
            "minimum": 0,
            "description": "OpenSkin-owned valuation used only for the customer's configured safety ceiling; it is not a customer credit or sale price."
          },
          "authorized_at": {
            "type": "string",
            "format": "date-time"
          },
          "trade_id": {
            "type": "string",
            "format": "uuid"
          },
          "target_trade_id": {
            "type": "string",
            "format": "uuid",
            "description": "The exact synchronized incoming operation bound by an `accept_offer` intent."
          },
          "execution_command_id": {
            "type": "string",
            "format": "uuid",
            "description": "The exact durable command produced by execution. For incoming offers this differs from the command that originally synchronized the trade."
          },
          "offered": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "executed_at": {
            "type": "string",
            "format": "date-time"
          },
          "settled_at": {
            "type": "string",
            "format": "date-time"
          },
          "failure": {
            "$ref": "#/components/schemas/V2OperationFailure",
            "description": "Final failure details. Present only when state is failed."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2TradeIntentResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2TradeIntent"
          }
        }
      },
      "V2TradeIntentPage": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "intents",
          "count"
        ],
        "properties": {
          "intents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeIntent"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 200
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2TradeIntentPageResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2TradeIntentPage"
          }
        }
      },
      "V2TradeIntentExecution": {
        "type": "object",
        "required": [
          "intent",
          "trade",
          "command"
        ],
        "properties": {
          "intent": {
            "$ref": "#/components/schemas/V2TradeIntent"
          },
          "trade": {
            "$ref": "#/components/schemas/V2TradeOperation"
          },
          "command": {
            "$ref": "#/components/schemas/V2CommandReceipt"
          }
        }
      },
      "V2TradeIntentExecutionResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2TradeIntentExecution"
          }
        }
      },
      "V2TradeOperation": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "account_id",
          "partner_steam_id64",
          "direction",
          "state",
          "state_version",
          "offered",
          "requested",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "partner_steam_id64": {
            "type": "string"
          },
          "external_offer_id": {
            "type": "string"
          },
          "steam_trade_id": {
            "type": "string",
            "description": "Valve exchange ID, distinct from the offer ID."
          },
          "direction": {
            "type": "string",
            "enum": [
              "outbound",
              "incoming"
            ]
          },
          "state": {
            "type": "string"
          },
          "state_version": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Monotonic per-trade ordering key. Commit an API or webhook state only when its version is newer than the version already stored for this trade."
          },
          "steam_state_code": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "steam_created_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_seen_at": {
            "type": "string",
            "format": "date-time"
          },
          "exchange_status": {
            "type": "string"
          },
          "exchange_status_code": {
            "type": "integer",
            "minimum": 0
          },
          "exchange_observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "exchange_completed_at": {
            "type": "string",
            "format": "date-time",
            "description": "Set only after exact partner and asset-set reconciliation against Valve trade history."
          },
          "offered_value_usd": {
            "type": "number",
            "minimum": 0,
            "description": "Value authorized from a recent server-fetched inventory and OpenSkin-owned price data"
          },
          "authorized_at": {
            "type": "string",
            "format": "date-time"
          },
          "authorization_policy_revision": {
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "description": "Trade-policy revision that authorized this Steam action. Omitted for synchronized offers that OpenSkin has not executed."
          },
          "authorization_receipt": {
            "$ref": "#/components/schemas/V2TradeAuthorizationReceipt"
          },
          "offered": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "requested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeAsset"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2TradeAuthorizationReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "schema_version",
          "policy_revision",
          "policy_enabled",
          "allow_outbound_gifts",
          "require_partner_allowlist",
          "partner_allowlisted",
          "max_offered_assets",
          "max_requested_assets",
          "max_offered_value_usd",
          "max_rolling_24h_trade_count",
          "max_rolling_24h_offered_value_usd",
          "rolling_trade_count_before",
          "rolling_offered_value_usd_before",
          "rolling_trade_count_after",
          "rolling_offered_value_usd_after",
          "offered_asset_count",
          "requested_asset_count",
          "evaluated_at"
        ],
        "properties": {
          "schema_version": {
            "type": "integer",
            "const": 1
          },
          "policy_revision": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "policy_enabled": {
            "type": "boolean",
            "const": true
          },
          "allow_outbound_gifts": {
            "type": "boolean"
          },
          "require_partner_allowlist": {
            "type": "boolean"
          },
          "partner_allowlisted": {
            "type": "boolean",
            "description": "Whether the exact trade partner was present in the policy allowlist when OpenSkin authorized execution."
          },
          "max_offered_assets": {
            "type": "integer",
            "minimum": 1,
            "maximum": 255
          },
          "max_requested_assets": {
            "type": "integer",
            "minimum": 1,
            "maximum": 255
          },
          "max_offered_value_usd": {
            "type": "number",
            "minimum": 0
          },
          "max_rolling_24h_trade_count": {
            "type": "integer",
            "minimum": 1
          },
          "max_rolling_24h_offered_value_usd": {
            "type": "number",
            "minimum": 0.01
          },
          "rolling_trade_count_before": {
            "type": "integer",
            "minimum": 0
          },
          "rolling_offered_value_usd_before": {
            "type": "number",
            "minimum": 0
          },
          "rolling_trade_count_after": {
            "type": "integer",
            "minimum": 1
          },
          "rolling_offered_value_usd_after": {
            "type": "number",
            "minimum": 0
          },
          "offered_asset_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 255
          },
          "requested_asset_count": {
            "type": "integer",
            "minimum": 0,
            "maximum": 255
          },
          "evaluated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Record of the trade policy and rolling budget checks applied before execution. It does not indicate whether the trade was financially desirable."
      },
      "V2TradePage": {
        "type": "object",
        "required": [
          "trades",
          "count"
        ],
        "properties": {
          "trades": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2TradeOperation"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "next_cursor": {
            "type": "string",
            "description": "Opaque query-bound cursor; omitted on the final page."
          }
        }
      },
      "V2ItemInstance": {
        "type": "object",
        "required": [
          "definition_index",
          "stickers",
          "keychains",
          "variations"
        ],
        "properties": {
          "item_id": {
            "type": "integer",
            "format": "uint64"
          },
          "definition_index": {
            "type": "integer",
            "minimum": 1
          },
          "paint_index": {
            "type": "integer"
          },
          "paint_seed": {
            "type": "integer"
          },
          "wear": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "stattrak_value": {
            "type": "integer"
          },
          "name_tag": {
            "type": "string"
          },
          "stickers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "keychains": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "variations": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "V2InspectAssetPage": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2InspectAssetRecord"
            }
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2InspectAssetRecord": {
        "type": "object",
        "required": [
          "account_id",
          "steam_id64",
          "asset_id",
          "class_id",
          "instance_id",
          "market_hash_name",
          "tradable",
          "marketable",
          "inspect_link",
          "instance",
          "source",
          "observed_at"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64"
          },
          "steam_id64": {
            "type": "string"
          },
          "asset_id": {
            "type": "string"
          },
          "class_id": {
            "type": "string"
          },
          "instance_id": {
            "type": "string"
          },
          "market_hash_name": {
            "type": "string"
          },
          "tradable": {
            "type": "boolean"
          },
          "marketable": {
            "type": "boolean"
          },
          "inspect_link": {
            "type": "string"
          },
          "instance": {
            "$ref": "#/components/schemas/V2ItemInstance"
          },
          "source": {
            "type": "string",
            "const": "steam-econ-authenticated"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2PublicInspectAssetPage": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2PublicInspectAssetRecord"
            }
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "V2PublicInspectAssetRecord": {
        "type": "object",
        "required": [
          "record_key",
          "asset_id",
          "instance",
          "source",
          "visibility",
          "observed_at"
        ],
        "properties": {
          "record_key": {
            "type": "string"
          },
          "owner_steam_id64": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "market_listing_id": {
            "type": "string"
          },
          "asset_id": {
            "type": "string"
          },
          "instance": {
            "$ref": "#/components/schemas/V2ItemInstance"
          },
          "source": {
            "type": "string",
            "enum": [
              "steam-game-coordinator",
              "steam-market-listing"
            ]
          },
          "visibility": {
            "type": "string",
            "const": "public"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "oneOf": [
          {
            "required": [
              "owner_steam_id64"
            ],
            "not": {
              "required": [
                "market_listing_id"
              ]
            }
          },
          {
            "required": [
              "market_listing_id"
            ],
            "not": {
              "required": [
                "owner_steam_id64"
              ]
            }
          }
        ]
      },
      "V2InventoryCatalogItem": {
        "type": "object",
        "required": [
          "market_hash_name",
          "stattrak",
          "souvenir",
          "catalog_matched"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "market_hash_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "weapon": {
            "type": "string"
          },
          "skin": {
            "type": "string"
          },
          "exterior": {
            "type": "string"
          },
          "rarity": {
            "type": "string"
          },
          "stattrak": {
            "type": "boolean"
          },
          "souvenir": {
            "type": "boolean"
          },
          "phase": {
            "type": "string"
          },
          "definition_id": {
            "type": "integer",
            "minimum": 0
          },
          "paint_index": {
            "type": "integer",
            "minimum": 0
          },
          "catalog_matched": {
            "type": "boolean"
          },
          "render": {
            "$ref": "#/components/schemas/V2CatalogRenderContract",
            "description": "The same exact renderer contract returned by catalog and pricing endpoints. Omitted when no alias exists."
          }
        }
      },
      "V2InventorySnapshot": {
        "type": "object",
        "required": [
          "steam_id",
          "app_id",
          "context_id",
          "observed_at",
          "source",
          "cache",
          "assets",
          "count",
          "quantity",
          "valuation"
        ],
        "properties": {
          "steam_id": {
            "type": "string"
          },
          "app_id": {
            "type": "integer",
            "const": 730
          },
          "context_id": {
            "type": "string",
            "const": "2"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          },
          "cache": {
            "type": "object",
            "required": [
              "status",
              "stale"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "miss",
                  "hit",
                  "stored",
                  "stale"
                ]
              },
              "stale": {
                "type": "boolean"
              }
            }
          },
          "assets": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "asset_id",
                "class_id",
                "instance_id",
                "quantity",
                "item",
                "prices"
              ],
              "properties": {
                "asset_id": {
                  "type": "string"
                },
                "class_id": {
                  "type": "string"
                },
                "instance_id": {
                  "type": "string"
                },
                "quantity": {
                  "type": "integer"
                },
                "item": {
                  "$ref": "#/components/schemas/V2InventoryCatalogItem"
                },
                "prices": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "inspect": {
                  "type": "object"
                }
              }
            }
          },
          "count": {
            "type": "integer"
          },
          "quantity": {
            "type": "integer"
          },
          "valuation": {
            "type": "object"
          }
        }
      },
      "V2InventorySnapshotChange": {
        "type": "object",
        "required": [
          "previous_snapshot_id",
          "added_assets",
          "removed_assets",
          "changed_assets",
          "quantity_delta"
        ],
        "properties": {
          "previous_snapshot_id": {
            "type": "string",
            "format": "uuid"
          },
          "added_assets": {
            "type": "integer",
            "minimum": 0
          },
          "removed_assets": {
            "type": "integer",
            "minimum": 0
          },
          "changed_assets": {
            "type": "integer",
            "minimum": 0
          },
          "quantity_delta": {
            "type": "integer"
          }
        }
      },
      "V2InventoryHistoryEntry": {
        "type": "object",
        "required": [
          "id",
          "steam_id",
          "source",
          "observed_at",
          "created_at",
          "payload_sha256",
          "asset_count",
          "quantity"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "steam_id": {
            "type": "string",
            "pattern": "^7656119[0-9]{10}$"
          },
          "source": {
            "type": "string",
            "const": "steam-econ-authenticated"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "payload_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "asset_count": {
            "type": "integer",
            "minimum": 0
          },
          "quantity": {
            "type": "integer",
            "minimum": 0
          },
          "change": {
            "$ref": "#/components/schemas/V2InventorySnapshotChange"
          }
        }
      },
      "V2InventoryHistoryPage": {
        "type": "object",
        "required": [
          "snapshots",
          "count"
        ],
        "properties": {
          "snapshots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2InventoryHistoryEntry"
            }
          },
          "count": {
            "type": "integer",
            "minimum": 0
          },
          "next_cursor": {
            "type": "string"
          }
        }
      },
      "SpreadMetric": {
        "type": "object",
        "properties": {
          "absolute": {
            "type": "number",
            "description": "Absolute spread in USD",
            "example": 0.27
          },
          "percent": {
            "type": "number",
            "description": "Spread as a percentage of bid",
            "example": 2.22
          }
        }
      },
      "SlippageMetric": {
        "type": "object",
        "description": "Cost of an immediate market sell: (median - bid) / median * 100",
        "properties": {
          "absolute": {
            "type": "number",
            "description": "Slippage in USD",
            "example": 0.13
          },
          "percent": {
            "type": "number",
            "description": "Slippage as a percentage of median",
            "example": 1.06
          }
        }
      },
      "PremiumMetric": {
        "type": "object",
        "description": "Skinport listing premium vs suggested price: (ask - suggested) / suggested * 100. Negative means the item is listed below suggested.",
        "properties": {
          "absolute": {
            "type": "number",
            "description": "Premium in USD (negative = discount)",
            "example": -0.15
          },
          "percent": {
            "type": "number",
            "description": "Premium as a percentage of suggested price (negative = discount)",
            "example": -1.32
          }
        }
      },
      "VolatilityWindows": {
        "type": "object",
        "description": "Population std dev of daily log returns * 100, at multiple trailing windows.",
        "properties": {
          "1d": {
            "type": "number",
            "description": "Absolute magnitude of the most recent single-day log return"
          },
          "7d": {
            "type": "number",
            "description": "Std dev over trailing 7 days"
          },
          "30d": {
            "type": "number",
            "description": "Std dev over trailing 30 days"
          },
          "90d": {
            "type": "number",
            "description": "Std dev over trailing 90 days"
          },
          "all": {
            "type": "number",
            "description": "Std dev over all available history"
          }
        }
      },
      "SteamMetrics": {
        "type": "object",
        "properties": {
          "spread": {
            "$ref": "#/components/schemas/SpreadMetric"
          },
          "slippage": {
            "$ref": "#/components/schemas/SlippageMetric"
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "0-100 Amivest liquidity score derived from 90 days of price history",
            "example": 84
          },
          "volatility": {
            "$ref": "#/components/schemas/VolatilityWindows"
          }
        }
      },
      "SkinportMetrics": {
        "type": "object",
        "properties": {
          "premium": {
            "$ref": "#/components/schemas/PremiumMetric"
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "0-100 Amivest liquidity score derived from 90 days of price history",
            "example": 61
          },
          "volatility": {
            "$ref": "#/components/schemas/VolatilityWindows"
          }
        }
      },
      "SteamPrices": {
        "type": "object",
        "properties": {
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active buy order (USD)"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest active sell listing (USD)"
          },
          "median": {
            "type": [
              "number",
              "null"
            ],
            "description": "Median sale price in last 24h (USD)"
          },
          "volume_24h": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Units sold in last 24h"
          },
          "buy_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active buy orders"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active sell listings"
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "0-100 Amivest liquidity score derived from 90 days of price history (only in /v1/prices/all and /v1/prices/batch, not /v1/prices/steam or /v1/prices, where it lives under metrics.steam instead)"
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When Steam's data for this item was last refreshed (only in /v1/prices, /prices/batch, /prices/all)"
          }
        }
      },
      "SkinportPrices": {
        "type": "object",
        "properties": {
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest ask price (USD)"
          },
          "ask_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of listings at or near lowest ask"
          },
          "mean": {
            "type": [
              "number",
              "null"
            ],
            "description": "Mean listing price (USD)"
          },
          "median": {
            "type": [
              "number",
              "null"
            ],
            "description": "Median listing price (USD)"
          },
          "max_ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest listing price (USD)"
          },
          "suggested_price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Skinport's suggested price (USD)"
          },
          "patterns": {
            "type": [
              "array",
              "null"
            ],
            "description": "Every priced Doppler phase for this item (batch and /prices/all only)",
            "items": {
              "$ref": "#/components/schemas/SkinportPhaseEntry"
            }
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ],
            "description": "0-100 Amivest liquidity score derived from 90 days of price history (only in /v1/prices/all and /v1/prices/batch, not /v1/prices/skinport or /v1/prices, where it lives under metrics.skinport instead)"
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When Skinport's data for this item was last refreshed (only in /v1/prices, /prices/batch, /prices/all)"
          }
        }
      },
      "CSFloatPrices": {
        "type": "object",
        "properties": {
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest listed price for the requested pattern, else the untiered price (USD)"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active listings"
          },
          "highest_bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active generic buy order (USD); null when no buy orders exist"
          },
          "bid_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total quantity across all active buy orders; null when no buy orders exist"
          },
          "paint_seed": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Paint seed for a Case Hardened pattern; null otherwise (batch and /prices/all only)"
          },
          "base_price": {
            "type": [
              "number",
              "null"
            ],
            "description": "Plain untiered price, always present as a fallback (batch and /prices/all only)"
          },
          "patterns": {
            "type": [
              "array",
              "null"
            ],
            "description": "Every priced Doppler phase and Case Hardened tier for this item (batch and /prices/all only)",
            "items": {
              "$ref": "#/components/schemas/CSFloatPatternEntry"
            }
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When CSFloat's data for this item was last refreshed (only in /v1/prices, /prices/batch, /prices/all)"
          }
        }
      },
      "CSFloatPriceResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "marketplace": {
            "type": "string",
            "example": "csfloat"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest listed price (USD)"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active listings"
          },
          "highest_bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active generic buy order (USD); null when no buy orders exist"
          },
          "bid_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total quantity across all active buy orders; null when no buy orders exist"
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CSFloatPhaseEntry": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "Pattern name (e.g. Phase 1, Ruby, Sapphire, Black Pearl, Emerald)"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest listed price for this pattern (USD)"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active listings for this pattern"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CSFloatPhasesResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "patterns": {
            "type": "array",
            "description": "Pattern entries ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald",
            "items": {
              "$ref": "#/components/schemas/CSFloatPhaseEntry"
            }
          }
        }
      },
      "CSFloatPatternEntry": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "Pattern name: Doppler phase (e.g. Ruby) or Case Hardened tier (e.g. Tier 1 #661)"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest listed price for this pattern (USD)"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active listings for this pattern"
          },
          "paint_seed": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Paint seed for Case Hardened tiers; null otherwise"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CSFloatPatternsResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "patterns": {
            "type": "array",
            "description": "Case Hardened pattern entries, highest-value tiers first",
            "items": {
              "$ref": "#/components/schemas/CSFloatPatternEntry"
            }
          }
        }
      },
      "SkinportPhaseEntry": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "Pattern name"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest ask for this pattern (USD)"
          },
          "ask_volume": {
            "type": [
              "integer",
              "null"
            ]
          },
          "mean": {
            "type": [
              "number",
              "null"
            ]
          },
          "median": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_ask": {
            "type": [
              "number",
              "null"
            ]
          },
          "suggested_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SkinportPhasesResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "patterns": {
            "type": "array",
            "description": "Pattern entries ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald",
            "items": {
              "$ref": "#/components/schemas/SkinportPhaseEntry"
            }
          }
        }
      },
      "NativeCurrencyQuote": {
        "type": [
          "object",
          "null"
        ],
        "description": "The marketplace's original quote before conversion to USD. Native values are not rounded; converted USD values are stored to two decimal places.",
        "properties": {
          "code": {
            "type": "string",
            "description": "ISO 4217 currency code",
            "example": "CNY"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "example": 74.3
          },
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "example": 73.15
          }
        }
      },
      "BuffYoupinPrices": {
        "type": "object",
        "properties": {
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest ask price (USD, converted from CNY)"
          },
          "ask_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of active sell listings"
          },
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active buy order (USD, converted from CNY)"
          },
          "bid_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of active buy orders"
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "native_currency": {
            "$ref": "#/components/schemas/NativeCurrencyQuote"
          },
          "patterns": {
            "type": [
              "array",
              "null"
            ],
            "description": "Every priced Doppler phase for this item (Buff163 in /v1/prices, /v1/prices/batch, and /v1/prices/all)",
            "items": {
              "$ref": "#/components/schemas/BuffPhaseEntry"
            }
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When this marketplace's data for this item was last refreshed (only in /v1/prices, /prices/batch, /prices/all)"
          }
        }
      },
      "BuffYoupinPriceResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "marketplace": {
            "type": "string",
            "example": "buff"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest ask price (USD)"
          },
          "ask_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of active sell listings"
          },
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active buy order (USD)"
          },
          "bid_volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Number of active buy orders"
          },
          "currency": {
            "type": "string",
            "example": "USD"
          },
          "native_currency": {
            "$ref": "#/components/schemas/NativeCurrencyQuote"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BuffPhaseEntry": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "example": "Ruby",
            "description": "Phase name"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest ask for this phase (USD)"
          },
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active buy order for this phase (USD)"
          },
          "currency": {
            "type": "string",
            "example": "USD",
            "description": "Currency of ask and bid"
          },
          "native_currency": {
            "$ref": "#/components/schemas/NativeCurrencyQuote"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "BuffPhasesResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "patterns": {
            "type": "array",
            "description": "Phase entries ordered Phase 1-4 then Ruby, Sapphire, Black Pearl, Emerald",
            "items": {
              "$ref": "#/components/schemas/BuffPhaseEntry"
            }
          }
        }
      },
      "LowestAsk": {
        "type": "object",
        "properties": {
          "marketplace": {
            "type": "string",
            "example": "skinport"
          },
          "price": {
            "type": "number",
            "example": 11.2
          }
        }
      },
      "MarketplaceLinks": {
        "type": "object",
        "description": "Direct listing/search URLs for the item on each marketplace",
        "properties": {
          "steam": {
            "type": [
              "string",
              "null"
            ]
          },
          "skinport": {
            "type": [
              "string",
              "null"
            ]
          },
          "buff": {
            "type": [
              "string",
              "null"
            ]
          },
          "youpin": {
            "type": [
              "string",
              "null"
            ]
          },
          "csfloat": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "PriceResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "icon_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Steam CDN image URL for this item"
          },
          "prices": {
            "type": "object",
            "properties": {
              "steam": {
                "$ref": "#/components/schemas/SteamPrices"
              },
              "skinport": {
                "$ref": "#/components/schemas/SkinportPrices"
              },
              "buff": {
                "$ref": "#/components/schemas/BuffYoupinPrices"
              },
              "youpin": {
                "$ref": "#/components/schemas/BuffYoupinPrices"
              },
              "csfloat": {
                "$ref": "#/components/schemas/CSFloatPrices"
              }
            }
          },
          "lowest_ask": {
            "$ref": "#/components/schemas/LowestAsk"
          },
          "metrics": {
            "type": "object",
            "properties": {
              "steam": {
                "$ref": "#/components/schemas/SteamMetrics"
              },
              "skinport": {
                "$ref": "#/components/schemas/SkinportMetrics"
              }
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SteamPriceResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string"
          },
          "marketplace": {
            "type": "string",
            "example": "steam"
          },
          "bid": {
            "type": [
              "number",
              "null"
            ]
          },
          "ask": {
            "type": [
              "number",
              "null"
            ]
          },
          "median": {
            "type": [
              "number",
              "null"
            ]
          },
          "volume_24h": {
            "type": [
              "integer",
              "null"
            ]
          },
          "buy_order_count": {
            "type": [
              "integer",
              "null"
            ]
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ]
          },
          "spread": {
            "$ref": "#/components/schemas/SpreadMetric"
          },
          "slippage": {
            "$ref": "#/components/schemas/SlippageMetric"
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ]
          },
          "volatility": {
            "$ref": "#/components/schemas/VolatilityWindows"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SkinportPriceResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string"
          },
          "marketplace": {
            "type": "string",
            "example": "skinport"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ]
          },
          "ask_volume": {
            "type": [
              "integer",
              "null"
            ]
          },
          "mean": {
            "type": [
              "number",
              "null"
            ]
          },
          "median": {
            "type": [
              "number",
              "null"
            ]
          },
          "max_ask": {
            "type": [
              "number",
              "null"
            ]
          },
          "suggested_price": {
            "type": [
              "number",
              "null"
            ]
          },
          "premium": {
            "$ref": "#/components/schemas/PremiumMetric"
          },
          "liquidity_score": {
            "type": [
              "integer",
              "null"
            ]
          },
          "volatility": {
            "$ref": "#/components/schemas/VolatilityWindows"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DepthLevel": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "description": "Price level in USD"
          },
          "quantity": {
            "type": "integer",
            "description": "Number of orders at this price level"
          }
        }
      },
      "OrderbookResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name"
          },
          "marketplace": {
            "type": "string",
            "example": "steam"
          },
          "bid": {
            "type": [
              "number",
              "null"
            ],
            "description": "Highest active buy order (USD)"
          },
          "ask": {
            "type": [
              "number",
              "null"
            ],
            "description": "Lowest active sell listing (USD)"
          },
          "spread": {
            "$ref": "#/components/schemas/SpreadMetric"
          },
          "buy_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active buy orders"
          },
          "sell_order_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Total active sell listings"
          },
          "slippage": {
            "$ref": "#/components/schemas/SlippageMetric"
          },
          "bid_depth": {
            "type": "array",
            "description": "Buy-side depth levels, sorted highest price first",
            "items": {
              "$ref": "#/components/schemas/DepthLevel"
            }
          },
          "ask_depth": {
            "type": "array",
            "description": "Sell-side depth levels, sorted lowest price first",
            "items": {
              "$ref": "#/components/schemas/DepthLevel"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BatchRequest": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "maxItems": 500,
            "description": "Array of items (max 500). Each entry is either a bare market_hash_name string, or an object { item, pattern } to request a specific Doppler phase or Case Hardened tier per item.",
            "items": {
              "oneOf": [
                {
                  "type": "string",
                  "description": "market_hash_name"
                },
                {
                  "type": "object",
                  "required": [
                    "item"
                  ],
                  "properties": {
                    "item": {
                      "type": "string",
                      "description": "market_hash_name"
                    },
                    "pattern": {
                      "type": "string",
                      "description": "Doppler phase or Case Hardened tier (e.g. Ruby, Tier 1 #661)"
                    }
                  }
                }
              ]
            }
          },
          "pattern": {
            "type": "string",
            "description": "Batch-wide default pattern applied to any item that doesn't set its own. A per-item pattern always wins."
          }
        }
      },
      "BatchItemResult": {
        "type": "object",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "Echoes the resolved pattern applied to this item (per-item pattern, else batch default, else empty)"
          },
          "icon_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Steam CDN image URL for this item"
          },
          "steam": {
            "$ref": "#/components/schemas/SteamPrices"
          },
          "skinport": {
            "$ref": "#/components/schemas/SkinportPrices"
          },
          "buff": {
            "$ref": "#/components/schemas/BuffYoupinPrices"
          },
          "youpin": {
            "$ref": "#/components/schemas/BuffYoupinPrices"
          },
          "csfloat": {
            "$ref": "#/components/schemas/CSFloatPrices"
          },
          "links": {
            "$ref": "#/components/schemas/MarketplaceLinks"
          },
          "lowest_ask": {
            "$ref": "#/components/schemas/LowestAsk"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BatchResultEntry": {
        "type": "object",
        "description": "One result per request, in request order. Unlike the data map, the same item requested at multiple patterns yields multiple entries here.",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "item": {
                "type": "string",
                "description": "market_hash_name"
              }
            }
          },
          {
            "$ref": "#/components/schemas/BatchItemResult"
          }
        ]
      },
      "BatchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Map of market_hash_name to price data. A duplicate name overwrites; use results for per-request entries.",
            "additionalProperties": {
              "$ref": "#/components/schemas/BatchItemResult"
            }
          },
          "results": {
            "type": "array",
            "description": "One entry per requested item, in request order",
            "items": {
              "$ref": "#/components/schemas/BatchResultEntry"
            }
          },
          "count": {
            "type": "integer",
            "description": "Number of distinct items in data"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BulkPricesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Map of market_hash_name to price data for every tracked item. Same per-item shape as BatchItemResult, minus the pattern field (not applicable outside a batch request).",
            "additionalProperties": {
              "$ref": "#/components/schemas/BatchItemResult"
            }
          },
          "count": {
            "type": "integer",
            "description": "Number of items in data"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "HistoryRequest": {
        "type": "object",
        "required": [
          "item",
          "marketplace"
        ],
        "properties": {
          "item": {
            "type": "string",
            "description": "market_hash_name of the item"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ],
            "description": "Marketplace to query history for"
          },
          "interval": {
            "type": "string",
            "enum": [
              "10min",
              "hourly",
              "daily"
            ],
            "default": "daily",
            "description": "Time bucket granularity. Steam supports daily and hourly, but not 10min. Steam hourly points use volume when genuine hourly volume is available and may use volume_24h for older points that have not been backfilled. Skinport supports 10min, hourly, and daily. Buff163 and YouPin are stored at hourly granularity."
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Start date (YYYY-MM-DD), inclusive"
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "End date (YYYY-MM-DD), inclusive"
          }
        }
      },
      "HistoryPoint": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Bucket timestamp (UTC)"
          },
          "price": {
            "type": "number",
            "description": "Price at this time bucket (USD)"
          },
          "volume": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Units traded in this bucket (null for non-Steam marketplaces)"
          },
          "volume_24h": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Steam rolling 24-hour volume on hourly points where genuine per-hour volume has not been backfilled"
          }
        }
      },
      "HistoryResponse": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string"
          },
          "marketplace": {
            "type": "string"
          },
          "interval": {
            "type": "string"
          },
          "from": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "to": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoryPoint"
            }
          }
        }
      },
      "HistoryBatchRequest": {
        "type": "object",
        "required": [
          "items",
          "marketplace"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 500,
            "description": "List of market_hash_name to fetch history for, sharing the same marketplace/interval/date range/pattern"
          },
          "marketplace": {
            "type": "string",
            "enum": [
              "steam",
              "skinport",
              "buff",
              "youpin",
              "csfloat"
            ],
            "description": "Marketplace to query history for"
          },
          "interval": {
            "type": "string",
            "enum": [
              "10min",
              "hourly",
              "daily"
            ],
            "default": "daily",
            "description": "Time bucket granularity, shared by every item in the batch"
          },
          "from": {
            "type": "string",
            "format": "date",
            "description": "Start date (YYYY-MM-DD), inclusive. Defaults to the last 90 days on /v1/history/batch; pass an earlier date to request older data."
          },
          "to": {
            "type": "string",
            "format": "date",
            "description": "End date (YYYY-MM-DD), inclusive"
          },
          "pattern": {
            "type": "string",
            "description": "Doppler phase or Case Hardened tier, shared by every item in the batch"
          }
        }
      },
      "HistoryBatchResponse": {
        "type": "object",
        "properties": {
          "marketplace": {
            "type": "string"
          },
          "interval": {
            "type": "string"
          },
          "from": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "to": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "data": {
            "type": "object",
            "description": "Keyed by requested item name; each value is the same array shape as HistoryResponse.data (empty array, not omitted, for items with no history)",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/HistoryPoint"
              }
            }
          },
          "count": {
            "type": "integer",
            "description": "Number of items in data"
          }
        }
      },
      "ItemsResponse": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "description": "Total number of matching items"
          },
          "page": {
            "type": "integer"
          },
          "limit": {
            "type": "integer"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Steam market_hash_name"
                },
                "type": {
                  "type": "string"
                },
                "weapon": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "skin": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "exterior": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "rarity": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pattern": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Doppler phase (e.g. Phase 1, Ruby), if applicable"
                },
                "is_stattrak": {
                  "type": "boolean"
                },
                "is_souvenir": {
                  "type": "boolean"
                },
                "icon_url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Steam CDN image URL"
                }
              }
            }
          }
        }
      },
      "HealthSourceStatus": {
        "type": "object",
        "properties": {
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "up",
              "degraded"
            ]
          }
        }
      },
      "HealthResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "up",
              "degraded"
            ]
          },
          "sources": {
            "type": "object",
            "properties": {
              "steam": {
                "$ref": "#/components/schemas/HealthSourceStatus"
              },
              "skinport": {
                "$ref": "#/components/schemas/HealthSourceStatus"
              },
              "buff": {
                "$ref": "#/components/schemas/HealthSourceStatus"
              },
              "youpin": {
                "$ref": "#/components/schemas/HealthSourceStatus"
              },
              "csfloat": {
                "$ref": "#/components/schemas/HealthSourceStatus"
              }
            }
          },
          "stats": {
            "type": "object",
            "properties": {
              "items": {
                "type": "integer",
                "description": "Total items in catalog"
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          }
        }
      },
      "V2GetHealthResponse": {
        "type": "object",
        "required": [
          "status",
          "api_version",
          "contract_version",
          "environment"
        ],
        "properties": {
          "status": {
            "type": "string",
            "const": "ok"
          },
          "api_version": {
            "type": "string",
            "const": "v2"
          },
          "contract_version": {
            "type": "string"
          },
          "environment": {
            "type": "string",
            "enum": [
              "production",
              "v2-test"
            ]
          }
        }
      },
      "V2OperationalStatusResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2OperationalStatus"
          }
        }
      },
      "V2OperationalStatus": {
        "type": "object",
        "required": [
          "status",
          "checked_at",
          "components",
          "component_status"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "operational",
              "degraded",
              "outage"
            ]
          },
          "checked_at": {
            "type": "string",
            "format": "date-time"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2OperationalStatusComponent"
            }
          },
          "component_status": {
            "type": "object",
            "description": "Monitor-safe component status lookup keyed by component name. This mirrors components without requiring callers to depend on array order.",
            "additionalProperties": {
              "type": "string",
              "enum": [
                "operational",
                "degraded",
                "unavailable"
              ]
            }
          }
        }
      },
      "V2OperationalStatusComponent": {
        "type": "object",
        "required": [
          "name",
          "status",
          "advisory",
          "observed_at"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "data",
              "cache",
              "media",
              "market_index",
              "webhooks",
              "steam_automation",
              "inspect_data",
              "inventory_data",
              "audit_exports"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "operational",
              "degraded",
              "unavailable"
            ]
          },
          "reason": {
            "type": "string",
            "description": "Stable, non-sensitive reason code; omitted while operational."
          },
          "advisory": {
            "type": "boolean",
            "description": "True when the component is visible for diagnostics but does not lower the aggregate platform status."
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "V2ListCapabilitiesResponse": {
        "type": "object",
        "required": [
          "api_version",
          "capabilities"
        ],
        "properties": {
          "api_version": {
            "type": "string",
            "const": "v2"
          },
          "capabilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2Capability"
            }
          }
        }
      },
      "V2ListScopesResponse": {
        "type": "object",
        "required": [
          "api_version",
          "scopes"
        ],
        "properties": {
          "api_version": {
            "type": "string",
            "const": "v2"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "uniqueItems": true
          }
        }
      },
      "V2GetUsageResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2UsageSummary"
          }
        }
      },
      "V2ListAuditEventsResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2AuditPage"
          }
        }
      },
      "V2ListCatalogItemsResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogPage"
          }
        }
      },
      "V2GetCatalogItemResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogItem"
          }
        }
      },
      "V2ListCatalogCollectionsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/V2CatalogCollection"
                }
              },
              "count": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      },
      "V2GetCatalogCollectionResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogCollectionDetail"
          }
        }
      },
      "V2ListCatalogContainersResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/V2CatalogContainer"
                }
              },
              "count": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      },
      "V2GetCatalogContainerContentsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogContainerContents"
          }
        }
      },
      "V2ListCatalogCurrenciesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogCurrencySet"
          }
        }
      },
      "V2GetCatalogSnapshotResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogSnapshot"
          }
        }
      },
      "V2GetLatestCatalogReleaseResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogRelease"
          }
        }
      },
      "V2GetCatalogReleaseResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogRelease"
          }
        }
      },
      "V2GetCatalogReleaseExportResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CatalogReleaseExport"
          }
        }
      },
      "V2ListCatalogReleaseKeysResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/V2CatalogReleaseKey"
                }
              },
              "count": {
                "type": "integer",
                "minimum": 1
              }
            }
          }
        }
      },
      "V2GetCurrentPricesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CurrentPrices"
          }
        }
      },
      "V2GetCurrentOrderBookResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2OrderBookSnapshot"
          }
        }
      },
      "V2GetOrderBookHistoryResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2OrderBookHistoryPage"
          }
        }
      },
      "V2CurrentPriceBatchRequest": {
        "type": "object",
        "required": [
          "catalog_ids"
        ],
        "properties": {
          "catalog_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "pattern": "^cs2\\.market\\.v1\\.[A-Za-z0-9_-]+$"
            }
          }
        }
      },
      "V2GetCurrentPricesBatchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2CurrentPriceBatch"
          }
        }
      },
      "V2GetPriceHistoryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2PriceHistoryPage"
          }
        }
      },
      "V2GetAggregatePriceHistoryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2AggregatePriceHistoryPage"
          }
        }
      },
      "V2GetPriceHistoryCoverageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2PriceHistoryCoveragePage"
          }
        }
      },
      "V2ListMarketsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/V2MarketReference"
                }
              },
              "count": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      },
      "V2GetMarketSummaryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2MarketSummary"
          }
        }
      },
      "V2ListMarketSegmentsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/V2MarketSegment"
                }
              },
              "count": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      },
      "V2GetCS2MarketIndexResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2MarketIndexRun"
          }
        }
      },
      "V2GetCS2MarketIndexCoverageResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2MarketIndexCoverage"
          }
        }
      },
      "V2GetCS2MarketIndexHistoryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2MarketIndexHistoryPage"
          }
        }
      },
      "V2CompareCS2MarketIndicesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2MarketIndexComparison"
          }
        }
      },
      "V2GetInventoryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2InventorySnapshot"
          }
        }
      },
      "V2InventoryInspectResolutionResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "steam_id",
              "total",
              "exact",
              "queued",
              "deferred",
              "failed",
              "uninspectable"
            ],
            "properties": {
              "steam_id": {
                "type": "string"
              },
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "exact": {
                "type": "integer",
                "minimum": 0
              },
              "queued": {
                "type": "integer",
                "minimum": 0
              },
              "deferred": {
                "type": "integer",
                "minimum": 0
              },
              "failed": {
                "type": "integer",
                "minimum": 0
              },
              "uninspectable": {
                "type": "integer",
                "minimum": 0
              }
            }
          }
        }
      },
      "V2GetAuthenticatedInventoryHistoryResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2InventoryHistoryPage"
          }
        }
      },
      "V2InventoryBatchRequest": {
        "type": "object",
        "required": [
          "steam_ids"
        ],
        "properties": {
          "steam_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2InspectDecodeRequest": {
        "type": "object",
        "required": [
          "link"
        ],
        "properties": {
          "link": {
            "type": "string"
          }
        }
      },
      "V2DecodeInspectResponse": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2ItemInstance"
          }
        }
      },
      "V2ResolveItemRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "link"
        ],
        "properties": {
          "link": {
            "type": "string",
            "minLength": 1,
            "maxLength": 16384,
            "description": "Current self-encoded steam:// CS2 inspect link or certificate payload accepted by the inspect decoder."
          }
        }
      },
      "V2ItemCatalogQueryReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "definition_index",
          "stattrak",
          "souvenir"
        ],
        "properties": {
          "definition_index": {
            "type": "integer",
            "minimum": 1
          },
          "paint_index": {
            "type": "integer",
            "minimum": 0
          },
          "exterior": {
            "type": "string",
            "enum": [
              "Factory New",
              "Minimal Wear",
              "Field-Tested",
              "Well-Worn",
              "Battle-Scarred"
            ]
          },
          "stattrak": {
            "type": "boolean"
          },
          "souvenir": {
            "type": "boolean"
          }
        }
      },
      "V2ItemCatalogResolution": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "status",
          "query",
          "candidate_count_returned",
          "more_candidates"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "matched",
              "not_found",
              "ambiguous"
            ]
          },
          "query": {
            "$ref": "#/components/schemas/V2ItemCatalogQueryReceipt"
          },
          "item": {
            "$ref": "#/components/schemas/V2CatalogItem"
          },
          "candidates": {
            "type": "array",
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/V2CatalogItem"
            }
          },
          "candidate_count_returned": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "more_candidates": {
            "type": "boolean"
          }
        }
      },
      "V2ItemRenderResolution": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "status"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "catalog_item_not_resolved",
              "catalog_match_ambiguous",
              "renderer_contract_unavailable",
              "renderer_contract_incompatible"
            ]
          },
          "request": {
            "$ref": "#/components/schemas/V2RenderItemRequest"
          }
        }
      },
      "V2ItemResolution": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "source",
          "instance",
          "catalog",
          "render"
        ],
        "properties": {
          "source": {
            "type": "string",
            "const": "self_encoded_certificate"
          },
          "instance": {
            "$ref": "#/components/schemas/V2ItemInstance"
          },
          "catalog": {
            "$ref": "#/components/schemas/V2ItemCatalogResolution"
          },
          "render": {
            "$ref": "#/components/schemas/V2ItemRenderResolution"
          }
        }
      },
      "V2ResolveItemResponse": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2ItemResolution"
          }
        }
      },
      "V2InspectViewerSessionRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "link",
          "scene_id"
        ],
        "properties": {
          "link": {
            "type": "string",
            "minLength": 1,
            "maxLength": 16384,
            "description": "Current self-encoded steam:// CS2 inspect link or certificate payload accepted by the inspect decoder."
          },
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "V2InspectViewerSessionReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "resolution",
          "viewer"
        ],
        "properties": {
          "resolution": {
            "$ref": "#/components/schemas/V2ItemResolution"
          },
          "viewer": {
            "$ref": "#/components/schemas/V2ViewerSessionReceipt"
          }
        }
      },
      "V2InspectImageRenderRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "link",
          "scene_id",
          "output"
        ],
        "properties": {
          "link": {
            "type": "string",
            "minLength": 1,
            "maxLength": 16384,
            "description": "Current self-encoded steam:// CS2 inspect link or certificate payload accepted by the inspect decoder."
          },
          "scene_id": {
            "type": "string",
            "format": "uuid"
          },
          "scene_revision": {
            "type": "integer",
            "minimum": 1
          },
          "output": {
            "$ref": "#/components/schemas/V2ImageRenderOutput"
          }
        }
      },
      "V2InspectImageRenderReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "resolution",
          "render"
        ],
        "properties": {
          "resolution": {
            "$ref": "#/components/schemas/V2ItemResolution"
          },
          "render": {
            "$ref": "#/components/schemas/V2ImageRenderReceipt"
          }
        }
      },
      "V2InspectViewerPublicationReceipt": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "resolution",
          "publication"
        ],
        "properties": {
          "resolution": {
            "$ref": "#/components/schemas/V2ItemResolution"
          },
          "publication": {
            "$ref": "#/components/schemas/V2InstancePublication"
          }
        }
      },
      "V2InspectCreateLinkRequest": {
        "type": "object",
        "required": [
          "item"
        ],
        "properties": {
          "item": {
            "$ref": "#/components/schemas/V2ItemInstance"
          }
        }
      },
      "V2InspectCreateLinkResponse": {
        "type": "object",
        "required": [
          "link"
        ],
        "properties": {
          "link": {
            "type": "string",
            "description": "Current self-encoded steam:// inspect link"
          }
        }
      },
      "V2MarketListingInspectRequest": {
        "type": "object",
        "required": [
          "market_hash_name",
          "market_listing_id"
        ],
        "properties": {
          "market_hash_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "market_listing_id": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,19}$"
          }
        },
        "additionalProperties": false
      },
      "V2MarketListingInspectResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "record",
              "cache_status"
            ],
            "properties": {
              "record": {
                "$ref": "#/components/schemas/V2PublicInspectAssetRecord"
              },
              "cache_status": {
                "type": "string",
                "enum": [
                  "fresh",
                  "hit"
                ]
              }
            }
          }
        }
      },
      "V2LegacyInspectResolveRequest": {
        "type": "object",
        "required": [
          "account_id",
          "link"
        ],
        "properties": {
          "account_id": {
            "type": "integer",
            "format": "int64",
            "minimum": 1
          },
          "link": {
            "type": "string",
            "description": "Legacy S...A...D... or M...A...D... Steam inspect link"
          }
        }
      },
      "V2ResolveLegacyInspectResponse": {
        "type": "object",
        "required": [
          "command",
          "mode"
        ],
        "properties": {
          "command": {
            "$ref": "#/components/schemas/V2CommandReceipt"
          },
          "mode": {
            "type": "string",
            "const": "steam_game_coordinator"
          }
        }
      },
      "V2NormalizeSteamIDResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamIDFormats"
          }
        }
      },
      "V2GetSteamProfileResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamProfile"
          }
        }
      },
      "V2GetSteamProfileBatchResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2ProfileBatchResult"
            }
          }
        }
      },
      "V2GetSteamFriendsResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamFriendList"
          }
        }
      },
      "V2GetSteamTradeEligibilityResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamTradeEligibility"
          }
        }
      },
      "V2ListSteamAccountsResponse": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2SteamAccount"
            }
          }
        }
      },
      "V2SteamAccountCreateRequest": {
        "type": "object",
        "required": [
          "display_label"
        ],
        "properties": {
          "display_label": {
            "type": "string"
          }
        }
      },
      "V2GetSteamAccountHealthResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamAccountHealth"
          }
        }
      },
      "V2SteamAccountControlRequest": {
        "type": "object",
        "required": [
          "mutation_blocked",
          "reason"
        ],
        "properties": {
          "mutation_blocked": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "minLength": 3,
            "maxLength": 240
          }
        }
      },
      "V2UpdateSteamAccountControlsResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2SteamAccountControlReceipt"
          }
        }
      },
      "V2SteamLoginRequest": {
        "type": "object",
        "oneOf": [
          {
            "title": "Username and password",
            "required": [
              "username",
              "password"
            ],
            "not": {
              "required": [
                "steamrefreshtoken"
              ]
            }
          },
          {
            "title": "Steam refresh token",
            "required": [
              "steamrefreshtoken"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "username"
                  ]
                },
                {
                  "required": [
                    "password"
                  ]
                },
                {
                  "required": [
                    "guard_code"
                  ]
                }
              ]
            }
          }
        ],
        "properties": {
          "username": {
            "type": "string",
            "writeOnly": true
          },
          "password": {
            "type": "string",
            "format": "password",
            "writeOnly": true
          },
          "guard_code": {
            "type": "string",
            "writeOnly": true,
            "description": "Optional one-time email or device challenge code. Do not send a shared_secret here."
          },
          "steamrefreshtoken": {
            "type": "string",
            "format": "password",
            "writeOnly": true,
            "maxLength": 8192,
            "description": "Reusable Steam refresh-token JWT. Must be the only authentication credential in the request."
          }
        }
      },
      "V2SteamWebAPIKeyRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "web_api_key"
        ],
        "properties": {
          "web_api_key": {
            "type": "string",
            "writeOnly": true,
            "pattern": "^[A-Fa-f0-9]{32}$",
            "description": "The managed account's own Steam Web API key. It is encrypted immediately and never returned."
          }
        }
      },
      "V2GetAuthenticatedSteamInventoryResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2InventorySnapshot"
          }
        }
      },
      "V2EncryptedDeliveryRequest": {
        "type": "object",
        "required": [
          "delivery_public_key"
        ],
        "properties": {
          "delivery_public_key": {
            "type": "string",
            "format": "byte",
            "description": "Base64 DER SubjectPublicKeyInfo for a caller-owned P-256 ECDH key"
          }
        }
      },
      "V2AuthenticatorFinalizeRequest": {
        "type": "object",
        "required": [
          "activation_code"
        ],
        "properties": {
          "activation_code": {
            "type": "string",
            "writeOnly": true,
            "pattern": "^[0-9]{4,10}$"
          }
        }
      },
      "V2AuthenticatorRemoveRequest": {
        "type": "object",
        "properties": {
          "remove_all_steamguard_cookies": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "V2AuthenticatorRecoveryCompleteRequest": {
        "type": "object",
        "required": [
          "sms_code"
        ],
        "properties": {
          "sms_code": {
            "type": "string",
            "writeOnly": true,
            "pattern": "^[0-9]{4,10}$"
          }
        }
      },
      "V2ConfirmationResolveRequest": {
        "type": "object",
        "required": [
          "nonce",
          "creator_id",
          "action"
        ],
        "properties": {
          "nonce": {
            "type": "string",
            "pattern": "^[1-9][0-9]*$"
          },
          "creator_id": {
            "type": "string",
            "description": "Steam creator ID returned by the current confirmation-list operation. OpenSkin checks it with the confirmation ID and nonce immediately before acting.",
            "pattern": "^[1-9][0-9]*$"
          },
          "action": {
            "type": "string",
            "enum": [
              "accept",
              "deny"
            ]
          }
        }
      },
      "V2ConfirmationEvidence": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "confirmation_id",
          "nonce",
          "creator_id"
        ],
        "properties": {
          "confirmation_id": {
            "type": "string",
            "pattern": "^[1-9][0-9]*$"
          },
          "nonce": {
            "type": "string",
            "pattern": "^[1-9][0-9]*$"
          },
          "creator_id": {
            "type": "string",
            "pattern": "^[1-9][0-9]*$"
          }
        }
      },
      "V2ConfirmationBatchResolveRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "confirmations",
          "action"
        ],
        "properties": {
          "confirmations": {
            "type": "array",
            "description": "One to 10 confirmation evidence records returned by the current list operation. Each confirmation ID may appear once.",
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/V2ConfirmationEvidence"
            }
          },
          "action": {
            "type": "string",
            "enum": [
              "accept",
              "deny"
            ]
          }
        }
      },
      "V2ListTradesResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2TradePage"
          }
        }
      },
      "V2ListWebhooksResponse": {
        "type": "object",
        "properties": {
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2WebhookEndpoint"
            }
          }
        }
      },
      "V2WebhookEndpointUpdateRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/V2WebhookEndpointRequest"
          },
          {
            "type": "object",
            "required": [
              "state"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "active",
                  "disabled"
                ]
              }
            }
          }
        ]
      },
      "V2ListWebhookDeliveriesResponse": {
        "type": "object",
        "properties": {
          "deliveries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2WebhookDelivery"
            }
          }
        }
      },
      "V2ListScenesResponse": {
        "type": "object",
        "required": [
          "scenes"
        ],
        "properties": {
          "scenes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2Scene"
            }
          }
        }
      },
      "V2GetSceneResponse": {
        "type": "object",
        "required": [
          "scene"
        ],
        "properties": {
          "scene": {
            "$ref": "#/components/schemas/V2Scene"
          }
        }
      },
      "V2GetImageRenderResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2ImageRenderJob"
          }
        }
      },
      "V2ListImageRendersResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "$ref": "#/components/schemas/V2ImageRenderPage"
          }
        }
      },
      "V2PrincipalResponse": {
        "type": "object",
        "required": [
          "api_version",
          "tenant_id",
          "key_id",
          "tier",
          "scopes"
        ],
        "properties": {
          "api_version": {
            "type": "string",
            "const": "v2"
          },
          "tenant_id": {
            "type": "integer",
            "format": "int64"
          },
          "key_id": {
            "type": "integer",
            "format": "int64"
          },
          "tier": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "V2InventoryBatchResponse": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/V2InventoryBatchResult"
            }
          }
        }
      },
      "V2CreateTradeResponse": {
        "type": "object",
        "required": [
          "trade",
          "command"
        ],
        "properties": {
          "trade": {
            "$ref": "#/components/schemas/V2TradeOperation"
          },
          "command": {
            "$ref": "#/components/schemas/V2CommandReceipt"
          }
        }
      },
      "V2WebhookEventTypesResponse": {
        "type": "object",
        "required": [
          "event_types"
        ],
        "properties": {
          "event_types": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "audit.export.completed",
                "audit.export.failed",
                "inventory.updated",
                "market.index.failed",
                "market.index.updated",
                "price.updated",
                "render.completed",
                "render.failed",
                "steam.account.state_changed",
                "steam.command.completed",
                "steam.trade.authorization_invalidated",
                "steam.trade.discovered",
                "steam.trade.intent.state_changed",
                "steam.trade.state_changed",
                "webhook.test"
              ]
            }
          }
        }
      },
      "V2WebhookCommandReceipt": {
        "type": "object",
        "required": [
          "endpoint",
          "created"
        ],
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/V2WebhookEndpoint"
          },
          "created": {
            "type": "boolean"
          }
        }
      },
      "V2PlatformErrorBody": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "V2InventoryBatchResult": {
        "type": "object",
        "required": [
          "steam_id"
        ],
        "oneOf": [
          {
            "required": [
              "data"
            ],
            "not": {
              "required": [
                "error"
              ]
            }
          },
          {
            "required": [
              "error"
            ],
            "not": {
              "required": [
                "data"
              ]
            }
          }
        ],
        "properties": {
          "steam_id": {
            "type": "string",
            "pattern": "^[0-9]{17}$"
          },
          "data": {
            "$ref": "#/components/schemas/V2InventorySnapshot"
          },
          "error": {
            "$ref": "#/components/schemas/V2PlatformErrorBody"
          }
        }
      },
      "V2CatalogCounts": {
        "type": "object",
        "required": [
          "items",
          "collections",
          "collection_memberships",
          "containers",
          "container_drops"
        ],
        "properties": {
          "items": {
            "type": "integer",
            "minimum": 0
          },
          "collections": {
            "type": "integer",
            "minimum": 0
          },
          "collection_memberships": {
            "type": "integer",
            "minimum": 0
          },
          "containers": {
            "type": "integer",
            "minimum": 0
          },
          "container_drops": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "V2PlatformErrorResponse": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "$ref": "#/components/schemas/V2PlatformErrorBody"
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Missing or invalid parameters",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "NotFound": {
        "description": "Item not found in catalog or no data available",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "RateLimited": {
        "description": "Rate limit exceeded",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "V2Unauthorized": {
        "description": "Missing, invalid, expired, or revoked Platform API key",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/V2PlatformErrorResponse"
            }
          }
        }
      },
      "V2Forbidden": {
        "description": "An active Platform subscription is required, and the API key must grant every required scope",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/V2PlatformErrorResponse"
            }
          }
        }
      },
      "V2UsageUnavailable": {
        "description": "Usage tracking is unavailable, so metered requests are rejected until accounting recovers.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/V2PlatformErrorResponse"
            }
          }
        }
      }
    }
  }
}