{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/tcgdata-dev/json-schema/tcgdata-dev-get-v1-usage-response-schema.json",
  "title": "GetV1UsageResponse",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/tcgdata-dev-openapi-generated.yml#/components/schemas/GetV1UsageResponse",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "description": "Envelope containing usage metrics."
    },
    "data.credits": {
      "type": "integer",
      "description": "Deprecated credits field."
    },
    "data.reserved_credits": {
      "type": "integer",
      "description": "Reserved credits (always 0)."
    },
    "data.requests": {
      "type": "integer",
      "description": "Total requests made in the current period."
    },
    "data.limit": {
      "type": "integer",
      "description": "Maximum requests allowed in the period."
    },
    "data.remaining": {
      "type": "integer",
      "description": "Requests remaining in the period."
    },
    "data.period": {
      "type": "string",
      "description": "Current billing period identifier (date)."
    },
    "data.day": {
      "type": "string",
      "description": "Current UTC day."
    },
    "data.billing_cycle": {
      "type": "string",
      "description": "Billing cycle type (e.g., anniversary)."
    },
    "data.billing_anchor_date": {
      "type": "string",
      "description": "Date of billing cycle anchor."
    },
    "data.daily_requests": {
      "type": "integer",
      "description": "Requests made today."
    },
    "data.daily_limit": {
      "type": "integer",
      "description": "Daily request limit."
    },
    "data.daily_remaining": {
      "type": "integer",
      "description": "Requests remaining today."
    },
    "data.daily_resets_at": {
      "type": "string",
      "description": "UTC timestamp when daily counters reset."
    },
    "data.batch_size": {
      "type": "integer",
      "description": "Maximum batch size for requests."
    },
    "data.heavy_requests": {
      "type": "integer",
      "description": "Number of heavy requests made."
    },
    "data.catalogue_requests": {
      "type": "integer",
      "description": "Number of catalogue requests made."
    },
    "data.history_requests": {
      "type": "integer",
      "description": "Number of history requests made."
    },
    "data.image_requests": {
      "type": "integer",
      "description": "Number of image requests made."
    },
    "data.response_bytes": {
      "type": "integer",
      "description": "Total response bytes transferred."
    },
    "data.request_limit": {
      "type": "integer",
      "description": "Alias for limit."
    },
    "data.requests_remaining": {
      "type": "integer",
      "description": "Alias for remaining."
    },
    "data.heavy_request_limit": {
      "type": "integer",
      "description": "Maximum heavy requests allowed."
    },
    "data.heavy_requests_remaining": {
      "type": "integer",
      "description": "Heavy requests remaining."
    },
    "data.image_request_limit": {
      "type": "integer",
      "description": "Maximum image requests allowed."
    },
    "data.image_requests_remaining": {
      "type": "integer",
      "description": "Image requests remaining."
    },
    "data.response_bytes_limit": {
      "type": "integer",
      "description": "Maximum response bytes allowed."
    },
    "data.response_bytes_remaining": {
      "type": "integer",
      "description": "Response bytes remaining."
    },
    "data.resets_at": {
      "type": "string",
      "description": "UTC timestamp when the monthly period resets."
    },
    "upgrade": {
      "type": "string",
      "description": "Upgrade suggestion when limits are exhausted; null otherwise."
    }
  }
}