{
  "openapi": "3.1.0",
  "info": {
    "title": "Regime Card: market regime and risk-on / risk-off API",
    "version": "1.0.0",
    "summary": "A market regime and market risk check for AI agents. Pay per call in USDC over x402, or connect the MCP server. No account, no API key.",
    "description": "Is the US market risk-on or risk-off right now? Regime Card reads eight cross-asset signals (credit, volatility, rates, currencies, commodities, sectors) and answers with one score from 0 to 100 and one of five market regimes, from Risk-Off to Risk-On. Agents use it as a market conditions check, a macro signal, or a risk check before a trade. Also: the stress gate, and how a stock or crypto has typically done in markets like today's. Pay per call in USDC on Base over x402. No account, no API key.",
    "termsOfService": "https://regimecard.com/terms",
    "x-guidance": "Regime Card describes US market conditions: a score from 0 (most risk-off) to 100 (most risk-on), one of five regimes, a stress gate, and how stocks and coins have typically done in the current regime. Start with the free sample. Paid calls cost a few cents in USDC over x402 and return data only after the payment settles. Every response says whether it is live or settled. It describes conditions and is not investment advice.",
    "contact": {
      "name": "Regime Card",
      "email": "hello@regimecard.com",
      "url": "https://regimecard.com/agents"
    }
  },
  "servers": [
    {
      "url": "https://agent.regimecard.com"
    }
  ],
  "externalDocs": {
    "description": "Regime Card for AI agents",
    "url": "https://regimecard.com/agents"
  },
  "tags": [
    {
      "name": "free",
      "description": "No payment."
    },
    {
      "name": "paid",
      "description": "Pay per call in USDC over x402."
    }
  ],
  "paths": {
    "/v1/sample": {
      "get": {
        "operationId": "sample_reading",
        "summary": "What was the US market regime at the last close? Free.",
        "description": "What was the US market regime at the last close? Returns the newest settled Regime Card reading, the same one regimecard.com shows: a score from 0 to 100, one of five regimes, the eight cross-asset category labels, and the paid routes with their prices. Free. One reading per US trading day, settled at 4:30 PM ET.",
        "tags": [
          "free"
        ],
        "responses": {
          "200": {
            "description": "Returns the newest settled Regime Card reading, the same one regimecard.com shows: a score from 0 to 100, one of five regimes, the eight cross-asset category labels, and the paid routes with their prices.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "reading": {
                      "type": "object",
                      "properties": {
                        "score": {
                          "type": "number",
                          "description": "The reading: a percentile rank from 0 (most risk-off) to 100 (most risk-on), one decimal.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "score",
                        "regime"
                      ],
                      "additionalProperties": false
                    },
                    "scale": {
                      "type": "object",
                      "properties": {
                        "min": {
                          "type": "integer",
                          "const": 0
                        },
                        "max": {
                          "type": "integer",
                          "const": 100
                        },
                        "low": {
                          "type": "string",
                          "description": "What 0 means.",
                          "const": "Risk-Off"
                        },
                        "high": {
                          "type": "string",
                          "description": "What 100 means.",
                          "const": "Risk-On"
                        }
                      },
                      "required": [
                        "min",
                        "max",
                        "low",
                        "high"
                      ],
                      "additionalProperties": false
                    },
                    "categories": {
                      "type": "array",
                      "description": "The eight cross-asset signal categories behind the reading. Labels only.",
                      "items": {
                        "type": "string",
                        "enum": [
                          "Credit stress",
                          "Equity vol regime",
                          "Bond market vol",
                          "Currency carry",
                          "Commodity growth",
                          "Sector leadership",
                          "Defensive rotation",
                          "Yield curve"
                        ]
                      },
                      "minItems": 8,
                      "maxItems": 8
                    },
                    "paid": {
                      "type": "array",
                      "description": "The paid routes.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The route's id."
                          },
                          "method": {
                            "type": "string",
                            "description": "GET or POST."
                          },
                          "url": {
                            "type": "string",
                            "description": "The route.",
                            "format": "uri"
                          },
                          "tool": {
                            "type": "string",
                            "description": "The MCP tool of the same name."
                          },
                          "priceUsd": {
                            "type": "string",
                            "description": "The price per call, in US dollars, paid in USDC."
                          },
                          "description": {
                            "type": "string",
                            "description": "What the route answers."
                          }
                        },
                        "required": [
                          "id",
                          "method",
                          "url",
                          "tool",
                          "priceUsd",
                          "description"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "mcp": {
                      "type": "string",
                      "description": "The MCP server.",
                      "format": "uri"
                    },
                    "openapi": {
                      "type": "string",
                      "description": "The OpenAPI 3.1 document.",
                      "format": "uri"
                    },
                    "docs": {
                      "type": "string",
                      "description": "The page for developers.",
                      "format": "uri"
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "reading",
                    "scale",
                    "categories",
                    "paid",
                    "mcp",
                    "openapi",
                    "docs",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-13",
                  "status": "settled",
                  "reading": {
                    "score": 62.4,
                    "regime": {
                      "key": "mildly_on",
                      "label": "MILDLY ON",
                      "name": "Mildly On"
                    }
                  },
                  "scale": {
                    "min": 0,
                    "max": 100,
                    "low": "Risk-Off",
                    "high": "Risk-On"
                  },
                  "categories": [
                    "Credit stress",
                    "Equity vol regime",
                    "Bond market vol",
                    "Currency carry",
                    "Commodity growth",
                    "Sector leadership",
                    "Defensive rotation",
                    "Yield curve"
                  ],
                  "paid": [
                    {
                      "id": "live",
                      "method": "GET",
                      "url": "https://agent.regimecard.com/v1/live",
                      "tool": "live_reading",
                      "priceUsd": "0.01",
                      "description": "Is the US market risk-on or risk-off right now? $0.01 per call."
                    },
                    {
                      "id": "stress",
                      "method": "GET",
                      "url": "https://agent.regimecard.com/v1/stress",
                      "tool": "stress_gate",
                      "priceUsd": "0.01",
                      "description": "Is there market stress right now in credit, volatility or rates? $0.01 per call."
                    },
                    {
                      "id": "lookup",
                      "method": "POST",
                      "url": "https://agent.regimecard.com/v1/lookup",
                      "tool": "lookup_symbols",
                      "priceUsd": "0.01",
                      "description": "How has this stock or crypto typically done in markets like today's? $0.01 per call."
                    },
                    {
                      "id": "crypto",
                      "method": "GET",
                      "url": "https://agent.regimecard.com/v1/crypto",
                      "tool": "crypto_regime",
                      "priceUsd": "0.01",
                      "description": "Is it risk-on or risk-off for BTC and altcoins, and how have coins behaved in markets like today's? $0.01 per call."
                    },
                    {
                      "id": "brief",
                      "method": "GET",
                      "url": "https://agent.regimecard.com/v1/brief",
                      "tool": "brief",
                      "priceUsd": "0.01",
                      "description": "What are US market conditions today, in one call? $0.01 per call."
                    }
                  ],
                  "mcp": "https://agent.regimecard.com/mcp",
                  "openapi": "https://agent.regimecard.com/openapi.json",
                  "docs": "https://regimecard.com/agents",
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v1/live": {
      "get": {
        "operationId": "live_reading",
        "summary": "Is the US market risk-on or risk-off right now? $0.01 per call.",
        "description": "Is the US market risk-on or risk-off right now? Returns the live Regime Card reading in one call: a score from 0 (most risk-off) to 100 (most risk-on) and one of five market regimes (Risk-Off, Mildly Off, Neutral, Mildly On, Risk-On), from eight cross-asset signals, beside the last settled close. A market sentiment and market conditions check for today, and a fear and greed alternative that reads credit, volatility, rates, currencies, commodities and sectors. $0.01 per call in USDC on Base (x402). Recomputed hourly during the US session (10:00 AM to 4:00 PM ET) and marked \"live\". Outside the session it returns the settled reading, marked \"settled\".",
        "tags": [
          "paid"
        ],
        "responses": {
          "200": {
            "description": "Returns the live Regime Card reading in one call: a score from 0 (most risk-off) to 100 (most risk-on) and one of five market regimes (Risk-Off, Mildly Off, Neutral, Mildly On, Risk-On), from eight cross-asset signals, beside the last settled close. A market sentiment and market conditions check for today, and a fear and greed alternative that reads credit, volatility, rates, currencies, commodities and sectors.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "marketStatus": {
                      "type": "string",
                      "description": "Where the US session is: before the open, during it, between the close and the settle, or settled.",
                      "enum": [
                        "pre-open",
                        "intraday",
                        "settling",
                        "settled"
                      ]
                    },
                    "reading": {
                      "type": "object",
                      "properties": {
                        "score": {
                          "type": "number",
                          "description": "The reading: a percentile rank from 0 (most risk-off) to 100 (most risk-on), one decimal.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "score",
                        "regime"
                      ],
                      "additionalProperties": false
                    },
                    "updatedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "When this reading was last computed (UTC). Null when it is the settled reading.",
                      "format": "date-time"
                    },
                    "settled": {
                      "type": "object",
                      "properties": {
                        "asOf": {
                          "type": "string",
                          "description": "The trading session of this reading (YYYY-MM-DD, US Eastern).",
                          "format": "date"
                        },
                        "score": {
                          "type": "number",
                          "description": "The reading: a percentile rank from 0 (most risk-off) to 100 (most risk-on), one decimal.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "asOf",
                        "score",
                        "regime"
                      ],
                      "additionalProperties": false
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "marketStatus",
                    "reading",
                    "updatedAt",
                    "settled",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-13",
                  "status": "live",
                  "marketStatus": "intraday",
                  "reading": {
                    "score": 58.1,
                    "regime": {
                      "key": "neutral",
                      "label": "NEUTRAL",
                      "name": "Neutral"
                    }
                  },
                  "updatedAt": "2026-11-13T18:00:53Z",
                  "settled": {
                    "asOf": "2026-11-12",
                    "score": 62.4,
                    "regime": {
                      "key": "mildly_on",
                      "label": "MILDLY ON",
                      "name": "Mildly On"
                    }
                  },
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "402": {
            "description": "Payment required: $0.01 in USDC on Base (x402 version 2, the exact scheme). The PAYMENT-REQUIRED header carries the payment requirements. Sign a payment, send it in PAYMENT-SIGNATURE and retry. A request without a payment always gets this answer, whatever its body or query. Its JSON body carries the price and the input schema.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "Base64 JSON: the x402 payment requirements.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          }
        },
        "security": [
          {
            "x402": []
          }
        ]
      }
    },
    "/v1/stress": {
      "get": {
        "operationId": "stress_gate",
        "summary": "Is there market stress right now in credit, volatility or rates? $0.01 per call.",
        "description": "Is there market stress right now in credit, volatility or rates? Returns the Regime Card stress gate in one call: Calm, Elevated or Stressed, how many of its three components are confirmed (N of 3), and each component (Credit, Volatility, Rates) as Clear or Confirmed. A market stress and market risk check an agent can call before it acts. States only, never the levels behind them. $0.01 per call in USDC on Base (x402). Recomputed hourly during the US session. \"stale\" is true when a scheduled update is missing.",
        "tags": [
          "paid"
        ],
        "responses": {
          "200": {
            "description": "Returns the Regime Card stress gate in one call: Calm, Elevated or Stressed, how many of its three components are confirmed (N of 3), and each component (Credit, Volatility, Rates) as Clear or Confirmed. A market stress and market risk check an agent can call before it acts. States only, never the levels behind them.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "state": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The gate's state, as a key.",
                          "enum": [
                            "calm",
                            "elevated",
                            "stressed"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "The gate's state.",
                          "enum": [
                            "Calm",
                            "Elevated",
                            "Stressed"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "name"
                      ],
                      "additionalProperties": false
                    },
                    "confirmed": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 3,
                      "description": "How many of the three components are confirmed."
                    },
                    "total": {
                      "type": "integer",
                      "const": 3,
                      "description": "Always 3."
                    },
                    "summary": {
                      "type": "string",
                      "description": "The count in words: \"All clear\", or \"N of 3 confirmed\"."
                    },
                    "components": {
                      "type": "array",
                      "minItems": 3,
                      "maxItems": 3,
                      "description": "The three components, by category name. Names and states only.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "The component.",
                            "enum": [
                              "credit",
                              "volatility",
                              "rates"
                            ]
                          },
                          "name": {
                            "type": "string",
                            "description": "Its category name.",
                            "enum": [
                              "Credit",
                              "Volatility",
                              "Rates"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "description": "Its state.",
                            "enum": [
                              "Clear",
                              "Confirmed"
                            ]
                          }
                        },
                        "required": [
                          "key",
                          "name",
                          "state"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "updatedAt": {
                      "type": "string",
                      "description": "When the gate was last computed (UTC).",
                      "format": "date-time"
                    },
                    "stale": {
                      "type": "boolean",
                      "description": "True when the gate has not been recomputed on schedule."
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "state",
                    "confirmed",
                    "total",
                    "summary",
                    "components",
                    "updatedAt",
                    "stale",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-13",
                  "status": "live",
                  "state": {
                    "key": "elevated",
                    "name": "Elevated"
                  },
                  "confirmed": 1,
                  "total": 3,
                  "summary": "1 of 3 confirmed",
                  "components": [
                    {
                      "key": "credit",
                      "name": "Credit",
                      "state": "Clear"
                    },
                    {
                      "key": "volatility",
                      "name": "Volatility",
                      "state": "Confirmed"
                    },
                    {
                      "key": "rates",
                      "name": "Rates",
                      "state": "Clear"
                    }
                  ],
                  "updatedAt": "2026-11-13T18:00:41Z",
                  "stale": false,
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "402": {
            "description": "Payment required: $0.01 in USDC on Base (x402 version 2, the exact scheme). The PAYMENT-REQUIRED header carries the payment requirements. Sign a payment, send it in PAYMENT-SIGNATURE and retry. A request without a payment always gets this answer, whatever its body or query. Its JSON body carries the price and the input schema.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "Base64 JSON: the x402 payment requirements.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          }
        },
        "security": [
          {
            "x402": []
          }
        ]
      }
    },
    "/v1/lookup": {
      "post": {
        "operationId": "lookup_symbols",
        "summary": "How has this stock or crypto typically done in markets like today's? $0.01 per call.",
        "description": "How has this stock or crypto typically done in markets like today's? Returns, for up to 20 stock or crypto symbols in one call, each one's typical return and how often it rose over 1 to 12 months when the period started in the current regime: stock returns by market regime and crypto returns by market regime, as historical odds. The same figures as the symbol's page on regimecard.com. A symbol outside coverage comes back as not covered, never as an error. $0.01 per call in USDC on Base (x402). Settled figures, updated after each US close (coins daily).",
        "tags": [
          "paid"
        ],
        "responses": {
          "200": {
            "description": "Returns, for up to 20 stock or crypto symbols in one call, each one's typical return and how often it rose over 1 to 12 months when the period started in the current regime: stock returns by market regime and crypto returns by market regime, as historical odds. The same figures as the symbol's page on regimecard.com. A symbol outside coverage comes back as not covered, never as an error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "regime": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The regime, as a stable key.",
                          "enum": [
                            "risk_off",
                            "mildly_off",
                            "neutral",
                            "mildly_on",
                            "risk_on"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "description": "The regime, as the card prints it.",
                          "enum": [
                            "RISK-OFF",
                            "MILDLY OFF",
                            "NEUTRAL",
                            "MILDLY ON",
                            "RISK-ON"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "The regime, in sentence case.",
                          "enum": [
                            "Risk-Off",
                            "Mildly Off",
                            "Neutral",
                            "Mildly On",
                            "Risk-On"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "name"
                      ],
                      "additionalProperties": false
                    },
                    "results": {
                      "type": "array",
                      "maxItems": 20,
                      "items": {
                        "type": "object",
                        "description": "One entry per requested symbol, in the order asked. A symbol outside coverage is { symbol, covered: false }.",
                        "properties": {
                          "symbol": {
                            "type": "string",
                            "description": "The symbol as asked, upper case."
                          },
                          "covered": {
                            "type": "boolean",
                            "description": "False when Regime Card does not cover this symbol. Never an error."
                          },
                          "name": {
                            "type": "string",
                            "description": "The stock's or coin's name."
                          },
                          "type": {
                            "type": "string",
                            "description": "What it is.",
                            "enum": [
                              "stock",
                              "etf",
                              "crypto"
                            ]
                          },
                          "asOf": {
                            "type": "string",
                            "description": "The session of the symbol's newest price in the figures (YYYY-MM-DD).",
                            "format": "date"
                          },
                          "url": {
                            "type": "string",
                            "description": "The symbol's page on regimecard.com, with the same figures.",
                            "format": "uri"
                          },
                          "horizons": {
                            "type": "array",
                            "description": "One row per holding period, for the current regime.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "horizon": {
                                  "type": "string",
                                  "description": "The holding period.",
                                  "enum": [
                                    "1m",
                                    "2m",
                                    "3m",
                                    "6m",
                                    "12m"
                                  ]
                                },
                                "typicalReturnPct": {
                                  "type": [
                                    "number",
                                    "null"
                                  ],
                                  "description": "The typical (median) return over the period when it started in the current regime, in percent."
                                },
                                "roseSharePct": {
                                  "type": [
                                    "number",
                                    "null"
                                  ],
                                  "description": "How often the symbol rose over the period when it started in the current regime, in percent of past periods."
                                },
                                "history": {
                                  "type": "string",
                                  "description": "How much history is behind the row: full, limited, or none (too little to print a figure).",
                                  "enum": [
                                    "full",
                                    "limited",
                                    "none"
                                  ]
                                }
                              },
                              "required": [
                                "horizon",
                                "typicalReturnPct",
                                "roseSharePct",
                                "history"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "symbol",
                          "covered"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "regime",
                    "results",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-12",
                  "status": "settled",
                  "regime": {
                    "key": "mildly_on",
                    "label": "MILDLY ON",
                    "name": "Mildly On"
                  },
                  "results": [
                    {
                      "symbol": "NVDA",
                      "covered": true,
                      "name": "NVIDIA",
                      "type": "stock",
                      "asOf": "2026-11-12",
                      "url": "https://regimecard.com/stocks/NVDA",
                      "horizons": [
                        {
                          "horizon": "1m",
                          "typicalReturnPct": 3.1,
                          "roseSharePct": 64,
                          "history": "full"
                        },
                        {
                          "horizon": "3m",
                          "typicalReturnPct": 9.8,
                          "roseSharePct": 71,
                          "history": "full"
                        }
                      ]
                    },
                    {
                      "symbol": "BTC",
                      "covered": true,
                      "name": "Bitcoin",
                      "type": "crypto",
                      "asOf": "2026-11-13",
                      "url": "https://regimecard.com/crypto/BTC",
                      "horizons": [
                        {
                          "horizon": "1m",
                          "typicalReturnPct": 4.4,
                          "roseSharePct": 58,
                          "history": "full"
                        },
                        {
                          "horizon": "3m",
                          "typicalReturnPct": 12.6,
                          "roseSharePct": 63,
                          "history": "limited"
                        }
                      ]
                    },
                    {
                      "symbol": "ZZZZ",
                      "covered": false
                    }
                  ],
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "400": {
            "description": "The request body is not valid. Returned only to a request that carries a valid payment: the input is checked after the payment is verified and before it is settled, so nothing is charged. Without a payment the answer is 402 whatever the body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "402": {
            "description": "Payment required: $0.01 in USDC on Base (x402 version 2, the exact scheme). The PAYMENT-REQUIRED header carries the payment requirements. Sign a payment, send it in PAYMENT-SIGNATURE and retry. A request without a payment always gets this answer, whatever its body or query. Its JSON body carries the price and the input schema.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "Base64 JSON: the x402 payment requirements.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "413": {
            "description": "The request body is too large. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "symbols": {
                    "type": "array",
                    "description": "Stock or crypto symbols, for example [\"NVDA\", \"XLK\", \"BTC\"]. At most 20.",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 10
                    },
                    "minItems": 1,
                    "maxItems": 20
                  }
                },
                "required": [
                  "symbols"
                ],
                "additionalProperties": false
              },
              "example": {
                "symbols": [
                  "NVDA",
                  "BTC",
                  "ZZZZ"
                ]
              }
            }
          }
        },
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          }
        },
        "security": [
          {
            "x402": []
          }
        ]
      }
    },
    "/v1/crypto": {
      "get": {
        "operationId": "crypto_regime",
        "summary": "Is it risk-on or risk-off for BTC and altcoins, and how have coins behaved in markets like today's? $0.01 per call.",
        "description": "Is it risk-on or risk-off for BTC and altcoins, and how have coins behaved in markets like today's? Returns the market regime for crypto in one call: the current regime, and every covered coin (BTC, ETH, SOL and other large altcoins) with its typical return and how often it rose over 1, 2 and 3 months when the period started in this regime, sorted highest first. Crypto returns by market regime as historical odds, the same figures as the /crypto pages on regimecard.com. $0.01 per call in USDC on Base (x402). Settled figures. The regime updates after each US close and the coin figures once a day.",
        "tags": [
          "paid"
        ],
        "responses": {
          "200": {
            "description": "Returns the market regime for crypto in one call: the current regime, and every covered coin (BTC, ETH, SOL and other large altcoins) with its typical return and how often it rose over 1, 2 and 3 months when the period started in this regime, sorted highest first. Crypto returns by market regime as historical odds, the same figures as the /crypto pages on regimecard.com.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "regime": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "description": "The regime, as a stable key.",
                          "enum": [
                            "risk_off",
                            "mildly_off",
                            "neutral",
                            "mildly_on",
                            "risk_on"
                          ]
                        },
                        "label": {
                          "type": "string",
                          "description": "The regime, as the card prints it.",
                          "enum": [
                            "RISK-OFF",
                            "MILDLY OFF",
                            "NEUTRAL",
                            "MILDLY ON",
                            "RISK-ON"
                          ]
                        },
                        "name": {
                          "type": "string",
                          "description": "The regime, in sentence case.",
                          "enum": [
                            "Risk-Off",
                            "Mildly Off",
                            "Neutral",
                            "Mildly On",
                            "Risk-On"
                          ]
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "name"
                      ],
                      "additionalProperties": false
                    },
                    "sortedBy": {
                      "type": "string",
                      "description": "The holding period the list is sorted by, highest typical return first.",
                      "enum": [
                        "1m",
                        "2m",
                        "3m"
                      ]
                    },
                    "dataAsOf": {
                      "type": "string",
                      "description": "The newest day of coin prices in the figures (YYYY-MM-DD, UTC).",
                      "format": "date"
                    },
                    "coins": {
                      "type": "array",
                      "description": "Every covered coin, sorted. A coin with too little history in this regime is listed last with null figures.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "symbol": {
                            "type": "string",
                            "description": "The coin's symbol."
                          },
                          "name": {
                            "type": "string",
                            "description": "The coin's name."
                          },
                          "url": {
                            "type": "string",
                            "description": "The coin's page on regimecard.com, with the same figures.",
                            "format": "uri"
                          },
                          "horizons": {
                            "type": "array",
                            "minItems": 3,
                            "maxItems": 3,
                            "items": {
                              "type": "object",
                              "properties": {
                                "horizon": {
                                  "type": "string",
                                  "description": "The holding period.",
                                  "enum": [
                                    "1m",
                                    "2m",
                                    "3m"
                                  ]
                                },
                                "typicalReturnPct": {
                                  "type": [
                                    "number",
                                    "null"
                                  ],
                                  "description": "The coin's typical (median) return over the period when it started in the current regime, in percent."
                                },
                                "roseSharePct": {
                                  "type": [
                                    "number",
                                    "null"
                                  ],
                                  "description": "How often the coin rose over the period when it started in the current regime, in percent of past periods."
                                },
                                "history": {
                                  "type": "string",
                                  "description": "How much history is behind the row: full, limited, or none.",
                                  "enum": [
                                    "full",
                                    "limited",
                                    "none"
                                  ]
                                }
                              },
                              "required": [
                                "horizon",
                                "typicalReturnPct",
                                "roseSharePct",
                                "history"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "symbol",
                          "name",
                          "url",
                          "horizons"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "regime",
                    "sortedBy",
                    "dataAsOf",
                    "coins",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-12",
                  "status": "settled",
                  "regime": {
                    "key": "mildly_on",
                    "label": "MILDLY ON",
                    "name": "Mildly On"
                  },
                  "sortedBy": "3m",
                  "dataAsOf": "2026-11-13",
                  "coins": [
                    {
                      "symbol": "SOL",
                      "name": "Solana",
                      "url": "https://regimecard.com/crypto/SOL",
                      "horizons": [
                        {
                          "horizon": "1m",
                          "typicalReturnPct": 6.2,
                          "roseSharePct": 59,
                          "history": "limited"
                        },
                        {
                          "horizon": "2m",
                          "typicalReturnPct": 14.9,
                          "roseSharePct": 62,
                          "history": "limited"
                        },
                        {
                          "horizon": "3m",
                          "typicalReturnPct": 24,
                          "roseSharePct": 66,
                          "history": "limited"
                        }
                      ]
                    },
                    {
                      "symbol": "BTC",
                      "name": "Bitcoin",
                      "url": "https://regimecard.com/crypto/BTC",
                      "horizons": [
                        {
                          "horizon": "1m",
                          "typicalReturnPct": 4.4,
                          "roseSharePct": 58,
                          "history": "full"
                        },
                        {
                          "horizon": "2m",
                          "typicalReturnPct": 8.7,
                          "roseSharePct": 61,
                          "history": "full"
                        },
                        {
                          "horizon": "3m",
                          "typicalReturnPct": 12.6,
                          "roseSharePct": 63,
                          "history": "full"
                        }
                      ]
                    },
                    {
                      "symbol": "HYPE",
                      "name": "Hyperliquid",
                      "url": "https://regimecard.com/crypto/HYPE",
                      "horizons": [
                        {
                          "horizon": "1m",
                          "typicalReturnPct": null,
                          "roseSharePct": null,
                          "history": "none"
                        },
                        {
                          "horizon": "2m",
                          "typicalReturnPct": null,
                          "roseSharePct": null,
                          "history": "none"
                        },
                        {
                          "horizon": "3m",
                          "typicalReturnPct": null,
                          "roseSharePct": null,
                          "history": "none"
                        }
                      ]
                    }
                  ],
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "402": {
            "description": "Payment required: $0.01 in USDC on Base (x402 version 2, the exact scheme). The PAYMENT-REQUIRED header carries the payment requirements. Sign a payment, send it in PAYMENT-SIGNATURE and retry. A request without a payment always gets this answer, whatever its body or query. Its JSON body carries the price and the input schema.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "Base64 JSON: the x402 payment requirements.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          }
        },
        "security": [
          {
            "x402": []
          }
        ]
      }
    },
    "/v1/brief": {
      "get": {
        "operationId": "brief",
        "summary": "What are US market conditions today, in one call? $0.01 per call.",
        "description": "What are US market conditions today, in one call? Returns the live market regime reading, the stress gate, and the scorecard row for the current regime: what the S&P 500 did in the 5 and 20 trading days after past readings in this regime (typical return, how often it rose, and a bad outcome, a measure of drawdown risk). One cross-asset macro signal an agent can use as a risk check before a trade or as a position sizing input. Describes conditions, not a forecast. $0.01 per call in USDC on Base (x402). The reading and the gate are recomputed hourly during the US session. The scorecard gains one reading per trading day.",
        "tags": [
          "paid"
        ],
        "responses": {
          "200": {
            "description": "Returns the live market regime reading, the stress gate, and the scorecard row for the current regime: what the S&P 500 did in the 5 and 20 trading days after past readings in this regime (typical return, how often it rose, and a bad outcome, a measure of drawdown risk). One cross-asset macro signal an agent can use as a risk check before a trade or as a position sizing input. Describes conditions, not a forecast.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "asOf": {
                      "type": "string",
                      "description": "The trading session this response describes (YYYY-MM-DD, US Eastern).",
                      "format": "date"
                    },
                    "status": {
                      "type": "string",
                      "description": "\"live\": computed during the session and still provisional. \"settled\": final for its session.",
                      "enum": [
                        "live",
                        "settled"
                      ]
                    },
                    "marketStatus": {
                      "type": "string",
                      "description": "Where the US session is: before the open, during it, between the close and the settle, or settled.",
                      "enum": [
                        "pre-open",
                        "intraday",
                        "settling",
                        "settled"
                      ]
                    },
                    "reading": {
                      "type": "object",
                      "properties": {
                        "score": {
                          "type": "number",
                          "description": "The reading: a percentile rank from 0 (most risk-off) to 100 (most risk-on), one decimal.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "score",
                        "regime"
                      ],
                      "additionalProperties": false
                    },
                    "updatedAt": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "When this reading was last computed (UTC). Null when it is the settled reading.",
                      "format": "date-time"
                    },
                    "settled": {
                      "type": "object",
                      "properties": {
                        "asOf": {
                          "type": "string",
                          "description": "The trading session of this reading (YYYY-MM-DD, US Eastern).",
                          "format": "date"
                        },
                        "score": {
                          "type": "number",
                          "description": "The reading: a percentile rank from 0 (most risk-off) to 100 (most risk-on), one decimal.",
                          "minimum": 0,
                          "maximum": 100
                        },
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "asOf",
                        "score",
                        "regime"
                      ],
                      "additionalProperties": false
                    },
                    "stress": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "state": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The gate's state, as a key.",
                              "enum": [
                                "calm",
                                "elevated",
                                "stressed"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The gate's state.",
                              "enum": [
                                "Calm",
                                "Elevated",
                                "Stressed"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "name"
                          ],
                          "additionalProperties": false
                        },
                        "confirmed": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 3,
                          "description": "How many of the three components are confirmed."
                        },
                        "total": {
                          "type": "integer",
                          "const": 3,
                          "description": "Always 3."
                        },
                        "summary": {
                          "type": "string",
                          "description": "The count in words: \"All clear\", or \"N of 3 confirmed\"."
                        },
                        "components": {
                          "type": "array",
                          "minItems": 3,
                          "maxItems": 3,
                          "description": "The three components, by category name. Names and states only.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "key": {
                                "type": "string",
                                "description": "The component.",
                                "enum": [
                                  "credit",
                                  "volatility",
                                  "rates"
                                ]
                              },
                              "name": {
                                "type": "string",
                                "description": "Its category name.",
                                "enum": [
                                  "Credit",
                                  "Volatility",
                                  "Rates"
                                ]
                              },
                              "state": {
                                "type": "string",
                                "description": "Its state.",
                                "enum": [
                                  "Clear",
                                  "Confirmed"
                                ]
                              }
                            },
                            "required": [
                              "key",
                              "name",
                              "state"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "updatedAt": {
                          "type": "string",
                          "description": "When the gate was last computed (UTC).",
                          "format": "date-time"
                        },
                        "stale": {
                          "type": "boolean",
                          "description": "True when the gate has not been recomputed on schedule."
                        }
                      },
                      "required": [
                        "state",
                        "confirmed",
                        "total",
                        "summary",
                        "components",
                        "updatedAt",
                        "stale"
                      ],
                      "additionalProperties": false
                    },
                    "scorecard": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "regime": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "description": "The regime, as a stable key.",
                              "enum": [
                                "risk_off",
                                "mildly_off",
                                "neutral",
                                "mildly_on",
                                "risk_on"
                              ]
                            },
                            "label": {
                              "type": "string",
                              "description": "The regime, as the card prints it.",
                              "enum": [
                                "RISK-OFF",
                                "MILDLY OFF",
                                "NEUTRAL",
                                "MILDLY ON",
                                "RISK-ON"
                              ]
                            },
                            "name": {
                              "type": "string",
                              "description": "The regime, in sentence case.",
                              "enum": [
                                "Risk-Off",
                                "Mildly Off",
                                "Neutral",
                                "Mildly On",
                                "Risk-On"
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "name"
                          ],
                          "additionalProperties": false
                        },
                        "asOf": {
                          "type": "string",
                          "description": "The session of the scorecard's newest reading.",
                          "format": "date"
                        },
                        "rows": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "horizon": {
                                "type": "string",
                                "description": "The look-ahead: 5 or 20 trading days.",
                                "enum": [
                                  "5d",
                                  "20d"
                                ]
                              },
                              "readings": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "How many daily readings fell in this regime."
                              },
                              "timesEntered": {
                                "type": [
                                  "integer",
                                  "null"
                                ],
                                "description": "How many separate times the market entered this regime."
                              },
                              "typicalReturnPct": {
                                "type": [
                                  "number",
                                  "null"
                                ],
                                "description": "The S&P 500's typical (median) return over the horizon after a reading in this regime, in percent."
                              },
                              "roseSharePct": {
                                "type": [
                                  "number",
                                  "null"
                                ],
                                "description": "How often the S&P 500 rose over the horizon after a reading in this regime, in percent of readings."
                              },
                              "badOutcomePct": {
                                "type": [
                                  "number",
                                  "null"
                                ],
                                "description": "A bad outcome for the horizon: the return the S&P 500 did worse than one time in ten, in percent."
                              }
                            },
                            "required": [
                              "horizon",
                              "readings",
                              "timesEntered",
                              "typicalReturnPct",
                              "roseSharePct",
                              "badOutcomePct"
                            ],
                            "additionalProperties": false
                          },
                          "maxItems": 2
                        }
                      },
                      "required": [
                        "regime",
                        "asOf",
                        "rows"
                      ],
                      "additionalProperties": false
                    },
                    "disclaimer": {
                      "type": "string",
                      "description": "Always the same sentence.",
                      "const": "For informational purposes only. Not investment advice."
                    },
                    "source": {
                      "type": "string",
                      "description": "Where the reading is published.",
                      "const": "https://regimecard.com"
                    }
                  },
                  "required": [
                    "asOf",
                    "status",
                    "marketStatus",
                    "reading",
                    "updatedAt",
                    "settled",
                    "stress",
                    "scorecard",
                    "disclaimer",
                    "source"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "asOf": "2026-11-13",
                  "status": "live",
                  "marketStatus": "intraday",
                  "reading": {
                    "score": 58.1,
                    "regime": {
                      "key": "neutral",
                      "label": "NEUTRAL",
                      "name": "Neutral"
                    }
                  },
                  "updatedAt": "2026-11-13T18:00:53Z",
                  "settled": {
                    "asOf": "2026-11-12",
                    "score": 62.4,
                    "regime": {
                      "key": "mildly_on",
                      "label": "MILDLY ON",
                      "name": "Mildly On"
                    }
                  },
                  "stress": {
                    "state": {
                      "key": "elevated",
                      "name": "Elevated"
                    },
                    "confirmed": 1,
                    "total": 3,
                    "summary": "1 of 3 confirmed",
                    "components": [
                      {
                        "key": "credit",
                        "name": "Credit",
                        "state": "Clear"
                      },
                      {
                        "key": "volatility",
                        "name": "Volatility",
                        "state": "Confirmed"
                      },
                      {
                        "key": "rates",
                        "name": "Rates",
                        "state": "Clear"
                      }
                    ],
                    "updatedAt": "2026-11-13T18:00:41Z",
                    "stale": false
                  },
                  "scorecard": {
                    "regime": {
                      "key": "mildly_on",
                      "label": "MILDLY ON",
                      "name": "Mildly On"
                    },
                    "asOf": "2026-11-12",
                    "rows": [
                      {
                        "horizon": "5d",
                        "readings": 412,
                        "timesEntered": 57,
                        "typicalReturnPct": 0.4,
                        "roseSharePct": 61,
                        "badOutcomePct": -1.9
                      },
                      {
                        "horizon": "20d",
                        "readings": 412,
                        "timesEntered": 57,
                        "typicalReturnPct": 1.6,
                        "roseSharePct": 68,
                        "badOutcomePct": -3.8
                      }
                    ]
                  },
                  "disclaimer": "For informational purposes only. Not investment advice.",
                  "source": "https://regimecard.com"
                }
              }
            }
          },
          "402": {
            "description": "Payment required: $0.01 in USDC on Base (x402 version 2, the exact scheme). The PAYMENT-REQUIRED header carries the payment requirements. Sign a payment, send it in PAYMENT-SIGNATURE and retry. A request without a payment always gets this answer, whatever its body or query. Its JSON body carries the price and the input schema.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "Base64 JSON: the x402 payment requirements.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The reading is not available right now. Nothing is charged.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "message"
                      ]
                    },
                    "disclaimer": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        },
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          }
        },
        "security": [
          {
            "x402": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "x402": {
        "type": "apiKey",
        "in": "header",
        "name": "PAYMENT-SIGNATURE",
        "description": "An x402 version 2 payment payload (base64 JSON), created by an x402 client from the 402 response. Not an API key: there are no accounts."
      }
    }
  },
  "x-mcp": {
    "url": "https://agent.regimecard.com/mcp",
    "transport": "streamable-http",
    "card": "https://agent.regimecard.com/mcp/server-card"
  }
}