{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gorewards-ca/json-schema/gorewards-ca-get-api-v1-cards-response-schema.json",
  "title": "GetApiV1CardsResponse",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/gorewards-ca-openapi-generated.yml#/components/schemas/GetApiV1CardsResponse",
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "description": "Version identifier of the data."
    },
    "generatedAt": {
      "type": "string",
      "description": "Timestamp when the response was generated (ISO 8601)."
    },
    "count": {
      "type": "integer",
      "description": "Number of card records returned."
    },
    "cards": {
      "type": "array",
      "description": "Array of card records."
    },
    "slug": {
      "type": "string",
      "description": "Stable identifier. Also the last segment of the card page URL."
    },
    "url": {
      "type": "string",
      "description": "Canonical GoRewards page for the card (URL)."
    },
    "name": {
      "type": "string",
      "description": "Card name as the issuer publishes it."
    },
    "issuer": {
      "type": "string",
      "description": "Bank or company that issues the card."
    },
    "network": {
      "type": "string",
      "description": "Payment network, e.g. VISA, MASTERCARD, AMEX."
    },
    "currency": {
      "type": "string",
      "description": "Currency of all amounts on the record. CAD for every current card."
    },
    "annualFee": {
      "type": "number",
      "description": "Annual fee in dollars for the primary card, before any first-year waiver."
    },
    "rewardProgram": {
      "type": "string",
      "description": "Reward currency the card earns, e.g. AEROPLAN, SCENE_PLUS, CASHBACK."
    },
    "baseRate": {
      "type": "object",
      "description": "Rate on purchases outside bonus categories. EarnRate is { unit: \"PERCENT\" | \"MULTIPLIER\", value }."
    },
    "categoryRates": {
      "type": "array",
      "description": "Bonus categories. Each has category, rate (EarnRate), monthlyLimit and annualLimit, postCapRate, verificationStatus and lastVerified."
    },
    "welcomeOffer": {
      "type": "object",
      "description": "Headline welcome offer: pointType, points, minimumSpend (dollars; null when not stated), spendPeriodMonths, estimatedValueCad, validUntil, verificationStatus, lastVerified."
    },
    "foreignTransactionFee": {
      "type": "number",
      "description": "Decimal fraction: 0.025 is 2.5%, 0 is no fee. Null means not recorded."
    },
    "purchaseInterestRate": {
      "type": "number",
      "description": "Annual purchase interest rate as a decimal fraction."
    },
    "cashAdvanceInterestRate": {
      "type": "number",
      "description": "Annual cash advance interest rate as a decimal fraction."
    },
    "incomeRequirement": {
      "type": "number",
      "description": "Minimum personal income in dollars stated by the issuer, when recorded."
    },
    "dataSource": {
      "type": "string",
      "description": "Issuer page the values were read from, when recorded (URL)."
    },
    "verificationStatus": {
      "type": "string",
      "description": "Verification state of the card-level fields: VERIFIED, PARTIALLY_VERIFIED, ESTIMATED, STALE or UNVERIFIED."
    },
    "lastVerified": {
      "type": "string",
      "description": "When the card-level fields were last checked against the source (ISO 8601)."
    },
    "updatedAt": {
      "type": "string",
      "description": "When any field on the record last changed (ISO 8601)."
    }
  }
}