{
  "openapi": "3.1.0",
  "info": {
    "title": "scfin API Reference",
    "version": "0.1.0",
    "description": "Slickcharts source API for bluedoor Financial Data.\nIndex composition and weighting source with ETF/ARK and simple quote helpers.\nCoverage: Index constituents; Index view tables; Returns history; ARK ETF holdings and treasury yield views.\nGenerated from the live source contract and representative live API responses on 2026-06-07T01:30:59.456Z."
  },
  "servers": [
    {
      "url": "https://api.scfin.bluedoor.sh",
      "description": "scfin source API"
    }
  ],
  "externalDocs": {
    "description": "Slickcharts source API docs",
    "url": "https://bluedoor.sh/apis/financial-data/sources/scfin"
  },
  "tags": [
    {
      "name": "Indices"
    },
    {
      "name": "Symbol"
    }
  ],
  "paths": {
    "/v1/companies": {
      "get": {
        "summary": "Companies",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_companiesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796145203,
                        "route": "companies",
                        "total": 0,
                        "companies": []
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/companies/__data.json",
                        "route": "companies",
                        "generated_at": "2026-06-07T01:35:45.440Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "eff84c9c-e585-40ce-9c4a-d62b79cddf5b"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_companies",
        "description": "Returns companies with source-native fields and identifiers.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/companies",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:45.737Z"
      }
    },
    "/v1/comparison/{pair}": {
      "get": {
        "summary": "Comparison",
        "parameters": [
          {
            "name": "pair",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_comparison_pairResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796147390,
                        "route": "comparison",
                        "slug": "goog-vs-googl",
                        "content": {
                          "googPrice": 365.76,
                          "googlPrice": 368.53,
                          "priceDelta": -2.769999999999982,
                          "priceDeltas": [
                            [
                              1396497600000,
                              -0.08800000000000097
                            ],
                            [
                              1396584000000,
                              -0.10549999999999926
                            ],
                            [
                              1396843200000,
                              -0.12400000000000233
                            ]
                          ],
                          "indexEtfList": [
                            {
                              "symbol": "SPY",
                              "name": "S&P 500 ETF",
                              "lastPrice": 737.55,
                              "netChange": -19.540000000000077,
                              "changePercent": -2.5809348954549782,
                              "prevClose": 757.09
                            },
                            {
                              "symbol": "QQQ",
                              "name": "Nasdaq 100 ETF",
                              "lastPrice": 705.06,
                              "netChange": -35.55000000000007,
                              "changePercent": -4.8000972171588385,
                              "prevClose": 740.61
                            },
                            {
                              "symbol": "DIA",
                              "name": "Dow Jones ETF",
                              "lastPrice": 509.7,
                              "netChange": -7.000000000000057,
                              "changePercent": -1.354751306367341,
                              "prevClose": 516.7
                            }
                          ]
                        }
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/goog-vs-googl/__data.json",
                        "route": "comparison",
                        "generated_at": "2026-06-07T01:35:47.413Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "6e32bdb6-ccff-4241-ab08-c9d53b5577c5"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_comparison_pair",
        "description": "Returns comparison with source-native fields and identifiers.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/comparison/goog-vs-googl",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:47.740Z"
      }
    },
    "/v1/marketing/{slug}": {
      "get": {
        "summary": "Marketing page",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_marketing_slugResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796148233,
                        "route": "marketing",
                        "slug": "berkshire-hathaway",
                        "content": {
                          "holdingsList": [
                            {
                              "symbol": "AAPL",
                              "name": "Apple Inc.",
                              "lastPrice": 307.34,
                              "netChange": -3.890000000000043,
                              "changePercent": -1.2498795103299987,
                              "marketCap": 70048259110.72,
                              "shares": 227917808,
                              "float": 0,
                              "rank": 1,
                              "weight": 24.64040438880925
                            },
                            {
                              "symbol": "AXP",
                              "name": "American Express Company",
                              "lastPrice": 310.66,
                              "netChange": -1.8699999999999477,
                              "changePercent": -0.5983425591143066,
                              "marketCap": 47099380062,
                              "shares": 151610700,
                              "float": 0,
                              "rank": 2,
                              "weight": 16.567831748045435
                            },
                            {
                              "symbol": "KO",
                              "name": "Coca-Cola Company",
                              "lastPrice": 79.48,
                              "netChange": 2.660000000000011,
                              "changePercent": 3.4626399375162764,
                              "marketCap": 31792000000,
                              "shares": 400000000,
                              "float": 0,
                              "rank": 3,
                              "weight": 11.183257746503212
                            }
                          ],
                          "indexEtfList": [
                            {
                              "symbol": "SPY",
                              "name": "S&P 500 ETF",
                              "lastPrice": 737.55,
                              "netChange": -19.540000000000077,
                              "changePercent": -2.5809348954549782,
                              "prevClose": 757.09
                            },
                            {
                              "symbol": "QQQ",
                              "name": "Nasdaq 100 ETF",
                              "lastPrice": 705.06,
                              "netChange": -35.55000000000007,
                              "changePercent": -4.8000972171588385,
                              "prevClose": 740.61
                            },
                            {
                              "symbol": "DIA",
                              "name": "Dow Jones ETF",
                              "lastPrice": 509.7,
                              "netChange": -7.000000000000057,
                              "changePercent": -1.354751306367341,
                              "prevClose": 516.7
                            }
                          ],
                          "filingDate": "2026-05-15",
                          "reportDate": "2026-03-31",
                          "filingLink": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526226661/0001193125-26-226661-index.htm"
                        }
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/berkshire-hathaway/__data.json",
                        "route": "marketing",
                        "generated_at": "2026-06-07T01:35:48.237Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "acef0d08-6a8c-425d-8c70-c0bad2a9bcc7"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_marketing_slug",
        "description": "Returns marketing page with source-native fields and identifiers.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/marketing/berkshire-hathaway",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:48.476Z"
      }
    },
    "/v1/currency/{ticker}/quote": {
      "get": {
        "summary": "Currency quote",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_currency_ticker_quoteResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796149079,
                        "route": "currency_quote",
                        "ticker": "AAPL",
                        "quote": {
                          "symbol": "AAPL",
                          "symbolId": null,
                          "symbolName": null,
                          "displayReturns": false,
                          "loadTimestamp": 1780796149079,
                          "mobileDevice": false
                        }
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/currency/AAPL/__data.json",
                        "route": "currency_quote",
                        "generated_at": "2026-06-07T01:35:49.085Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "7780b9e0-9b09-4690-9bb9-7116bd9a8684"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_currency_ticker_quote",
        "description": "Returns currency quote with source-native fields and identifiers.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/currency/AAPL/quote",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:49.334Z"
      }
    },
    "/v1/index/{index}/{view}": {
      "get": {
        "summary": "View",
        "parameters": [
          {
            "name": "view",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_index_index_viewResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796149835,
                        "route": "index_view",
                        "index": "sp500",
                        "view": "returns",
                        "primary_key": "returns",
                        "primary": [
                          {
                            "year": 2026,
                            "totalReturn": "8.43",
                            "negative": false
                          },
                          {
                            "year": 2025,
                            "totalReturn": "17.88"
                          },
                          {
                            "year": 2024,
                            "totalReturn": "25.02"
                          }
                        ],
                        "other_arrays": {
                          "chartYears": [
                            "1926-01-02T00:00:00.000Z",
                            "1927-01-02T00:00:00.000Z",
                            "1928-01-02T00:00:00.000Z"
                          ],
                          "chartReturns": [
                            "11.62",
                            "37.49",
                            "43.61"
                          ]
                        },
                        "meta": {
                          "ytdYear": 2026,
                          "ytdDate": "2026-06-05",
                          "loadTimestamp": 1780796149835,
                          "mobileDevice": false
                        }
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/sp500/returns/__data.json",
                        "route": "index_view",
                        "generated_at": "2026-06-07T01:35:49.844Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "a305dbe1-255f-43c6-9dea-ee987ef5d711"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_index_index_view",
        "description": "Returns view with index, constituent, weight, or comparison fields from the upstream data shape.",
        "tags": [
          "Indices"
        ],
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/index/sp500/returns",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:50.071Z"
      }
    },
    "/v1/index/{index}/constituents": {
      "get": {
        "summary": "Constituents",
        "parameters": [
          {
            "name": "index",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_index_index_constituentsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796150633,
                        "route": "index_constituents",
                        "index": "sp500",
                        "total": 503,
                        "constituents": [
                          {
                            "symbol": "NVDA",
                            "name": "NVIDIA Corp",
                            "lastPrice": 205.1,
                            "netChange": -13.560000000000002,
                            "changePercent": -6.201408579529866,
                            "marketCap": 4967727100000,
                            "shares": 24221000000,
                            "float": 0,
                            "rank": 1,
                            "weight": 7.413044155292284
                          },
                          {
                            "symbol": "AAPL",
                            "name": "Apple Inc",
                            "lastPrice": 307.34,
                            "netChange": -3.890000000000043,
                            "changePercent": -1.2498795103299987,
                            "marketCap": 4514011993040,
                            "shares": 14687356000,
                            "float": 0,
                            "rank": 2,
                            "weight": 6.73599204391168
                          },
                          {
                            "symbol": "MSFT",
                            "name": "Microsoft Corp",
                            "lastPrice": 416.67,
                            "netChange": -11.379999999999995,
                            "changePercent": -2.6585679243079086,
                            "marketCap": 3095205888115.68,
                            "shares": 7428434704,
                            "float": 0,
                            "rank": 3,
                            "weight": 4.618791945781845
                          }
                        ]
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/sp500/__data.json",
                        "route": "index_constituents",
                        "generated_at": "2026-06-07T01:35:50.646Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "fa8f36dd-3414-4e42-8fe2-7ccf3f646a59"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_index_index_constituents",
        "description": "Returns constituents with index, constituent, weight, or comparison fields from the upstream data shape.",
        "tags": [
          "Indices"
        ],
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/index/sp500/constituents",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:51.076Z"
      }
    },
    "/v1/symbol/{ticker}/{view}": {
      "get": {
        "summary": "View",
        "parameters": [
          {
            "name": "view",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ticker",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_symbol_ticker_viewResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": null,
                        "route": "symbol_view",
                        "ticker": "AAPL",
                        "view": "chart",
                        "payload": {
                          "symbol": "AAPL",
                          "symbolName": "Apple Inc.",
                          "displayEtfHoldings": false,
                          "displayReturns": true,
                          "mobileDevice": false
                        }
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/symbol/AAPL/chart/__data.json",
                        "route": "symbol_view",
                        "generated_at": "2026-06-07T01:35:51.591Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "3be68702-5908-4f6f-82ef-db6e3e0d2029"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_symbol_ticker_view",
        "description": "Returns view with source-native fields and identifiers.",
        "tags": [
          "Symbol"
        ],
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/symbol/AAPL/chart",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:51.868Z"
      }
    },
    "/v1/symbol/{ticker}/quote": {
      "get": {
        "summary": "Quote",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_symbol_ticker_quoteResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796152434,
                        "route": "symbol_quote",
                        "ticker": "AAPL",
                        "quote": {
                          "symbol": "AAPL",
                          "symbolName": "Apple Inc.",
                          "lastPrice": 307.34,
                          "netChange": -3.890000000000043,
                          "changePercent": -1.2498795103299987,
                          "prevClose": 311.23,
                          "trailingPe": "37.18",
                          "forwardPe": "31.93",
                          "dividendAmount": 1.05,
                          "dividendPercent": 0.34164117915012693,
                          "marketCap": "4514.01B",
                          "trailingEps": "8.27",
                          "forwardEps": "9.63",
                          "displayEtfHoldings": false,
                          "displayReturns": true
                        },
                        "companion_etfs": [
                          {
                            "symbol": "SPY",
                            "name": "S&P 500 ETF",
                            "lastPrice": 737.55,
                            "netChange": -19.540000000000077,
                            "changePercent": -2.5809348954549782,
                            "prevClose": 757.09
                          },
                          {
                            "symbol": "QQQ",
                            "name": "Nasdaq 100 ETF",
                            "lastPrice": 705.06,
                            "netChange": -35.55000000000007,
                            "changePercent": -4.8000972171588385,
                            "prevClose": 740.61
                          },
                          {
                            "symbol": "DIA",
                            "name": "Dow Jones ETF",
                            "lastPrice": 509.7,
                            "netChange": -7.000000000000057,
                            "changePercent": -1.354751306367341,
                            "prevClose": 516.7
                          }
                        ]
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/symbol/AAPL/__data.json",
                        "route": "symbol_quote",
                        "generated_at": "2026-06-07T01:35:52.445Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "3dfab842-28c7-4fbc-809a-007f78e26363"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_symbol_ticker_quote",
        "description": "Returns quote with source-native fields and identifiers.",
        "tags": [
          "Symbol"
        ],
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/symbol/AAPL/quote",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:52.702Z"
      }
    },
    "/v1/treasury/{tenor}/yield": {
      "get": {
        "summary": "Treasury yield",
        "parameters": [
          {
            "name": "tenor",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_treasury_tenor_yieldResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": 1780796153390,
                        "route": "treasury_yield",
                        "tenor": "10-year",
                        "current_yield": 4.55,
                        "treasury_yield_date": "2026-06-05",
                        "treasury_list": [
                          {
                            "treasuryType": "1 Mo",
                            "shortSymbol": "1M",
                            "symbol": "1-month",
                            "title": "1 Month",
                            "category": "bill",
                            "weeks": 4,
                            "active": false
                          },
                          {
                            "treasuryType": "1.5 Month",
                            "shortSymbol": "1.5M",
                            "symbol": "1.5-month",
                            "title": "1.5 Month",
                            "category": "bill",
                            "weeks": 6,
                            "active": false
                          },
                          {
                            "treasuryType": "2 Mo",
                            "shortSymbol": "2M",
                            "symbol": "2-month",
                            "title": "2 Month",
                            "category": "bill",
                            "weeks": 8,
                            "active": false
                          }
                        ],
                        "chart_data": [
                          {
                            "x": "1990-01-02",
                            "y": 7.94
                          },
                          {
                            "x": "1990-01-03",
                            "y": 7.99
                          },
                          {
                            "x": "1990-01-04",
                            "y": 7.98
                          }
                        ],
                        "companion_etfs": [
                          {
                            "symbol": "SPY",
                            "name": "S&P 500 ETF",
                            "lastPrice": 737.55,
                            "netChange": -19.540000000000077,
                            "changePercent": -2.5809348954549782,
                            "prevClose": 757.09
                          },
                          {
                            "symbol": "QQQ",
                            "name": "Nasdaq 100 ETF",
                            "lastPrice": 705.06,
                            "netChange": -35.55000000000007,
                            "changePercent": -4.8000972171588385,
                            "prevClose": 740.61
                          },
                          {
                            "symbol": "DIA",
                            "name": "Dow Jones ETF",
                            "lastPrice": 509.7,
                            "netChange": -7.000000000000057,
                            "changePercent": -1.354751306367341,
                            "prevClose": 516.7
                          }
                        ]
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/treasury/10-year/__data.json",
                        "route": "treasury_yield",
                        "generated_at": "2026-06-07T01:35:53.441Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "ff18bb62-592b-4bd7-a433-7e90f4345f08"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_treasury_tenor_yield",
        "description": "Returns treasury yield from official Treasury tables with source-native date and amount fields.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/treasury/10-year/yield",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:53.916Z"
      }
    },
    "/v1/etf/ark/{ticker}/holdings": {
      "get": {
        "summary": "ARK ETF holdings",
        "parameters": [
          {
            "name": "ticker",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_etf_ark_ticker_holdingsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "as_of": "06/05/2026",
                        "route": "etf_ark_holdings",
                        "ticker": "ARKK",
                        "total": 0,
                        "holdings": []
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/etf/ark-invest/ARKK/__data.json",
                        "route": "etf_ark_holdings",
                        "generated_at": "2026-06-07T01:35:54.534Z",
                        "cache": {
                          "hit": false,
                          "age_s": 0
                        },
                        "request_id": "130224b0-db0a-49d9-8a9d-4bfca691ba3d"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_etf_ark_ticker_holdings",
        "description": "Returns ARK ETF holdings with source-native fund identifiers, holdings, profile, or performance fields.",
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/etf/ark/ARKK/holdings",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:54.789Z"
      }
    },
    "/v1/index/sp500/returns/history": {
      "get": {
        "summary": "S&P 500 returns history",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-scfin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "ScfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/scfin_get_index_sp500_returns_historyResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "ok": true,
                      "data": {
                        "rows": [
                          {
                            "year": 1926,
                            "total_return": 11.62
                          },
                          {
                            "year": 1927,
                            "total_return": 37.49
                          },
                          {
                            "year": 1928,
                            "total_return": 43.61
                          }
                        ],
                        "total": 100,
                        "first_year": 1926,
                        "last_year": 2025
                      },
                      "meta": {
                        "source": "slickcharts",
                        "source_url": "https://www.slickcharts.com/sp500/returns/history.json",
                        "route": "sp500_returns_history",
                        "generated_at": "2026-06-07T00:13:57.333Z",
                        "cache": {
                          "hit": true,
                          "state": "kv",
                          "age_s": 4917
                        },
                        "request_id": "98608336-aa6f-4e86-8f93-23c47ef3b40f"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "scfin_get_index_sp500_returns_history",
        "description": "Returns S&P 500 returns history with index, constituent, weight, or comparison fields from the upstream data shape.",
        "tags": [
          "Indices"
        ],
        "x-source-api": "scfin",
        "x-source-name": "Slickcharts",
        "x-source-upstream": "slickcharts.com",
        "x-docs-example-url": "https://api.scfin.bluedoor.sh/v1/index/sp500/returns/history",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:55.179Z"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ContactEmail": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Scfin-Contact"
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "API keys are available by emailing sam@bluedoor.sh."
      },
      "ScfinApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Scfin-Key"
      }
    },
    "schemas": {
      "ErrorEnvelope": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "scfin_get_companiesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "total": {
                "type": "integer"
              },
              "companies": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "as_of",
              "companies",
              "route",
              "total"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_comparison_pairResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "content": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "googPrice": {
                    "type": "number"
                  },
                  "googlPrice": {
                    "type": "number"
                  },
                  "priceDelta": {
                    "type": "number"
                  },
                  "priceDeltas": {
                    "type": "array",
                    "items": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      }
                    }
                  },
                  "indexEtfList": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "symbol": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "lastPrice": {
                          "type": "number"
                        },
                        "netChange": {
                          "type": "number"
                        },
                        "changePercent": {
                          "type": "number"
                        },
                        "prevClose": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "changePercent",
                        "lastPrice",
                        "name",
                        "netChange",
                        "prevClose",
                        "symbol"
                      ]
                    }
                  }
                },
                "required": [
                  "googPrice",
                  "googlPrice",
                  "indexEtfList",
                  "priceDelta",
                  "priceDeltas"
                ]
              }
            },
            "required": [
              "as_of",
              "content",
              "route",
              "slug"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_marketing_slugResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "content": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "holdingsList": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "symbol": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "lastPrice": {
                          "type": "number"
                        },
                        "netChange": {
                          "type": "number"
                        },
                        "changePercent": {
                          "type": "number"
                        },
                        "marketCap": {
                          "oneOf": [
                            {
                              "type": "number"
                            },
                            {
                              "type": "integer"
                            }
                          ]
                        },
                        "shares": {
                          "type": "integer"
                        },
                        "float": {
                          "type": "integer"
                        },
                        "rank": {
                          "type": "integer"
                        },
                        "weight": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "changePercent",
                        "float",
                        "lastPrice",
                        "marketCap",
                        "name",
                        "netChange",
                        "rank",
                        "shares",
                        "symbol",
                        "weight"
                      ]
                    }
                  },
                  "indexEtfList": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "symbol": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "lastPrice": {
                          "type": "number"
                        },
                        "netChange": {
                          "type": "number"
                        },
                        "changePercent": {
                          "type": "number"
                        },
                        "prevClose": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "changePercent",
                        "lastPrice",
                        "name",
                        "netChange",
                        "prevClose",
                        "symbol"
                      ]
                    }
                  },
                  "filingDate": {
                    "type": "string"
                  },
                  "reportDate": {
                    "type": "string"
                  },
                  "filingLink": {
                    "type": "string"
                  }
                },
                "required": [
                  "filingDate",
                  "filingLink",
                  "holdingsList",
                  "indexEtfList",
                  "reportDate"
                ]
              }
            },
            "required": [
              "as_of",
              "content",
              "route",
              "slug"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_currency_ticker_quoteResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "ticker": {
                "type": "string"
              },
              "quote": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  },
                  "symbolId": {
                    "nullable": true
                  },
                  "symbolName": {
                    "nullable": true
                  },
                  "displayReturns": {
                    "type": "boolean"
                  },
                  "loadTimestamp": {
                    "type": "integer"
                  },
                  "mobileDevice": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "displayReturns",
                  "loadTimestamp",
                  "mobileDevice",
                  "symbol",
                  "symbolId",
                  "symbolName"
                ]
              }
            },
            "required": [
              "as_of",
              "quote",
              "route",
              "ticker"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_index_index_viewResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "index": {
                "type": "string"
              },
              "view": {
                "type": "string"
              },
              "primary_key": {
                "type": "string"
              },
              "primary": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "year": {
                      "type": "integer"
                    },
                    "totalReturn": {
                      "type": "string"
                    },
                    "negative": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "negative",
                    "totalReturn",
                    "year"
                  ]
                }
              },
              "other_arrays": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "chartYears": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "chartReturns": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "chartReturns",
                  "chartYears"
                ]
              },
              "meta": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "ytdYear": {
                    "type": "integer"
                  },
                  "ytdDate": {
                    "type": "string"
                  },
                  "loadTimestamp": {
                    "type": "integer"
                  },
                  "mobileDevice": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "loadTimestamp",
                  "mobileDevice",
                  "ytdDate",
                  "ytdYear"
                ]
              }
            },
            "required": [
              "as_of",
              "index",
              "meta",
              "other_arrays",
              "primary",
              "primary_key",
              "route",
              "view"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_index_index_constituentsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "index": {
                "type": "string"
              },
              "total": {
                "type": "integer"
              },
              "constituents": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "lastPrice": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "netChange": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "changePercent": {
                      "type": "number"
                    },
                    "marketCap": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "shares": {
                      "type": "integer"
                    },
                    "float": {
                      "type": "integer"
                    },
                    "rank": {
                      "type": "integer"
                    },
                    "weight": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "changePercent",
                    "float",
                    "lastPrice",
                    "marketCap",
                    "name",
                    "netChange",
                    "rank",
                    "shares",
                    "symbol",
                    "weight"
                  ]
                }
              }
            },
            "required": [
              "as_of",
              "constituents",
              "index",
              "route",
              "total"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_symbol_ticker_viewResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "nullable": true
              },
              "route": {
                "type": "string"
              },
              "ticker": {
                "type": "string"
              },
              "view": {
                "type": "string"
              },
              "payload": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  },
                  "symbolName": {
                    "type": "string"
                  },
                  "displayEtfHoldings": {
                    "type": "boolean"
                  },
                  "displayReturns": {
                    "type": "boolean"
                  },
                  "mobileDevice": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "displayEtfHoldings",
                  "displayReturns",
                  "mobileDevice",
                  "symbol",
                  "symbolName"
                ]
              }
            },
            "required": [
              "as_of",
              "payload",
              "route",
              "ticker",
              "view"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_symbol_ticker_quoteResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "ticker": {
                "type": "string"
              },
              "quote": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  },
                  "symbolName": {
                    "type": "string"
                  },
                  "lastPrice": {
                    "type": "number"
                  },
                  "netChange": {
                    "type": "number"
                  },
                  "changePercent": {
                    "type": "number"
                  },
                  "prevClose": {
                    "type": "number"
                  },
                  "trailingPe": {
                    "type": "string"
                  },
                  "forwardPe": {
                    "type": "string"
                  },
                  "dividendAmount": {
                    "type": "number"
                  },
                  "dividendPercent": {
                    "type": "number"
                  },
                  "marketCap": {
                    "type": "string"
                  },
                  "trailingEps": {
                    "type": "string"
                  },
                  "forwardEps": {
                    "type": "string"
                  },
                  "displayEtfHoldings": {
                    "type": "boolean"
                  },
                  "displayReturns": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "changePercent",
                  "displayEtfHoldings",
                  "displayReturns",
                  "dividendAmount",
                  "dividendPercent",
                  "forwardEps",
                  "forwardPe",
                  "lastPrice",
                  "marketCap",
                  "netChange",
                  "prevClose",
                  "symbol",
                  "symbolName",
                  "trailingEps",
                  "trailingPe"
                ]
              },
              "companion_etfs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "lastPrice": {
                      "type": "number"
                    },
                    "netChange": {
                      "type": "number"
                    },
                    "changePercent": {
                      "type": "number"
                    },
                    "prevClose": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "changePercent",
                    "lastPrice",
                    "name",
                    "netChange",
                    "prevClose",
                    "symbol"
                  ]
                }
              }
            },
            "required": [
              "as_of",
              "companion_etfs",
              "quote",
              "route",
              "ticker"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_treasury_tenor_yieldResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "integer"
              },
              "route": {
                "type": "string"
              },
              "tenor": {
                "type": "string"
              },
              "current_yield": {
                "type": "number"
              },
              "treasury_yield_date": {
                "type": "string"
              },
              "treasury_list": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "treasuryType": {
                      "type": "string"
                    },
                    "shortSymbol": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string"
                    },
                    "weeks": {
                      "type": "integer"
                    },
                    "active": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "active",
                    "category",
                    "shortSymbol",
                    "symbol",
                    "title",
                    "treasuryType",
                    "weeks"
                  ]
                }
              },
              "chart_data": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "x": {
                      "type": "string"
                    },
                    "y": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    }
                  },
                  "required": [
                    "x",
                    "y"
                  ]
                }
              },
              "companion_etfs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "lastPrice": {
                      "type": "number"
                    },
                    "netChange": {
                      "type": "number"
                    },
                    "changePercent": {
                      "type": "number"
                    },
                    "prevClose": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "changePercent",
                    "lastPrice",
                    "name",
                    "netChange",
                    "prevClose",
                    "symbol"
                  ]
                }
              }
            },
            "required": [
              "as_of",
              "chart_data",
              "companion_etfs",
              "current_yield",
              "route",
              "tenor",
              "treasury_list",
              "treasury_yield_date"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_etf_ark_ticker_holdingsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "as_of": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "ticker": {
                "type": "string"
              },
              "total": {
                "type": "integer"
              },
              "holdings": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "as_of",
              "holdings",
              "route",
              "ticker",
              "total"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      },
      "scfin_get_index_sp500_returns_historyResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "year": {
                      "type": "integer"
                    },
                    "total_return": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    }
                  },
                  "required": [
                    "total_return",
                    "year"
                  ]
                }
              },
              "total": {
                "type": "integer"
              },
              "first_year": {
                "type": "integer"
              },
              "last_year": {
                "type": "integer"
              }
            },
            "required": [
              "first_year",
              "last_year",
              "rows",
              "total"
            ]
          },
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "source": {
                "type": "string"
              },
              "source_url": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "cache": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "hit": {
                    "type": "boolean"
                  },
                  "state": {
                    "type": "string"
                  },
                  "age_s": {
                    "type": "integer"
                  }
                },
                "required": [
                  "age_s",
                  "hit",
                  "state"
                ]
              },
              "request_id": {
                "type": "string"
              }
            },
            "required": [
              "cache",
              "generated_at",
              "request_id",
              "route",
              "source",
              "source_url"
            ]
          }
        },
        "required": [
          "data",
          "meta",
          "ok"
        ]
      }
    }
  },
  "x-generated-at": "2026-06-07T01:30:59.456Z",
  "x-source-api": "scfin",
  "x-source-base-url": "https://api.scfin.bluedoor.sh"
}
