{
  "openapi": "3.0.3",
  "info": {
    "title": "sifin API Reference",
    "version": "0.1.0",
    "description": "StockInvest source API for bluedoor Financial Data.\nSource-specific forecast and technical-score layer.\nCoverage: Ticker forecasts; Key stats and score; Peers and insiders; Heatmap, IPO, and analyst routes.\nGenerated from the live source contract and representative live API responses on 2026-06-07T01:30:59.456Z."
  },
  "servers": [
    {
      "url": "https://api.sifin.bluedoor.sh",
      "description": "sifin source API"
    }
  ],
  "externalDocs": {
    "description": "StockInvest source API docs",
    "url": "https://bluedoor.sh/apis/financial-data/sources/sifin"
  },
  "tags": [
    {
      "name": "Markets"
    },
    {
      "name": "Tickers"
    }
  ],
  "paths": {
    "/v1/exchanges": {
      "get": {
        "operationId": "sifin_get_exchanges",
        "summary": "Exchanges",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_exchangesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "exchanges",
                        "contract": "stockinvest.exchanges.meta",
                        "ttl_seconds": 86400,
                        "generated_at": "2026-06-07T00:14:09.423Z"
                      },
                      "data": {
                        "exchanges": [
                          {
                            "name": "NEO Exchange",
                            "symbol": "NEO",
                            "code": "CA",
                            "order": 0
                          },
                          {
                            "name": "NASDAQ Stock Exchange",
                            "symbol": "NASDAQ",
                            "code": "US",
                            "order": 1
                          },
                          {
                            "name": "New York Stock Exchange",
                            "symbol": "NYSE",
                            "code": "US",
                            "order": 2
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns exchanges with source-native fields and identifiers.",
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/exchanges",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:58.830Z"
      }
    },
    "/v1/calendar/earnings": {
      "get": {
        "operationId": "sifin_get_calendar_earnings",
        "summary": "Earnings calendar",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Calendar date in YYYY-MM-DD form. Defaults to current UTC date."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_calendar_earningsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "earnings_calendar",
                        "contract": "stockinvest.calendar.earnings",
                        "ttl_seconds": 3600,
                        "generated_at": "2026-06-07T00:38:30.809Z"
                      },
                      "data": {
                        "date": "2026-05-01",
                        "events": [
                          {
                            "symbol": "XOM",
                            "company_name": "Exxon",
                            "logo_url": "https://stockinvest.us/storage/logos/corporate.exxonmobil.com.png",
                            "market_cap_text": "621.411B",
                            "market_cap": 621410904000,
                            "exchange_name": "New York Stock Exchange",
                            "exchange_symbol": "NYSE",
                            "date": "2026-05-01",
                            "fiscal_date_end": "2026-03-31",
                            "eps_estimated": 0.984,
                            "expected_change_percent": 3.3789251514834,
                            "time": "bmo"
                          },
                          {
                            "symbol": "CVX",
                            "company_name": "Chevron",
                            "logo_url": "https://stockinvest.us/storage/logos/chevron.com.png",
                            "market_cap_text": "373.047B",
                            "market_cap": 373046596000,
                            "exchange_name": "New York Stock Exchange",
                            "exchange_symbol": "NYSE",
                            "date": "2026-05-01",
                            "fiscal_date_end": "2026-03-31",
                            "eps_estimated": 1,
                            "expected_change_percent": 3.2164300448106,
                            "time": "bmo"
                          },
                          {
                            "symbol": "LIN",
                            "company_name": "Linde plc",
                            "logo_url": "https://stockinvest.us/storage/logos/linde.com.png",
                            "market_cap_text": "234.955B",
                            "market_cap": 234954540000,
                            "exchange_name": "NASDAQ Stock Exchange",
                            "exchange_symbol": "NASDAQ",
                            "date": "2026-05-01",
                            "fiscal_date_end": "2026-03-31",
                            "eps_estimated": 4.27,
                            "expected_change_percent": 2.8311005066437,
                            "time": "bmo"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns earnings calendar with source-native dates, event fields, and pagination where available.",
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/calendar/earnings?date=2026-05-01",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:35:59.208Z"
      }
    },
    "/v1/market/heatmap": {
      "get": {
        "operationId": "sifin_get_market_heatmap",
        "summary": "Heatmap",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 50
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "market_capitalization"
            }
          },
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "percentage"
            }
          },
          {
            "name": "region",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "sp500"
            }
          },
          {
            "name": "partitionBy",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "sector"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_market_heatmapResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "market_heatmap",
                        "contract": "stockinvest.market.heatmap",
                        "ttl_seconds": 300,
                        "generated_at": "2026-06-07T01:35:59.785Z"
                      },
                      "data": {
                        "timestamp": 1780792844,
                        "query": {
                          "type": "market_capitalization",
                          "metric": "percentage",
                          "region": "sp500",
                          "partition_by": "sector"
                        },
                        "tiles": [
                          {
                            "symbol": "SNDK",
                            "company_name": "SanDisk Corp",
                            "exchange": "NASDAQ Stock Exchange",
                            "sector": null,
                            "market_capitalization": 260590571280,
                            "metric": -11.386161120204,
                            "source_ticker": "SNDK"
                          },
                          {
                            "symbol": "BNY",
                            "company_name": "BlackRock New York Municipal Income Trust",
                            "exchange": "New York Stock Exchange",
                            "sector": null,
                            "market_capitalization": 97733505810,
                            "metric": -1.1317872517706,
                            "source_ticker": "BNY"
                          },
                          {
                            "symbol": "MRSH",
                            "company_name": "Marsh & Mclennan Companies, Inc.",
                            "exchange": "New York Stock Exchange",
                            "sector": null,
                            "market_capitalization": 79708164800,
                            "metric": 2.5920873124147,
                            "source_ticker": "MRSH"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns heatmap with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/market/heatmap?limit=50&type=market_capitalization&metric=percentage&region=sp500&partitionBy=sector",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:00.086Z"
      }
    },
    "/v1/market/indexes": {
      "get": {
        "operationId": "sifin_get_market_indexes",
        "summary": "Indexes",
        "parameters": [
          {
            "name": "symbols",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "^GSPC,^IXIC,^DJI,EURUSD,BTCUSD"
            },
            "description": "Comma-separated StockInvest symbols, max 40."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_market_indexesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "market_indexes",
                        "contract": "stockinvest.market.indexes",
                        "ttl_seconds": 60,
                        "generated_at": "2026-06-07T01:36:00.867Z"
                      },
                      "data": {
                        "instruments": [
                          {
                            "symbol": "^GSPC",
                            "name": "S&P 500",
                            "price": 7383.74,
                            "change": -200.57,
                            "change_percent": -2.64454,
                            "volume": 3567472000,
                            "day_low": 7368.63,
                            "day_high": 7541.81,
                            "year_low": 5921.2,
                            "year_high": 7620.9,
                            "market_cap": 0,
                            "price_avg_50": 7119.5625,
                            "price_avg_200": 6847.722,
                            "exchange": "INDEX",
                            "open": 7537.36,
                            "previous_close": 7584.31,
                            "timestamp": 1780693236,
                            "country_code": "US",
                            "url": "https://stockinvest.us/stock/%5EGSPC"
                          },
                          {
                            "symbol": "^IXIC",
                            "name": "NASDAQ Composite",
                            "price": 25709.432,
                            "change": -1121.5255,
                            "change_percent": -4.17997,
                            "volume": 10178473125,
                            "day_low": 25648.469,
                            "day_high": 26572.248,
                            "year_low": 19334.98,
                            "year_high": 27190.21,
                            "market_cap": 0,
                            "price_avg_50": 24697.416,
                            "price_avg_200": 23300.25705,
                            "exchange": "INDEX",
                            "open": 26536.592,
                            "previous_close": 26830.9575,
                            "timestamp": 1780694159,
                            "country_code": "US",
                            "url": "https://stockinvest.us/stock/%5EIXIC"
                          },
                          {
                            "symbol": "^DJI",
                            "name": "Dow Jones Industrial Average",
                            "price": 50866.78,
                            "change": -695.15,
                            "change_percent": -1.34818,
                            "volume": 643352754,
                            "day_low": 50781.45,
                            "day_high": 51660.4,
                            "year_low": 41981.14,
                            "year_high": 51660.4,
                            "market_cap": 0,
                            "price_avg_50": 48873.51,
                            "price_avg_200": 47828.996,
                            "exchange": "INDEX",
                            "open": 51610.02,
                            "previous_close": 51561.93,
                            "timestamp": 1780693250,
                            "country_code": "US",
                            "url": "https://stockinvest.us/stock/%5EDJI"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns indexes with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/market/indexes?symbols=%5EGSPC,%5EIXIC,%5EDJI,EURUSD,BTCUSD",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:01.116Z"
      }
    },
    "/v1/market/trending": {
      "get": {
        "operationId": "sifin_get_market_trending",
        "summary": "Trending",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_market_trendingResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "market_trending",
                        "contract": "stockinvest.market.trending",
                        "ttl_seconds": 300,
                        "generated_at": "2026-06-07T01:36:01.634Z"
                      },
                      "data": {
                        "tickers": [
                          {
                            "symbol": "NVDA",
                            "company_name": "NVIDIA",
                            "exchange": {
                              "id": 1,
                              "symbol": "NASDAQ",
                              "suffix": "",
                              "country": "US"
                            },
                            "score": -4.881,
                            "date": "2026-06-05",
                            "price_text": "$205.10",
                            "price": 205.1,
                            "change_percent_1d": -6.2014085795299,
                            "change_percent_7d": -8.584417899803896,
                            "change_percent_1m": -1.3135735938026358,
                            "volume_text": "215.65M",
                            "volume": 215650478,
                            "market_cap_text": "5.296T",
                            "market_cap": 5296163860000,
                            "rank": 1,
                            "logo_url": "https://stockinvest.us/storage/logos/nvidia.com.png",
                            "stock_url": "https://stockinvest.us/stock/NVDA",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/NVDA/3/main?v=14ce7"
                          },
                          {
                            "symbol": "MU",
                            "company_name": "Micron",
                            "exchange": {
                              "id": 1,
                              "symbol": "NASDAQ",
                              "suffix": "",
                              "country": "US"
                            },
                            "score": 0.269,
                            "date": "2026-06-05",
                            "price_text": "$864.01",
                            "price": 864.01,
                            "change_percent_1d": -13.252008032129,
                            "change_percent_7d": -16.499797050466785,
                            "change_percent_1m": 29.61640588667696,
                            "volume_text": "75.471M",
                            "volume": 75470812,
                            "market_cap_text": "1.123T",
                            "market_cap": 1123219080000,
                            "rank": 2,
                            "logo_url": "https://stockinvest.us/storage/logos/micron.com.png",
                            "stock_url": "https://stockinvest.us/stock/MU",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/MU/3/main?v=14c7b"
                          },
                          {
                            "symbol": "SOXL",
                            "company_name": "SOXL",
                            "exchange": {
                              "id": 6,
                              "symbol": "NYSEARCA",
                              "suffix": "",
                              "country": "US"
                            },
                            "score": 1.663,
                            "date": "2026-06-05",
                            "price_text": "$182.54",
                            "price": 182.54,
                            "change_percent_1d": -30.513894175866,
                            "change_percent_7d": -19.596529093071403,
                            "change_percent_1m": 10.063310220078383,
                            "volume_text": "104.73M",
                            "volume": 104730185,
                            "market_cap_text": "53.701B",
                            "market_cap": 53701332893,
                            "rank": 3,
                            "logo_url": null,
                            "stock_url": "https://stockinvest.us/stock/SOXL",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/SOXL/3/main?v=1844"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns trending with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/market/trending?limit=10",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:01.915Z"
      }
    },
    "/v1/news/analyst": {
      "get": {
        "operationId": "sifin_get_news_analyst",
        "summary": "Analyst news",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_news_analystResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "analyst_news",
                        "contract": "stockinvest.news.analyst",
                        "ttl_seconds": 300,
                        "generated_at": "2026-06-07T01:36:02.393Z"
                      },
                      "data": {
                        "updated": 3,
                        "updated_at": "2026-06-07 01:32:11",
                        "flash_news": [
                          {
                            "sentence": "Trump's jawboning of the market is driving volatility and prompting cautious positioning among equity traders."
                          },
                          {
                            "sentence": "Trump signals interest in the US owning stakes in top AI labs, a development that could affect AI stock sentiment."
                          },
                          {
                            "sentence": "The jobs report weighed on solar and AI stocks, as higher interest rates threaten growth names."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns analyst news with headline, timestamp, symbol, and source fields where available.",
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/news/analyst",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:02.645Z"
      }
    },
    "/v1/tickers/{symbol}/forecast": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_forecast",
        "summary": "Forecast",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_forecastResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_forecast",
                        "contract": "stockinvest.predictions.symbol",
                        "ttl_seconds": 300,
                        "generated_at": "2026-06-07T01:36:03.125Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "price": 307.34,
                        "currency": "USD",
                        "forecast_date": "2026-06-08",
                        "votes": {
                          "up": 0,
                          "down": 0
                        },
                        "user_requested": false,
                        "user_prediction": null,
                        "predictions": []
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns forecast with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/forecast",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:03.346Z"
      }
    },
    "/v1/tickers/{symbol}/insiders": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_insiders",
        "summary": "Insiders",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_insidersResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_insiders",
                        "contract": "stockinvest.ticker.insiders",
                        "ttl_seconds": 3600,
                        "generated_at": "2026-06-07T01:29:13.887Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "insider_power": -54.08,
                        "insider_power_color": "#B30000",
                        "sentiment_summary": "Insider sentiment for Apple (AAPL) is Negative, driven by significant open-market selling from key executives. This negative signal outweighs the higher total volume of low-impact acquisitions (e.g., stock awards).",
                        "detail_text": "Over the last year, insiders have collectively bought or received $0.40B worth of shares and sold $0.25B across 100 transactions. However, focusing on high-impact open-market transactions, insiders purchased $0 and sold $0.14B worth of Apple  stocks. The most recent trade was made 11 days ago by Levinson Arthur D (Dire...",
                        "buy_volume": 1528921,
                        "sell_volume": 996775,
                        "transaction_count": 100,
                        "recent_trades": [
                          {
                            "transaction_date": "May 27, 2026",
                            "reporting_name": "Levinson Arthur D",
                            "owner_type": "Director",
                            "side": "Sell",
                            "transaction_type": "G-Gift",
                            "security_name": "Common Stock",
                            "securities_transacted": 65000,
                            "transaction_value": 0
                          },
                          {
                            "transaction_date": "May 27, 2026",
                            "reporting_name": "Levinson Arthur D",
                            "owner_type": "Director",
                            "side": "Sell",
                            "transaction_type": "S-Sale",
                            "security_name": "Common Stock",
                            "securities_transacted": 50000,
                            "transaction_value": 15551000
                          },
                          {
                            "transaction_date": "May 08, 2026",
                            "reporting_name": "Borders Ben",
                            "owner_type": "Principal Accounting Officer",
                            "side": "Sell",
                            "transaction_type": "S-Sale",
                            "security_name": "Common Stock",
                            "securities_transacted": 1274,
                            "transaction_value": 369460
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns insiders with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/insiders",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:03.723Z"
      }
    },
    "/v1/tickers/{symbol}/key-stats": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_key_stats",
        "summary": "Key stats",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_key_statsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_key_stats",
                        "contract": "stockinvest.ticker.key_stats",
                        "ttl_seconds": 900,
                        "generated_at": "2026-06-07T01:29:14.731Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "asset_type": "Stock",
                        "price": 307.34,
                        "currency": "USD",
                        "risk_level": "medium",
                        "change_ytd_percent": 13.405409394487,
                        "stop_loss": 296.0057844314721,
                        "stop_loss_price": 296.01,
                        "stop_loss_percent": -3.69,
                        "support": {
                          "stop_loss_reason": "This stock has medium daily movements and this gives medium risk.  There is a sell signal from a pivot top found 3 days ago.",
                          "risk_summary_html": "This stock has average movements during the day and with good trading volume, the risk is considered to be medium. During the last day, the stock moved <strong>$8.02</strong> between high and low, or <strong>2.61%</strong>. For the last week, the stock has had daily average volatility of <strong>2.25%</strong>."
                        },
                        "true_range": {
                          "period": 14,
                          "value": 6.0496346884762975,
                          "percent": 1.9683850746652884,
                          "day_swing_percent": 1.9879503334934168,
                          "range_low": 304.3151826557618,
                          "range_high": 310.36481734423813
                        },
                        "volume_text": "64.824M",
                        "yield_ttm_percent": 0.34164117915013,
                        "stats": {
                          "beta": 1.086,
                          "pe_ratio": 36.885107649357536,
                          "dividend_yield_percent": 0.63,
                          "next_dividend_date": null,
                          "ttm_dividend_rate": 1.05,
                          "market_capitalization": null
                        },
                        "next_earnings": {
                          "EPSReportDiffDays": 53,
                          "eps_date": "2026-07-30T00:00:00.000000Z",
                          "eps_estimated": 1.86,
                          "eps_market_time": "amc",
                          "EPSReportDate": "Jul 30, 2026",
                          "dayPluralized": "days",
                          "earningsReportRoute": "/earnings-report/AAPL",
                          "EPSReportDateFuture": true,
                          "expected_change": 2.0910597317593598,
                          "showEarningsWarning": false
                        },
                        "next_date": "Jun 08, 2026",
                        "fair_opening_price": 309.8866666666666
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns key stats with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/key-stats",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:04.097Z"
      }
    },
    "/v1/tickers/{symbol}/news": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_news",
        "summary": "News",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_newsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_news",
                        "contract": "stockinvest.ticker.news",
                        "ttl_seconds": 600,
                        "generated_at": "2026-06-07T01:29:15.578Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "articles": [
                          {
                            "title": "Nvidia Launches RTX Spark with Microsoft and Rolls Out AI Agent Chips",
                            "date_label": "Monday, June 01, 2026",
                            "excerpt": "Nvidia debuts its RTX Spark processor for Windows PCs, partnering with Microsoft and MediaTek. New AI-focused Vera chips and next-gen Vera Rubin processors head into production, signaling a big push into AI hardware.",
                            "url": "https://stockinvest.us/digest/nvidia-launches-rtx-spark-with-microsoft-and-rolls-out-ai-agent-chips",
                            "image_url": "https://stockinvest.us/storage/blog/image?image=blog-stockinvest%2F2026%2F06%2Fnvidias-rtx-spark-silicon-brings-supercomputer-ambitions-to_gckf.1920-c538b1.webp&w=700",
                            "tickers": [
                              {
                                "symbol": "NVDA",
                                "name": "NVIDIA",
                                "url": "https://stockinvest.us/stock/NVDA",
                                "logo_url": "https://stockinvest.us/storage/logos/nvidia.com.png"
                              },
                              {
                                "symbol": "MSFT",
                                "name": "Microsoft",
                                "url": "https://stockinvest.us/stock/MSFT",
                                "logo_url": "https://stockinvest.us/storage/logos/microsoft.com.png"
                              },
                              {
                                "symbol": "DELL",
                                "name": "Dell Technologies Inc.",
                                "url": "https://stockinvest.us/stock/DELL",
                                "logo_url": "https://stockinvest.us/storage/logos/delltechnologies.com.png"
                              }
                            ]
                          },
                          {
                            "title": "Indian Court Orders Apple to Cooperate in Ongoing Antitrust Investigation",
                            "date_label": "Monday, May 18, 2026",
                            "excerpt": "India's Delhi High Court directs Apple to fully cooperate with antitrust probe over iPhone app market practices, denying the company's plea to pause the case despite pending legal challenges to penalty laws.",
                            "url": "https://stockinvest.us/digest/indian-court-orders-apple-to-cooperate-in-ongoing-antitrust-investigation",
                            "image_url": "https://stockinvest.us/storage/blog/image?image=blog-stockinvest%2F2026%2F05%2Funtitled-1_2-sixteen_nine-477b19.webp&w=250",
                            "tickers": [
                              {
                                "symbol": "AAPL",
                                "name": "Apple",
                                "url": "https://stockinvest.us/stock/AAPL",
                                "logo_url": "https://stockinvest.us/storage/logos/apple.com.png"
                              }
                            ]
                          },
                          {
                            "title": "Oil Prices Retreat Amid Uncertain Iran Ceasefire and Trump's China Visit",
                            "date_label": "Wednesday, May 13, 2026",
                            "excerpt": "Oil prices dipped as the fragile ceasefire involving Iran wavers and President Trump embarks on a high-stakes trip to China, highlighting geopolitical tensions impacting global energy markets.",
                            "url": "https://stockinvest.us/digest/oil-prices-retreat-amid-uncertain-iran-ceasefire-and-trumps-china-visit",
                            "image_url": "https://stockinvest.us/storage/blog/image?image=blog-stockinvest%2F2026%2F05%2F5256-af294a.webp&w=250",
                            "tickers": [
                              {
                                "symbol": "AAPL",
                                "name": "Apple",
                                "url": "https://stockinvest.us/stock/AAPL",
                                "logo_url": "https://stockinvest.us/storage/logos/apple.com.png"
                              },
                              {
                                "symbol": "NVDA",
                                "name": "NVIDIA",
                                "url": "https://stockinvest.us/stock/NVDA",
                                "logo_url": "https://stockinvest.us/storage/logos/nvidia.com.png"
                              },
                              {
                                "symbol": "TSLA",
                                "name": "Tesla",
                                "url": "https://stockinvest.us/stock/TSLA",
                                "logo_url": "https://stockinvest.us/storage/logos/tesla.com.png"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns news with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/news",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:04.489Z"
      }
    },
    "/v1/tickers/{symbol}/peers": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_peers",
        "summary": "Peers",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_peersResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_peers",
                        "contract": "stockinvest.ticker.peers",
                        "ttl_seconds": 1800,
                        "generated_at": "2026-06-07T01:29:16.400Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "peers": [
                          {
                            "symbol": "AAPL",
                            "price_text": "$307.34",
                            "change_percent_1d": -1.24987951033,
                            "logo_url": "https://stockinvest.us/storage/logos/apple.com.png",
                            "stock_url": "https://stockinvest.us/stock/AAPL",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/AAPL/3/main?v=14845"
                          },
                          {
                            "symbol": "MSFT",
                            "price_text": "$416.67",
                            "change_percent_1d": -2.6585679243079,
                            "logo_url": "https://stockinvest.us/storage/logos/microsoft.com.png",
                            "stock_url": "https://stockinvest.us/stock/MSFT",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/MSFT/3/main?v=147d0"
                          },
                          {
                            "symbol": "ADBE",
                            "price_text": "$251.44",
                            "change_percent_1d": -2.701029332095,
                            "logo_url": "https://stockinvest.us/storage/logos/adobe.com.png",
                            "stock_url": "https://stockinvest.us/stock/ADBE",
                            "chart_url": "https://stockinvest.us/json/chart/2026/6/5/ADBE/3/main?v=147e2"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns peers with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/peers",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:04.855Z"
      }
    },
    "/v1/tickers/{symbol}/score": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_score",
        "summary": "Score",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_scoreResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_score",
                        "contract": "stockinvest.ticker.box_stats",
                        "ttl_seconds": 300,
                        "generated_at": "2026-06-07T01:36:05.350Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "price": 307.34,
                        "currency": "USD",
                        "risk_level": "medium",
                        "support_1": 280.14,
                        "resistance_1": 310.26,
                        "average_weekly_price_spread_percent": 2.25,
                        "true_range": {
                          "period": 14,
                          "value": 6.0496346884762975,
                          "percent": 1.9683850746652884,
                          "day_swing_percent": 1.9879503334934168,
                          "range_low": 304.3151826557618,
                          "range_high": 310.36481734423813
                        },
                        "last_analyst_rating_sentence": "On Jun 03, 2026, it was reported that UBS gave AAPL a \"Neutral\" grade with a \"hold\" action.",
                        "analyst_rating_90_day_sentence": null
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns score with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/score",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:05.604Z"
      }
    },
    "/v1/tickers/{symbol}/dividends/yield": {
      "get": {
        "operationId": "sifin_get_tickers_symbol_dividends_yield",
        "summary": "Dividend yield",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "AAPL"
            },
            "description": "Ticker symbol as used by StockInvest."
          },
          {
            "name": "refresh",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "description": "Bypass the edge cache when truthy."
          },
          {
            "name": "x-sifin-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."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/sifin_get_tickers_symbol_dividends_yieldResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "stockinvest",
                        "route": "ticker_dividend_yield",
                        "contract": "stockinvest.ticker.dividend_yield",
                        "ttl_seconds": 21600,
                        "generated_at": "2026-06-07T00:14:07.400Z"
                      },
                      "data": {
                        "symbol": "AAPL",
                        "dividends": [
                          {
                            "date": "Aug 12, 2021",
                            "adjusted_amount": 0.22,
                            "yield_percent": 0.148
                          },
                          {
                            "date": "Nov 11, 2021",
                            "adjusted_amount": 0.22,
                            "yield_percent": 0.149
                          },
                          {
                            "date": "Feb 10, 2022",
                            "adjusted_amount": 0.22,
                            "yield_percent": 0.128
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "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 limit exceeded.",
            "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": "Origin circuit open or origin challenge detected.",
            "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."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "SifinApiKey": []
          }
        ],
        "description": "Returns dividend yield with source-native fields and identifiers.",
        "tags": [
          "Tickers"
        ],
        "x-source-api": "sifin",
        "x-source-name": "StockInvest",
        "x-source-upstream": "stockinvest.us",
        "x-docs-example-url": "https://api.sifin.bluedoor.sh/v1/tickers/AAPL/dividends/yield",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:36:05.978Z"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ContactEmail": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Sifin-Contact"
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "API keys are available by emailing sam@bluedoor.sh."
      },
      "SifinApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Sifin-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
          }
        }
      },
      "sifin_get_exchangesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "exchanges": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "order": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "code",
                    "name",
                    "order",
                    "symbol"
                  ]
                }
              }
            },
            "required": [
              "exchanges"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_calendar_earningsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "date": {
                "type": "string"
              },
              "events": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "company_name": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "logo_url": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "market_cap_text": {
                      "type": "string"
                    },
                    "market_cap": {
                      "type": "integer"
                    },
                    "exchange_name": {
                      "type": "string"
                    },
                    "exchange_symbol": {
                      "type": "string"
                    },
                    "date": {
                      "type": "string"
                    },
                    "fiscal_date_end": {
                      "type": "string"
                    },
                    "eps_estimated": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "expected_change_percent": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "time": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    }
                  },
                  "required": [
                    "company_name",
                    "date",
                    "eps_estimated",
                    "exchange_name",
                    "exchange_symbol",
                    "expected_change_percent",
                    "fiscal_date_end",
                    "logo_url",
                    "market_cap",
                    "market_cap_text",
                    "symbol",
                    "time"
                  ]
                }
              }
            },
            "required": [
              "date",
              "events"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_market_heatmapResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "timestamp": {
                "type": "integer"
              },
              "query": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "type": {
                    "type": "string"
                  },
                  "metric": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "partition_by": {
                    "type": "string"
                  }
                },
                "required": [
                  "metric",
                  "partition_by",
                  "region",
                  "type"
                ]
              },
              "tiles": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "company_name": {
                      "type": "string"
                    },
                    "exchange": {
                      "type": "string"
                    },
                    "sector": {
                      "oneOf": [
                        {
                          "nullable": true
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "market_capitalization": {
                      "type": "integer"
                    },
                    "metric": {
                      "type": "number"
                    },
                    "source_ticker": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "company_name",
                    "exchange",
                    "market_capitalization",
                    "metric",
                    "sector",
                    "source_ticker",
                    "symbol"
                  ]
                }
              }
            },
            "required": [
              "query",
              "tiles",
              "timestamp"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_market_indexesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "instruments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "change": {
                      "type": "number"
                    },
                    "change_percent": {
                      "type": "number"
                    },
                    "volume": {
                      "type": "integer"
                    },
                    "day_low": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "day_high": {
                      "type": "number"
                    },
                    "year_low": {
                      "type": "number"
                    },
                    "year_high": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "market_cap": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "price_avg_50": {
                      "type": "number"
                    },
                    "price_avg_200": {
                      "type": "number"
                    },
                    "exchange": {
                      "type": "string"
                    },
                    "open": {
                      "type": "number"
                    },
                    "previous_close": {
                      "type": "number"
                    },
                    "timestamp": {
                      "type": "integer"
                    },
                    "country_code": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "change",
                    "change_percent",
                    "country_code",
                    "day_high",
                    "day_low",
                    "exchange",
                    "market_cap",
                    "name",
                    "open",
                    "previous_close",
                    "price",
                    "price_avg_200",
                    "price_avg_50",
                    "symbol",
                    "timestamp",
                    "url",
                    "volume",
                    "year_high",
                    "year_low"
                  ]
                }
              }
            },
            "required": [
              "instruments"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_market_trendingResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "tickers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "company_name": {
                      "type": "string"
                    },
                    "exchange": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "integer"
                        },
                        "symbol": {
                          "type": "string"
                        },
                        "suffix": {
                          "type": "string"
                        },
                        "country": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "country",
                        "id",
                        "suffix",
                        "symbol"
                      ]
                    },
                    "score": {
                      "type": "number"
                    },
                    "date": {
                      "type": "string"
                    },
                    "price_text": {
                      "type": "string"
                    },
                    "price": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "change_percent_1d": {
                      "type": "number"
                    },
                    "change_percent_7d": {
                      "type": "number"
                    },
                    "change_percent_1m": {
                      "type": "number"
                    },
                    "volume_text": {
                      "type": "string"
                    },
                    "volume": {
                      "type": "integer"
                    },
                    "market_cap_text": {
                      "type": "string"
                    },
                    "market_cap": {
                      "type": "integer"
                    },
                    "rank": {
                      "type": "integer"
                    },
                    "logo_url": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "nullable": true
                        }
                      ]
                    },
                    "stock_url": {
                      "type": "string"
                    },
                    "chart_url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "change_percent_1d",
                    "change_percent_1m",
                    "change_percent_7d",
                    "chart_url",
                    "company_name",
                    "date",
                    "exchange",
                    "logo_url",
                    "market_cap",
                    "market_cap_text",
                    "price",
                    "price_text",
                    "rank",
                    "score",
                    "stock_url",
                    "symbol",
                    "volume",
                    "volume_text"
                  ]
                }
              }
            },
            "required": [
              "tickers"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_news_analystResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "updated": {
                "type": "integer"
              },
              "updated_at": {
                "type": "string"
              },
              "flash_news": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "sentence": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "sentence"
                  ]
                }
              }
            },
            "required": [
              "flash_news",
              "updated",
              "updated_at"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_forecastResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "price": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "forecast_date": {
                "type": "string"
              },
              "votes": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "up": {
                    "type": "integer"
                  },
                  "down": {
                    "type": "integer"
                  }
                },
                "required": [
                  "down",
                  "up"
                ]
              },
              "user_requested": {
                "type": "boolean"
              },
              "user_prediction": {
                "nullable": true
              },
              "predictions": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "currency",
              "forecast_date",
              "predictions",
              "price",
              "symbol",
              "user_prediction",
              "user_requested",
              "votes"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_insidersResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "insider_power": {
                "type": "number"
              },
              "insider_power_color": {
                "type": "string"
              },
              "sentiment_summary": {
                "type": "string"
              },
              "detail_text": {
                "type": "string"
              },
              "buy_volume": {
                "type": "integer"
              },
              "sell_volume": {
                "type": "integer"
              },
              "transaction_count": {
                "type": "integer"
              },
              "recent_trades": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "transaction_date": {
                      "type": "string"
                    },
                    "reporting_name": {
                      "type": "string"
                    },
                    "owner_type": {
                      "type": "string"
                    },
                    "side": {
                      "type": "string"
                    },
                    "transaction_type": {
                      "type": "string"
                    },
                    "security_name": {
                      "type": "string"
                    },
                    "securities_transacted": {
                      "type": "integer"
                    },
                    "transaction_value": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  },
                  "required": [
                    "owner_type",
                    "reporting_name",
                    "securities_transacted",
                    "security_name",
                    "side",
                    "transaction_date",
                    "transaction_type",
                    "transaction_value"
                  ]
                }
              }
            },
            "required": [
              "buy_volume",
              "detail_text",
              "insider_power",
              "insider_power_color",
              "recent_trades",
              "sell_volume",
              "sentiment_summary",
              "symbol",
              "transaction_count"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_key_statsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "asset_type": {
                "type": "string"
              },
              "price": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "risk_level": {
                "type": "string"
              },
              "change_ytd_percent": {
                "type": "number"
              },
              "stop_loss": {
                "type": "number"
              },
              "stop_loss_price": {
                "type": "number"
              },
              "stop_loss_percent": {
                "type": "number"
              },
              "support": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "stop_loss_reason": {
                    "type": "string"
                  },
                  "risk_summary_html": {
                    "type": "string"
                  }
                },
                "required": [
                  "risk_summary_html",
                  "stop_loss_reason"
                ]
              },
              "true_range": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "period": {
                    "type": "integer"
                  },
                  "value": {
                    "type": "number"
                  },
                  "percent": {
                    "type": "number"
                  },
                  "day_swing_percent": {
                    "type": "number"
                  },
                  "range_low": {
                    "type": "number"
                  },
                  "range_high": {
                    "type": "number"
                  }
                },
                "required": [
                  "day_swing_percent",
                  "percent",
                  "period",
                  "range_high",
                  "range_low",
                  "value"
                ]
              },
              "volume_text": {
                "type": "string"
              },
              "yield_ttm_percent": {
                "type": "number"
              },
              "stats": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "beta": {
                    "type": "number"
                  },
                  "pe_ratio": {
                    "type": "number"
                  },
                  "dividend_yield_percent": {
                    "type": "number"
                  },
                  "next_dividend_date": {
                    "nullable": true
                  },
                  "ttm_dividend_rate": {
                    "type": "number"
                  },
                  "market_capitalization": {
                    "nullable": true
                  }
                },
                "required": [
                  "beta",
                  "dividend_yield_percent",
                  "market_capitalization",
                  "next_dividend_date",
                  "pe_ratio",
                  "ttm_dividend_rate"
                ]
              },
              "next_earnings": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "EPSReportDiffDays": {
                    "type": "integer"
                  },
                  "eps_date": {
                    "type": "string"
                  },
                  "eps_estimated": {
                    "type": "number"
                  },
                  "eps_market_time": {
                    "type": "string"
                  },
                  "EPSReportDate": {
                    "type": "string"
                  },
                  "dayPluralized": {
                    "type": "string"
                  },
                  "earningsReportRoute": {
                    "type": "string"
                  },
                  "EPSReportDateFuture": {
                    "type": "boolean"
                  },
                  "expected_change": {
                    "type": "number"
                  },
                  "showEarningsWarning": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "EPSReportDate",
                  "EPSReportDateFuture",
                  "EPSReportDiffDays",
                  "dayPluralized",
                  "earningsReportRoute",
                  "eps_date",
                  "eps_estimated",
                  "eps_market_time",
                  "expected_change",
                  "showEarningsWarning"
                ]
              },
              "next_date": {
                "type": "string"
              },
              "fair_opening_price": {
                "type": "number"
              }
            },
            "required": [
              "asset_type",
              "change_ytd_percent",
              "currency",
              "fair_opening_price",
              "next_date",
              "next_earnings",
              "price",
              "risk_level",
              "stats",
              "stop_loss",
              "stop_loss_percent",
              "stop_loss_price",
              "support",
              "symbol",
              "true_range",
              "volume_text",
              "yield_ttm_percent"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_newsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "articles": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "title": {
                      "type": "string"
                    },
                    "date_label": {
                      "type": "string"
                    },
                    "excerpt": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "image_url": {
                      "type": "string"
                    },
                    "tickers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": true,
                        "properties": {
                          "symbol": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "logo_url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "logo_url",
                          "name",
                          "symbol",
                          "url"
                        ]
                      }
                    }
                  },
                  "required": [
                    "date_label",
                    "excerpt",
                    "image_url",
                    "tickers",
                    "title",
                    "url"
                  ]
                }
              }
            },
            "required": [
              "articles",
              "symbol"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_peersResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "peers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "price_text": {
                      "type": "string"
                    },
                    "change_percent_1d": {
                      "type": "number"
                    },
                    "logo_url": {
                      "type": "string"
                    },
                    "stock_url": {
                      "type": "string"
                    },
                    "chart_url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "change_percent_1d",
                    "chart_url",
                    "logo_url",
                    "price_text",
                    "stock_url",
                    "symbol"
                  ]
                }
              }
            },
            "required": [
              "peers",
              "symbol"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_scoreResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "price": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "risk_level": {
                "type": "string"
              },
              "support_1": {
                "type": "number"
              },
              "resistance_1": {
                "type": "number"
              },
              "average_weekly_price_spread_percent": {
                "type": "number"
              },
              "true_range": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "period": {
                    "type": "integer"
                  },
                  "value": {
                    "type": "number"
                  },
                  "percent": {
                    "type": "number"
                  },
                  "day_swing_percent": {
                    "type": "number"
                  },
                  "range_low": {
                    "type": "number"
                  },
                  "range_high": {
                    "type": "number"
                  }
                },
                "required": [
                  "day_swing_percent",
                  "percent",
                  "period",
                  "range_high",
                  "range_low",
                  "value"
                ]
              },
              "last_analyst_rating_sentence": {
                "type": "string"
              },
              "analyst_rating_90_day_sentence": {
                "nullable": true
              }
            },
            "required": [
              "analyst_rating_90_day_sentence",
              "average_weekly_price_spread_percent",
              "currency",
              "last_analyst_rating_sentence",
              "price",
              "resistance_1",
              "risk_level",
              "support_1",
              "symbol",
              "true_range"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "sifin_get_tickers_symbol_dividends_yieldResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "contract": {
                "type": "string"
              },
              "ttl_seconds": {
                "type": "integer"
              },
              "generated_at": {
                "type": "string"
              }
            },
            "required": [
              "contract",
              "generated_at",
              "provider",
              "route",
              "ttl_seconds"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "symbol": {
                "type": "string"
              },
              "dividends": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "date": {
                      "type": "string"
                    },
                    "adjusted_amount": {
                      "type": "number"
                    },
                    "yield_percent": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "adjusted_amount",
                    "date",
                    "yield_percent"
                  ]
                }
              }
            },
            "required": [
              "dividends",
              "symbol"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      }
    }
  },
  "x-generated-at": "2026-06-07T01:30:59.456Z",
  "x-source-api": "sifin",
  "x-source-base-url": "https://api.sifin.bluedoor.sh"
}
