{
  "openapi": "3.1.0",
  "info": {
    "title": "ofin API Reference",
    "version": "0.1.0",
    "description": "OTC Markets source API for bluedoor Financial Data.\nOTC-specific issuer, disclosure, compliance, and market-status coverage.\nCoverage: OTC issuer lists; Compliance flags; Financial reports and filings; Dividends, splits, and insiders.\nGenerated from the live source contract and representative live API responses on 2026-06-07T01:30:59.456Z."
  },
  "servers": [
    {
      "url": "https://api.ofin.bluedoor.sh",
      "description": "ofin source API"
    }
  ],
  "externalDocs": {
    "description": "OTC Markets source API docs",
    "url": "https://bluedoor.sh/apis/financial-data/sources/ofin"
  },
  "tags": [
    {
      "name": "Compliance"
    },
    {
      "name": "Markets"
    },
    {
      "name": "News"
    },
    {
      "name": "Reg SHO"
    },
    {
      "name": "SEC Filings"
    },
    {
      "name": "Securities"
    }
  ],
  "paths": {
    "/v1/reg-sho": {
      "get": {
        "summary": "List",
        "operationId": "ofin_get_reg_sho",
        "parameters": [
          {
            "name": "positionDate",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "symbol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_reg_shoResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "reg_sho.list",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:17.902Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:17.902Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 79,
                        "pages": 27,
                        "currentPage": 1,
                        "pageSize": 3,
                        "sortOn": "symbol",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "positionDate": 1777867200000,
                            "securityId": 405683,
                            "securityName": "ZEO ENERGY CORP CL A",
                            "symbol": "ZEO",
                            "isCaveatEmptor": false,
                            "venue": "Nasdaq",
                            "regShoFlag": true,
                            "isRule4320": false,
                            "tierId": 0,
                            "tierCode": "NT",
                            "tierName": "No Tier",
                            "rule4320": false
                          },
                          {
                            "positionDate": 1777867200000,
                            "securityId": 421965,
                            "securityName": "YY GROUP HOLDING LIMITED CLASS",
                            "symbol": "YYGH",
                            "isCaveatEmptor": false,
                            "venue": "Nasdaq",
                            "regShoFlag": true,
                            "isRule4320": false,
                            "tierId": 0,
                            "tierCode": "NT",
                            "tierName": "No Tier",
                            "rule4320": false
                          },
                          {
                            "positionDate": 1777867200000,
                            "securityId": 208388,
                            "securityName": "YASKAWA ELECTRIC UNSP/ADR",
                            "symbol": "YASKY",
                            "isCaveatEmptor": false,
                            "venue": "Pink Limited",
                            "regShoFlag": false,
                            "isRule4320": true,
                            "tierId": 21,
                            "tierCode": "PL",
                            "tierName": "Pink Limited",
                            "tierGroupId": "PS",
                            "rule4320": true
                          }
                        ],
                        "singular": "Threshold Security",
                        "plural": "Threshold Securities",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns list with source-native fields and identifiers.",
        "tags": [
          "Reg SHO"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/reg-sho?pageSize=3",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:17.921Z"
      }
    },
    "/v1/sec-filings": {
      "get": {
        "summary": "List",
        "operationId": "ofin_get_sec_filings",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_sec_filingsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "sec_filings.list",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:18.407Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:18.407Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 299,
                        "pages": 12,
                        "currentPage": 1,
                        "pageSize": 25,
                        "sortOn": "receivedDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "exchangeId": 8,
                            "id": 19519401,
                            "dcn": "0001213900-26-065928",
                            "secFileNo": "001-40964",
                            "formTypeId": 135,
                            "formType": "8-K",
                            "receivedDate": 1780694867000,
                            "filedDate": 1780632000000,
                            "periodEndDate": 1780372800000,
                            "sizeOfFiling": 1995178,
                            "hasPdf": false,
                            "hasExcel": true,
                            "filedAsHtml": true,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 1180320,
                            "companyName": "ZOOMCAR HOLDINGS, INC.",
                            "companyCik": "0001854275",
                            "symbol": "ZCAR",
                            "tierCode": "QB",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          },
                          {
                            "exchangeId": 8,
                            "id": 19519389,
                            "dcn": "0001104659-26-071050",
                            "secFileNo": "001-31556",
                            "formTypeId": 125,
                            "formType": "6-K",
                            "receivedDate": 1780694818000,
                            "filedDate": 1780632000000,
                            "periodEndDate": 1780632000000,
                            "sizeOfFiling": 19290,
                            "hasPdf": false,
                            "hasExcel": true,
                            "filedAsHtml": true,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 11605,
                            "companyName": "FAIRFAX FINANCIAL HOLDINGS LTD/ CAN",
                            "companyCik": "0000915191",
                            "symbol": "FRFHF",
                            "tierCode": "PL",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          },
                          {
                            "exchangeId": 8,
                            "id": 19519343,
                            "dcn": "0001750155-26-000097",
                            "secFileNo": "000-56364",
                            "formTypeId": 135,
                            "formType": "8-K",
                            "receivedDate": 1780694487000,
                            "filedDate": 1780632000000,
                            "periodEndDate": 1780459200000,
                            "sizeOfFiling": 187033,
                            "hasPdf": false,
                            "hasExcel": true,
                            "filedAsHtml": true,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 1063708,
                            "companyName": "CHARLOTTE'S WEB HOLDINGS, INC.",
                            "companyCik": "0001750155",
                            "symbol": "CWBHF",
                            "tierCode": "QX",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          }
                        ],
                        "singular": "Sec Filing",
                        "plural": "Sec Filings",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns list with source-native fields and identifiers.",
        "tags": [
          "SEC Filings"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/sec-filings",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:18.428Z"
      }
    },
    "/v1/securities": {
      "get": {
        "summary": "List",
        "operationId": "ofin_get_securities",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securitiesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "securities.list",
                        "status": "ok",
                        "cache": "edge",
                        "generated_at": "2026-06-07T01:34:18.698Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:18.698Z",
                          "ttl_seconds": 3600,
                          "stale_seconds": 43200,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 2041,
                        "pages": 681,
                        "currentPage": 1,
                        "pageSize": 3,
                        "records": [
                          {
                            "symbol": "AABB",
                            "tierCode": "ID",
                            "tierName": "OTCID",
                            "isCaveatEmptor": false,
                            "marketCap": 62251674.8541,
                            "companyName": "Asia Broadband, Inc.",
                            "industry": "Metal Mining",
                            "country": "United States",
                            "joined": 1630641600000
                          },
                          {
                            "symbol": "AAGC",
                            "tierCode": "ID",
                            "tierName": "OTCID",
                            "isCaveatEmptor": false,
                            "marketCap": 1237364.28,
                            "companyName": "All American Gold Corp.",
                            "industry": "Gold and Silver Ores",
                            "country": "United States",
                            "joined": 1711512000000
                          },
                          {
                            "symbol": "AAMTF",
                            "tierCode": "PL",
                            "tierName": "Pink Limited",
                            "isCaveatEmptor": false,
                            "marketCap": 4621725.9,
                            "companyName": "Armada Mercantile Ltd.",
                            "industry": "Finance Services",
                            "country": "United States",
                            "joined": 1334548800000
                          }
                        ],
                        "singular": "Company",
                        "plural": "Companies",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns list with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities?pageSize=3",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:18.714Z"
      }
    },
    "/v1/compliance/caveat-emptor": {
      "get": {
        "summary": "Caveat emptor",
        "operationId": "ofin_get_compliance_caveat_emptor",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_caveat_emptorResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.caveat_emptor",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:19.129Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:19.129Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 10,
                        "pages": 1,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "changeDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "changeDate": 1780286400000,
                            "symbol": "QGAI",
                            "isCaveatEmptor": false,
                            "tierId": 20,
                            "tierCode": "ID",
                            "tierName": "OTCID",
                            "oldValue": "Y",
                            "newValue": "N",
                            "closingPrice": 0.44,
                            "marketCap": 18027702,
                            "caveatEmptor": false
                          },
                          {
                            "changeDate": 1778472000000,
                            "symbol": "EMRH",
                            "isCaveatEmptor": false,
                            "tierId": 20,
                            "tierCode": "ID",
                            "tierName": "OTCID",
                            "oldValue": "Y",
                            "newValue": "N",
                            "closingPrice": 0.016,
                            "marketCap": 4361321.072,
                            "caveatEmptor": false
                          },
                          {
                            "changeDate": 1778472000000,
                            "symbol": "HIPH",
                            "isCaveatEmptor": false,
                            "tierId": 20,
                            "tierCode": "ID",
                            "tierName": "OTCID",
                            "oldValue": "Y",
                            "newValue": "N",
                            "closingPrice": 0.0007,
                            "marketCap": 45077329.283,
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Caveat Emptor Change",
                        "plural": "Compliance Stat Caveat Emptor Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns caveat emptor with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/caveat-emptor",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:19.144Z"
      }
    },
    "/v1/compliance/company-name-changes": {
      "get": {
        "summary": "Company name changes",
        "operationId": "ofin_get_compliance_company_name_changes",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_company_name_changesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.company_name_changes",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:19.615Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:19.615Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 188,
                        "pages": 19,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "effectiveDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "effectiveDate": 1780545600000,
                            "oldSymbol": "EDRVY",
                            "oldTierId": 21,
                            "oldTierCode": "PL",
                            "oldTierName": "Pink Limited",
                            "oldCompanyName": "EDP Renovaveis SA",
                            "newSymbol": "EDRVY",
                            "isCaveatEmptor": false,
                            "newTierId": 21,
                            "newTierCode": "PL",
                            "newTierName": "Pink Limited",
                            "newCompanyName": "EDP Renewables S.A.",
                            "caveatEmptor": false
                          },
                          {
                            "effectiveDate": 1780545600000,
                            "oldSymbol": "MGIDF",
                            "oldTierId": 40,
                            "oldTierCode": "EM",
                            "oldTierName": "OTC Expert Market",
                            "oldCompanyName": "Magnum Goldcorp Inc.",
                            "newSymbol": "MGIDF",
                            "isCaveatEmptor": false,
                            "newTierId": 21,
                            "newTierCode": "PL",
                            "newTierName": "Pink Limited",
                            "newCompanyName": "ATLANTICO ENERGY METALS CORP.",
                            "caveatEmptor": false
                          },
                          {
                            "effectiveDate": 1780459200000,
                            "oldSymbol": "LOTT",
                            "oldTierId": 10,
                            "oldTierCode": "QB",
                            "oldTierName": "OTCQB",
                            "oldCompanyName": "APPYEA, Inc.",
                            "oldSic": "7371 - Custom computer programming services",
                            "newSymbol": "LOTT",
                            "isCaveatEmptor": false,
                            "newTierId": 10,
                            "newTierCode": "QB",
                            "newTierName": "OTCQB",
                            "newCompanyName": "Techlott Inc.",
                            "newSic": "7371 - Custom computer programming services",
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Company Name Change",
                        "plural": "Compliance Stat Company Name Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns company name changes with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/company-name-changes",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:19.629Z"
      }
    },
    "/v1/compliance/grace-period": {
      "get": {
        "summary": "Grace period",
        "operationId": "ofin_get_compliance_grace_period",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_grace_periodResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.grace_period",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:20.060Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:20.060Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 8,
                        "pages": 3,
                        "currentPage": 1,
                        "pageSize": 3,
                        "sortOn": "startDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "startDate": 1780632000000,
                            "endDate": 1781841600000,
                            "symbol": "BAKR",
                            "isCaveatEmptor": false,
                            "tierId": 10,
                            "tierCode": "QB",
                            "tierName": "OTCQB",
                            "currentClosingPrice": 7,
                            "marketCap": 13720000,
                            "caveatEmptor": false
                          },
                          {
                            "startDate": 1780545600000,
                            "endDate": 1781755200000,
                            "symbol": "DRNG",
                            "isCaveatEmptor": false,
                            "tierId": 21,
                            "tierCode": "PL",
                            "tierName": "Pink Limited",
                            "currentClosingPrice": 0.0002,
                            "marketCap": 522351.1092,
                            "caveatEmptor": false
                          },
                          {
                            "startDate": 1780372800000,
                            "endDate": 1781582400000,
                            "symbol": "LMMY",
                            "isCaveatEmptor": false,
                            "tierId": 21,
                            "tierCode": "PL",
                            "tierName": "Pink Limited",
                            "currentClosingPrice": 0.36,
                            "marketCap": 18900000,
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Grace Period",
                        "plural": "Compliance Stat Grace Periods",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns grace period with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/grace-period?pageSize=3",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:20.073Z"
      }
    },
    "/v1/compliance/promotions": {
      "get": {
        "summary": "Promotions",
        "operationId": "ofin_get_compliance_promotions",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_promotionsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.promotions",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:20.481Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:20.481Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 8,
                        "pages": 1,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "latestPromoDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "latestPromoDate": 1780632000000,
                            "symbol": "ESAUF",
                            "isCaveatEmptor": false,
                            "tierId": 10,
                            "tierCode": "QB",
                            "tierName": "OTCQB",
                            "promoStartDate": 1760932800000,
                            "promoDuration": 229,
                            "startDatePrice": 0.59,
                            "currentClosingPrice": 0.3468,
                            "volume": 54510,
                            "thirtyDayAvg": 141228,
                            "volumeChangePct": -61.4,
                            "caveatEmptor": false
                          },
                          {
                            "latestPromoDate": 1780632000000,
                            "symbol": "LFLRF",
                            "isCaveatEmptor": false,
                            "tierId": 10,
                            "tierCode": "QB",
                            "tierName": "OTCQB",
                            "promoStartDate": 1761278400000,
                            "promoDuration": 225,
                            "startDatePrice": 0.4216,
                            "currentClosingPrice": 0.2922,
                            "volume": 294035,
                            "thirtyDayAvg": 130044,
                            "volumeChangePct": 126.1,
                            "caveatEmptor": false
                          },
                          {
                            "latestPromoDate": 1780545600000,
                            "symbol": "SAGMF",
                            "isCaveatEmptor": false,
                            "tierId": 10,
                            "tierCode": "QB",
                            "tierName": "OTCQB",
                            "promoStartDate": 1762318800000,
                            "promoDuration": 212,
                            "startDatePrice": 0.34359,
                            "currentClosingPrice": 0.40103,
                            "volume": 156578,
                            "thirtyDayAvg": 215720,
                            "volumeChangePct": -27.42,
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Promotion Change",
                        "plural": "Compliance Stat Promotion Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns promotions with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/promotions?pageSize=3",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:20.495Z"
      }
    },
    "/v1/compliance/reverse-splits": {
      "get": {
        "summary": "Reverse splits",
        "operationId": "ofin_get_compliance_reverse_splits",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_reverse_splitsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.reverse_splits",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:20.947Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:20.947Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 171,
                        "pages": 18,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "splitEffectiveDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "splitEffectiveDate": 1780632000000,
                            "oldSymbol": "VREOF",
                            "oldTierCode": "",
                            "oldTierName": "",
                            "newSymbol": "VREOD",
                            "isCaveatEmptor": false,
                            "newTierId": 6,
                            "newTierCode": "QX",
                            "newTierName": "OTCQX U.S. Premier",
                            "splitRatio": "1:30",
                            "closePricePreSplit": 0.4192,
                            "marketCapPreSplit": 609943260.1248,
                            "caveatEmptor": false
                          },
                          {
                            "splitEffectiveDate": 1780632000000,
                            "oldSymbol": "INEOF",
                            "oldTierCode": "",
                            "oldTierName": "",
                            "newSymbol": "INEOD",
                            "isCaveatEmptor": false,
                            "newTierId": 10,
                            "newTierCode": "QB",
                            "newTierName": "OTCQB",
                            "splitRatio": "1:10",
                            "closePricePreSplit": 0.008,
                            "marketCapPreSplit": 2597530.944,
                            "caveatEmptor": false
                          },
                          {
                            "splitEffectiveDate": 1780632000000,
                            "oldSymbol": "CURLF",
                            "oldTierCode": "",
                            "oldTierName": "",
                            "newSymbol": "CURLD",
                            "isCaveatEmptor": false,
                            "newTierId": 6,
                            "newTierCode": "QX",
                            "newTierName": "OTCQX U.S. Premier",
                            "splitRatio": "1:3",
                            "closePricePreSplit": 3.64,
                            "marketCapPreSplit": 2543384097.8,
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Reverse Split Change",
                        "plural": "Compliance Stat Reverse Split Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns reverse splits with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/reverse-splits",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:20.960Z"
      }
    },
    "/v1/compliance/shell-status-changes": {
      "get": {
        "summary": "Shell status changes",
        "operationId": "ofin_get_compliance_shell_status_changes",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_shell_status_changesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.shell_status_changes",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:21.375Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:21.375Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 44,
                        "pages": 5,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "shellChangeDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "shellChangeDate": 1780632000000,
                            "symbol": "SHMP",
                            "isCaveatEmptor": false,
                            "tierId": 40,
                            "tierCode": "EM",
                            "tierName": "OTC Expert Market",
                            "oldValue": "N",
                            "newValue": "Y",
                            "currentClosingPrice": 0.0001,
                            "marketCap": 127754.6746,
                            "caveatEmptor": false
                          },
                          {
                            "shellChangeDate": 1780545600000,
                            "symbol": "IPRC",
                            "isCaveatEmptor": false,
                            "tierId": 40,
                            "tierCode": "EM",
                            "tierName": "OTC Expert Market",
                            "oldValue": "N",
                            "newValue": "Y",
                            "currentClosingPrice": 0.0092,
                            "marketCap": 1709200.472,
                            "caveatEmptor": false
                          },
                          {
                            "shellChangeDate": 1780545600000,
                            "symbol": "CCLX",
                            "isCaveatEmptor": false,
                            "tierId": 21,
                            "tierCode": "PL",
                            "tierName": "Pink Limited",
                            "oldValue": "N",
                            "newValue": "Y",
                            "currentClosingPrice": 0.0038,
                            "marketCap": 3798630.024,
                            "caveatEmptor": false
                          }
                        ],
                        "singular": "Compliance Stat Shell Status Change",
                        "plural": "Compliance Stat Shell Status Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns shell status changes with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/shell-status-changes",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:21.389Z"
      }
    },
    "/v1/compliance/suspensions-revocations": {
      "get": {
        "summary": "Suspensions and revocations",
        "operationId": "ofin_get_compliance_suspensions_revocations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_compliance_suspensions_revocationsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "compliance.suspensions_revocations",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:21.850Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:21.850Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 24,
                        "pages": 3,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "effectiveDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "effectiveDate": 1778817600000,
                            "symbol": "ATCC",
                            "isCaveatEmptor": false,
                            "tierId": 40,
                            "tierCode": "EM",
                            "tierName": "OTC Expert Market",
                            "currentStatus": "Revoked",
                            "closingPrice": 0.0001,
                            "marketCap": 723964439.2886,
                            "caveatEmptor": false
                          },
                          {
                            "effectiveDate": 1776225600000,
                            "symbol": "MNKA",
                            "isCaveatEmptor": false,
                            "tierId": 40,
                            "tierCode": "EM",
                            "tierName": "OTC Expert Market",
                            "currentStatus": "Revoked",
                            "closingPrice": 0.0001,
                            "marketCap": 11203.3909,
                            "caveatEmptor": false
                          },
                          {
                            "effectiveDate": 1776225600000,
                            "symbol": "WESC",
                            "isCaveatEmptor": true,
                            "tierId": 40,
                            "tierCode": "EM",
                            "tierName": "OTC Expert Market",
                            "currentStatus": "Revoked",
                            "closingPrice": 0.0001,
                            "marketCap": 13008.5501,
                            "caveatEmptor": true
                          }
                        ],
                        "singular": "Compliance Stat Suspension Status Change",
                        "plural": "Compliance Stat Suspension Status Changes",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns suspensions and revocations with source-native fields and identifiers.",
        "tags": [
          "Compliance"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/compliance/suspensions-revocations",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:21.870Z"
      }
    },
    "/v1/markets/totals": {
      "get": {
        "summary": "Totals",
        "operationId": "ofin_get_markets_totals",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_totalsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.totals",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:22.297Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:22.297Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "securities": "12,351",
                        "dollarVolume": "$4.9B",
                        "shareVolume": "2.5B",
                        "trades": "544,656"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns totals with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/totals",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:22.311Z"
      }
    },
    "/v1/news/{news_id}": {
      "get": {
        "summary": "Metadata",
        "operationId": "ofin_get_news_news_id",
        "parameters": [
          {
            "name": "news_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_news_news_idResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "news.item",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:22.920Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:22.920Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {
                          "news_id": "522875"
                        }
                      },
                      "data": {
                        "id": 522875,
                        "title": "Mike Lindell Media Corp., OTC: MLMC and Mike Lindell Continue Reaching Goals with the Addition of AskChapter.org/Lindell to the LindellTV Client-Media Relationship Lineup",
                        "companyId": 626902,
                        "releaseDate": "2026-05-27T07:00:00.000-0400",
                        "sourceId": "PRIMZONE",
                        "sourceDesc": "GlobeNewswire",
                        "typeId": "PR",
                        "typeDesc": "Press Release",
                        "symbol": "MLMC"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns metadata with headline, timestamp, symbol, and source fields where available.",
        "tags": [
          "News"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/news/522875",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:22.935Z"
      }
    },
    "/v1/reg-sho/dates": {
      "get": {
        "summary": "Dates",
        "operationId": "ofin_get_reg_sho_dates",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_reg_sho_datesResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "reg_sho.dates",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:23.395Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:23.395Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": [
                        {
                          "id": "1780545600000",
                          "value": "Jun 4, 2026"
                        },
                        {
                          "id": "1780459200000",
                          "value": "Jun 3, 2026"
                        },
                        {
                          "id": "1780372800000",
                          "value": "Jun 2, 2026"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns dates with source-native fields and identifiers.",
        "tags": [
          "Reg SHO"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/reg-sho/dates",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:23.408Z"
      }
    },
    "/v1/sec-filings/external": {
      "get": {
        "summary": "External feed",
        "operationId": "ofin_get_sec_filings_external",
        "parameters": [
          {
            "name": "symbol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_sec_filings_externalResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "sec_filings.external",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:35.115Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:35.115Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "currentPage": 1,
                        "pageSize": 25,
                        "total": 568170,
                        "pages": 22727,
                        "content": [
                          {
                            "id": 571080,
                            "securityId": 23735,
                            "symbol": "NROM",
                            "tierName": "OTCQB",
                            "companyId": 12824,
                            "companyName": "Noble Roman's, Inc.",
                            "type": {
                              "id": "AR",
                              "description": "Annual Report"
                            },
                            "status": {
                              "id": "A",
                              "description": "Active"
                            },
                            "periodDate": "2025-12-31",
                            "createdDate": "2026-06-06T10:38:16.038",
                            "lastModifiedDate": "2026-06-06T10:38:23.501",
                            "releaseDate": "2026-06-06T10:38:15.951",
                            "storageId": "d9a424af-6459-47ef-8108-ab10982c66bb"
                          },
                          {
                            "id": 571079,
                            "securityId": 420084,
                            "symbol": "BATXF",
                            "tierName": "OTCQB",
                            "companyId": 689077,
                            "companyName": "BATTERY X METALS INC.",
                            "title": "News release - English",
                            "type": {
                              "id": "SEDR",
                              "description": "SEDAR Filing"
                            },
                            "status": {
                              "id": "A",
                              "description": "Active"
                            },
                            "periodDate": "2026-06-05",
                            "createdDate": "2026-06-05T22:47:29.644",
                            "lastModifiedDate": "2026-06-05T22:47:39.036",
                            "releaseDate": "2026-06-05T00:00:00.000",
                            "source": "SEDAR",
                            "fileType": "pdf",
                            "storageId": "d7c6c8b2-d758-4c85-981c-ec8db04ba6a0"
                          },
                          {
                            "id": 571078,
                            "securityId": 413721,
                            "symbol": "MUSLF",
                            "tierName": "OTCID",
                            "companyId": 691280,
                            "companyName": "Promino Nutritional Sciences Inc.",
                            "title": "News release - English",
                            "type": {
                              "id": "SEDR",
                              "description": "SEDAR Filing"
                            },
                            "status": {
                              "id": "A",
                              "description": "Active"
                            },
                            "periodDate": "2026-06-05",
                            "createdDate": "2026-06-05T22:17:52.112",
                            "lastModifiedDate": "2026-06-05T22:18:04.098",
                            "releaseDate": "2026-06-05T00:00:00.000",
                            "source": "SEDAR",
                            "fileType": "pdf",
                            "storageId": "a8295a62-1d64-42a2-81cf-ce17d8a6601b"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns external feed with source-native fields and identifiers.",
        "tags": [
          "SEC Filings"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/sec-filings/external",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:35.126Z"
      }
    },
    "/v1/securities/search": {
      "get": {
        "summary": "Search",
        "operationId": "ofin_get_securities_search",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rows",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "start",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_searchResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "securities.search",
                        "status": "ok",
                        "cache": "edge",
                        "generated_at": "2026-06-07T01:34:35.392Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:35.392Z",
                          "ttl_seconds": 3600,
                          "stale_seconds": 43200,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "responseHeader": {
                          "status": 0,
                          "QTime": 0
                        },
                        "response": {
                          "numFound": 1,
                          "start": 0,
                          "docs": [
                            {
                              "symbol": "MLMC",
                              "venue": "PS",
                              "cusip": "45331T309",
                              "tierid": 20,
                              "companyname": "Mike Lindell Media Corp.",
                              "comp_id": 626902,
                              "isFixedIncome": false,
                              "status": "A",
                              "security_desc": "No security desc",
                              "id": "0951290f-61fe-437f-b5fa-3eaf6f2d6ca8"
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns search with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/search?q=MLMC",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:35.403Z"
      }
    },
    "/v1/markets/active/closing": {
      "get": {
        "summary": "Closing active",
        "operationId": "ofin_get_markets_active_closing",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_active_closingResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.active.closing",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:35.859Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:35.859Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 3693,
                        "pages": 370,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "dollarVolume",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "securityId": 423057,
                            "symbol": "GGLAP",
                            "companyId": 655940,
                            "companyName": "Alphabet Inc.",
                            "price": 50.997,
                            "priceNet": -1.003,
                            "pctChange": -1.9288461,
                            "shareVolume": 9483876,
                            "dollarVolume": 483649224.372,
                            "tradeCount": 300,
                            "updateCount": 358,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 125329,
                            "symbol": "TCEHY",
                            "companyId": 657203,
                            "companyName": "Tencent Holding Ltd.",
                            "price": 56.95,
                            "priceNet": -1.23,
                            "pctChange": -2.1141286,
                            "shareVolume": 3926626,
                            "dollarVolume": 223621350.7,
                            "tradeCount": 13011,
                            "updateCount": 31970,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 423056,
                            "symbol": "GGLBP",
                            "companyId": 655940,
                            "companyName": "Alphabet Inc.",
                            "price": 50.99,
                            "priceNet": -0.86,
                            "pctChange": -1.6586307,
                            "shareVolume": 3918826,
                            "dollarVolume": 199820937.74,
                            "tradeCount": 176,
                            "updateCount": 168,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          }
                        ],
                        "singular": "Trade Stat",
                        "plural": "Trade Stats",
                        "tierGroupId": "ALL",
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns closing active with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/active/closing",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:35.871Z"
      }
    },
    "/v1/markets/active/current": {
      "get": {
        "summary": "Current active",
        "operationId": "ofin_get_markets_active_current",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_active_currentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.active.current",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:36.327Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:36.327Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns current active with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/active/current",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:36.340Z"
      }
    },
    "/v1/markets/advancers/closing": {
      "get": {
        "summary": "Closing advancers",
        "operationId": "ofin_get_markets_advancers_closing",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_advancers_closingResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.advancers.closing",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:36.800Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:36.800Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 532,
                        "pages": 54,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "gain",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "securityId": 421498,
                            "symbol": "PEVM",
                            "companyId": 693891,
                            "companyName": "Phoenix Motor Inc.",
                            "price": 3.06,
                            "priceNet": 0.99,
                            "pctChange": 47.826088,
                            "shareVolume": 4443,
                            "dollarVolume": 13595.58,
                            "tradeCount": 30,
                            "updateCount": 147,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 420636,
                            "symbol": "BTZRF",
                            "companyId": 698137,
                            "companyName": "Bitzero Holdings Inc.",
                            "price": 8.03,
                            "priceNet": 2.06,
                            "pctChange": 34.505863,
                            "shareVolume": 390855,
                            "dollarVolume": 3138565.65,
                            "tradeCount": 1456,
                            "updateCount": 10514,
                            "tierCode": "QB",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 126497,
                            "symbol": "ERELY",
                            "companyId": 673788,
                            "companyName": "Eregli Demir Ve Celik Fabrikal",
                            "price": 9.18,
                            "priceNet": 2.33,
                            "pctChange": 34.0146,
                            "shareVolume": 123,
                            "dollarVolume": 1129.14,
                            "tradeCount": 1,
                            "updateCount": 944,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          }
                        ],
                        "singular": "Trade Stat",
                        "plural": "Trade Stats",
                        "tierGroupId": "ALL",
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns closing advancers with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/advancers/closing",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:36.817Z"
      }
    },
    "/v1/markets/advancers/current": {
      "get": {
        "summary": "Current advancers",
        "operationId": "ofin_get_markets_advancers_current",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_advancers_currentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.advancers.current",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:37.309Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:37.309Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "sortOn": "gain",
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns current advancers with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/advancers/current",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:37.322Z"
      }
    },
    "/v1/markets/decliners/closing": {
      "get": {
        "summary": "Closing decliners",
        "operationId": "ofin_get_markets_decliners_closing",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_decliners_closingResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.decliners.closing",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:37.757Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:37.757Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 1468,
                        "pages": 147,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "loss",
                        "sortDir": "ASC",
                        "records": [
                          {
                            "securityId": 404955,
                            "symbol": "ZCSH",
                            "companyId": 686699,
                            "companyName": "Grayscale Zcash Trust (ZEC)",
                            "price": 24,
                            "priceNet": -13.56,
                            "pctChange": -36.102234,
                            "shareVolume": 789894,
                            "dollarVolume": 18957456,
                            "tradeCount": 2869,
                            "updateCount": 65117,
                            "tierCode": "QX",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 215345,
                            "symbol": "TRRVF",
                            "companyId": 680627,
                            "companyName": "TerraVest Industries Inc.",
                            "price": 77.9,
                            "priceNet": -36.1,
                            "pctChange": -31.666666,
                            "shareVolume": 91013,
                            "dollarVolume": 7089912.7,
                            "tradeCount": 134,
                            "updateCount": 220021,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          },
                          {
                            "securityId": 422952,
                            "symbol": "ELOXD",
                            "companyId": 623464,
                            "companyName": "Eloxx Pharmaceuticals, Inc.",
                            "price": 6.2,
                            "priceNet": -2.8,
                            "pctChange": -31.111113,
                            "shareVolume": 1048,
                            "dollarVolume": 6497.6,
                            "tradeCount": 23,
                            "updateCount": 16,
                            "tierCode": "PL",
                            "isCaveatEmptor": false
                          }
                        ],
                        "singular": "Trade Stat",
                        "plural": "Trade Stats",
                        "tierGroupId": "ALL",
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns closing decliners with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/decliners/closing",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:37.769Z"
      }
    },
    "/v1/markets/decliners/current": {
      "get": {
        "summary": "Current decliners",
        "operationId": "ofin_get_markets_decliners_current",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_decliners_currentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.decliners.current",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:38.213Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:38.213Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "sortOn": "loss",
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns current decliners with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/decliners/current",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:38.226Z"
      }
    },
    "/v1/markets/overnight/active": {
      "get": {
        "summary": "Overnight active",
        "operationId": "ofin_get_markets_overnight_active",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_overnight_activeResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.overnight.active",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:38.713Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:38.713Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns overnight active with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/overnight/active",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:38.728Z"
      }
    },
    "/v1/markets/overnight/advancers": {
      "get": {
        "summary": "Overnight advancers",
        "operationId": "ofin_get_markets_overnight_advancers",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_overnight_advancersResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.overnight.advancers",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:39.236Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:39.236Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "sortOn": "gain",
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns overnight advancers with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/overnight/advancers",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:39.252Z"
      }
    },
    "/v1/markets/overnight/decliners": {
      "get": {
        "summary": "Overnight decliners",
        "operationId": "ofin_get_markets_overnight_decliners",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_overnight_declinersResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.overnight.decliners",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:39.852Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:39.852Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 10,
                        "records": [],
                        "sortOn": "loss",
                        "isRealTime": false,
                        "bySymbol": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns overnight decliners with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/overnight/decliners",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:39.863Z"
      }
    },
    "/v1/markets/overnight/snapshot": {
      "get": {
        "summary": "Overnight snapshot",
        "operationId": "ofin_get_markets_overnight_snapshot",
        "parameters": [
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "ofin response envelope."
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "HTTP 502 response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_overnight_snapshotResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live HTTP 502 response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.overnight.snapshot",
                        "status": "origin_error",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:40.349Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:40.349Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "error": {
                        "code": "http_500",
                        "message": "OTCMarkets returned HTTP 500."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns overnight snapshot with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/overnight/snapshot",
        "x-docs-example-status": 502,
        "x-docs-captured-at": "2026-06-07T01:34:40.358Z"
      }
    },
    "/v1/markets/snapshot/closing": {
      "get": {
        "summary": "Closing snapshot",
        "operationId": "ofin_get_markets_snapshot_closing",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_snapshot_closingResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.snapshot.closing",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:40.904Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:40.904Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "data": {
                        "dollarVolume": 4737802105,
                        "shareVolume": 2453451642,
                        "trades": 524212,
                        "advancers": 1006,
                        "decliners": 2446,
                        "lastUpdated": 1780632000000
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns closing snapshot with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/snapshot/closing",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:40.918Z"
      }
    },
    "/v1/markets/snapshot/current": {
      "get": {
        "summary": "Current snapshot",
        "operationId": "ofin_get_markets_snapshot_current",
        "parameters": [
          {
            "name": "tierGroup",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "ofin response envelope."
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "HTTP 502 response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_markets_snapshot_currentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live HTTP 502 response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "markets.snapshot.current",
                        "status": "origin_error",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:41.371Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:41.371Z",
                          "ttl_seconds": 30,
                          "stale_seconds": 360,
                          "stale": false
                        },
                        "params": {}
                      },
                      "error": {
                        "code": "http_500",
                        "message": "OTCMarkets returned HTTP 500."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns current snapshot with source-native market snapshot, mover, or table fields.",
        "tags": [
          "Markets"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/markets/snapshot/current",
        "x-docs-example-status": 502,
        "x-docs-captured-at": "2026-06-07T01:34:41.384Z"
      }
    },
    "/v1/news/{news_id}/content": {
      "get": {
        "summary": "Content",
        "operationId": "ofin_get_news_news_id_content",
        "parameters": [
          {
            "name": "news_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_news_news_id_contentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "news.content",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:42.188Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:42.188Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {
                          "news_id": "522875"
                        }
                      },
                      "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html>\r\n  <head>\r\n    <META http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\">\r\n    <title>Mike Lindell Media Corp., OTC: MLMC and Mike Lindell Continue Reaching Goals with the Additio..."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns content with headline, timestamp, symbol, and source fields where available.",
        "tags": [
          "News"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/news/522875/content",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:42.201Z"
      }
    },
    "/v1/sec-filings/{filing_id}/pdf": {
      "get": {
        "summary": "PDF",
        "operationId": "ofin_get_sec_filings_filing_id_pdf",
        "parameters": [
          {
            "name": "filing_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Document response.",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                },
                "examples": {
                  "live": {
                    "summary": "Live PDF response",
                    "value": "<binary PDF response>"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns PDF with source-native fields and identifiers.",
        "tags": [
          "SEC Filings"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/sec-filings/19412735/pdf",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:42.538Z"
      }
    },
    "/v1/securities/{symbol}/dividends": {
      "get": {
        "summary": "Dividends",
        "operationId": "ofin_get_securities_symbol_dividends",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_dividendsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.dividends",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:42.983Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:42.983Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 0,
                        "pageSize": 20,
                        "sortOn": "changeDate",
                        "sortDir": "DESC",
                        "records": [],
                        "singular": "Dividend",
                        "plural": "Dividends",
                        "isDividend": true,
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns dividends with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/dividends",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:42.995Z"
      }
    },
    "/v1/securities/{symbol}/financial-reports": {
      "get": {
        "summary": "Financial reports",
        "operationId": "ofin_get_securities_symbol_financial_reports",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_financial_reportsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.financial_reports",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:43.479Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:43.479Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": {
                        "totalRecords": 70,
                        "pages": 7,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "releaseDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "id": 564470,
                            "companyId": 626902,
                            "userId": 15451,
                            "title": "Amended",
                            "typeId": "QR",
                            "statusId": "A",
                            "periodDate": 1774929600000,
                            "isImmediate": true,
                            "createdDate": 1779219255931,
                            "lastModifiedDate": 1779898443930,
                            "releaseDate": 1779219255895,
                            "canDistribute": true,
                            "wasDistributed": false,
                            "companyName": "Mike Lindell Media Corp.",
                            "reportType": "Quarterly Report",
                            "name": "Quarterly Report - Amended",
                            "statusDescript": "Active",
                            "symbol": "MLMC",
                            "primarySymbol": "MLMC",
                            "isCaveatEmptor": false,
                            "edgarSECFiling": false,
                            "tierCode": "ID"
                          },
                          {
                            "id": 562421,
                            "companyId": 626902,
                            "userId": 15451,
                            "title": "Quarterly Report",
                            "typeId": "QR",
                            "statusId": "A",
                            "periodDate": 1774929600000,
                            "isImmediate": true,
                            "createdDate": 1778707120552,
                            "lastModifiedDate": 1779128929351,
                            "releaseDate": 1778707120514,
                            "canDistribute": true,
                            "wasDistributed": false,
                            "companyName": "Mike Lindell Media Corp.",
                            "reportType": "Quarterly Report",
                            "name": "Quarterly Report",
                            "statusDescript": "Active",
                            "symbol": "MLMC",
                            "primarySymbol": "MLMC",
                            "isCaveatEmptor": false,
                            "edgarSECFiling": false,
                            "tierCode": "ID"
                          },
                          {
                            "id": 553814,
                            "companyId": 626902,
                            "userId": 15451,
                            "title": "Management Certification",
                            "typeId": "MC",
                            "statusId": "A",
                            "periodDate": 1767157200000,
                            "isImmediate": true,
                            "createdDate": 1776882473953,
                            "lastModifiedDate": 1776972566584,
                            "releaseDate": 1776882473915,
                            "canDistribute": true,
                            "wasDistributed": false,
                            "companyName": "Mike Lindell Media Corp.",
                            "reportType": "Management Certification",
                            "name": "Management Certification",
                            "statusDescript": "Active",
                            "symbol": "MLMC",
                            "primarySymbol": "MLMC",
                            "isCaveatEmptor": false,
                            "edgarSECFiling": false,
                            "tierCode": "ID"
                          }
                        ],
                        "singular": "Financial Report",
                        "plural": "Financial Reports",
                        "companyId": 626902,
                        "statusId": "ALL",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns financial reports with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/financial-reports",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:43.491Z"
      }
    },
    "/v1/securities/{symbol}/news": {
      "get": {
        "summary": "News",
        "operationId": "ofin_get_securities_symbol_news",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sortOn",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_newsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.news",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:44.150Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:44.150Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": {
                        "totalRecords": 64,
                        "pages": 7,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "releaseDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "id": 522875,
                            "title": "Mike Lindell Media Corp., OTC: MLMC and Mike Lindell Continue Reaching Goals with the Addition of AskChapter.org/Lindell to the LindellTV Client-Media Relationship Lineup",
                            "companyId": 626902,
                            "releaseDate": "2026-05-27T07:00:00.000-0400",
                            "sourceId": "PRIMZONE",
                            "sourceDesc": "GlobeNewswire",
                            "typeId": "PR",
                            "typeDesc": "Press Release"
                          },
                          {
                            "id": 521324,
                            "title": "Mike Lindell Media Corp., OTC: MLMC Wishes to Thank God for The Speedy Recovery of MLMC Board Member, Rudolph Rudy Giuliani, America's Mayor is Returning to The Rudy Giuliani Show at 7:00 pm EDT Tonight on LindellTV",
                            "companyId": 626902,
                            "releaseDate": "2026-05-13T18:37:00.000-0400",
                            "sourceId": "PRIMZONE",
                            "sourceDesc": "GlobeNewswire",
                            "typeId": "PR",
                            "typeDesc": "Press Release"
                          },
                          {
                            "id": 520031,
                            "title": "Mike Lindell Media Corp. - LindellTV (OTC:) MLMC Announces Another Milestone as Part of the Company Short-Term Goals Strategy by Adding Sentry H20",
                            "companyId": 626902,
                            "releaseDate": "2026-05-05T07:00:00.000-0400",
                            "sourceId": "PRIMZONE",
                            "sourceDesc": "GlobeNewswire",
                            "typeId": "PR",
                            "typeDesc": "Press Release"
                          }
                        ],
                        "singular": "News Item",
                        "plural": "News Items",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns news with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/news",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:44.164Z"
      }
    },
    "/v1/securities/{symbol}/sec-filings": {
      "get": {
        "summary": "SEC filings",
        "operationId": "ofin_get_securities_symbol_sec_filings",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_sec_filingsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.sec_filings",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:53.235Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:53.235Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": {
                        "totalRecords": 340,
                        "pages": 17,
                        "currentPage": 1,
                        "pageSize": 20,
                        "sortOn": "receivedDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "exchangeId": 8,
                            "id": 18230440,
                            "dcn": "0001213900-25-017817",
                            "secFileNo": "000-29113",
                            "formTypeId": 13,
                            "formType": "10-Q",
                            "receivedDate": 1740680368000,
                            "filedDate": 1740632400000,
                            "periodEndDate": 1522468800000,
                            "sizeOfFiling": 1656450,
                            "hasPdf": false,
                            "hasExcel": true,
                            "filedAsHtml": true,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 71264,
                            "companyName": "MIKE LINDELL MEDIA, CORP",
                            "companyCik": "0001099234",
                            "filedAsName": "FRANKSPEECH NETWORK, INC.",
                            "symbol": "MLMC",
                            "tierCode": "ID",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          },
                          {
                            "exchangeId": 8,
                            "id": 16626888,
                            "dcn": "9999999997-23-002421",
                            "formTypeId": 1330,
                            "formType": "SEC STAFF",
                            "receivedDate": 1683302448000,
                            "filedDate": 1683259200000,
                            "sizeOfFiling": 6641,
                            "hasPdf": true,
                            "hasExcel": false,
                            "filedAsHtml": false,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 71264,
                            "companyName": "MIKE LINDELL MEDIA, CORP",
                            "companyCik": "0001099234",
                            "filedAsName": "INCAPTA, INC.",
                            "symbol": "MLMC",
                            "tierCode": "ID",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          },
                          {
                            "exchangeId": 8,
                            "id": 15882085,
                            "dcn": "0001408646-22-000007",
                            "formTypeId": 66,
                            "formType": "3",
                            "receivedDate": 1654787846000,
                            "filedDate": 1654747200000,
                            "periodEndDate": 1641790800000,
                            "sizeOfFiling": 4103,
                            "hasPdf": false,
                            "hasExcel": true,
                            "filedAsHtml": false,
                            "beenViewed": true,
                            "paperOnly": false,
                            "valid": true,
                            "companyId": 71264,
                            "companyName": "MIKE LINDELL MEDIA, CORP",
                            "companyCik": "0001099234",
                            "filedAsName": "INCAPTA, INC.",
                            "symbol": "MLMC",
                            "tierCode": "ID",
                            "guid": "FWOBEuQhrXkukrs-y0W-kqWDgxJ1V3h-rnYasSjdMCKoSjI"
                          }
                        ],
                        "singular": "Sec Filing",
                        "plural": "Sec Filings",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns SEC filings with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/sec-filings",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:53.247Z"
      }
    },
    "/v1/securities/{symbol}/splits": {
      "get": {
        "summary": "Splits",
        "operationId": "ofin_get_securities_symbol_splits",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_splitsResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.splits",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:53.742Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:53.742Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": {
                        "totalRecords": 4,
                        "pages": 1,
                        "currentPage": 1,
                        "pageSize": 25,
                        "sortOn": "changeDate",
                        "sortDir": "DESC",
                        "records": [
                          {
                            "changeDate": 1598846400000,
                            "recordDate": 1598241600000,
                            "actionType": "Forward",
                            "comments": "shs increased by 4 for 1 split",
                            "splitRatio": "4:1",
                            "payDate": 1598587200000
                          },
                          {
                            "changeDate": 1402286400000,
                            "recordDate": 1401681600000,
                            "actionType": "Forward",
                            "comments": "shs increased by 7 for 1 split",
                            "splitRatio": "7:1",
                            "payDate": 1402027200000
                          },
                          {
                            "changeDate": 1109566800000,
                            "recordDate": 1108702800000,
                            "actionType": "Forward",
                            "comments": "shs increased by 2 for 1 split",
                            "splitRatio": "2:1",
                            "payDate": 1109307600000
                          }
                        ],
                        "singular": "Split",
                        "plural": "Splits",
                        "isDividend": false,
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns splits with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/splits",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:53.761Z"
      }
    },
    "/v1/news/external/{news_id}/content": {
      "get": {
        "summary": "External content",
        "operationId": "ofin_get_news_external_news_id_content",
        "parameters": [
          {
            "name": "news_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_news_external_news_id_contentResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "news.external_content",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:54.280Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:54.280Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {
                          "news_id": "3458891"
                        }
                      },
                      "data": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html>\r\n  <head>\r\n    <META http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\">\r\n    <title>Mike Lindell Media Corp. - LindellTV (OTC:) MLMC Announces Another Milestone as Part of the C..."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns external content with headline, timestamp, symbol, and source fields where available.",
        "tags": [
          "News"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/news/external/3458891/content",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:54.292Z"
      }
    },
    "/v1/securities/{symbol}/financials/balance-sheet": {
      "get": {
        "summary": "Balance sheet",
        "operationId": "ofin_get_securities_symbol_financials_balance_sheet",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_financials_balance_sheetResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.financials.balance_sheet",
                        "status": "ok",
                        "cache": "edge",
                        "generated_at": "2026-06-07T01:34:54.557Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:54.557Z",
                          "ttl_seconds": 21600,
                          "stale_seconds": 259200,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": [
                        {
                          "preliminary": false,
                          "periodEndDate": "2025-12-31 00:00:00",
                          "cashAndCashEquivalents": "35",
                          "netReceivables": "505",
                          "otherCurrentAssets": "0",
                          "totalCurrentAssets": "541",
                          "propertyPlantAndEquipment": "249",
                          "totalAssets": "2,126",
                          "accountPayable": "6,374",
                          "totalCurrentLiabilities": "6,374",
                          "otherLiabilitiesWithContingencies": "9,839",
                          "totalLiabilities": "16,214",
                          "commonStock": "39",
                          "retainedEarnings": "(15,323)",
                          "capitalSurplus": "605",
                          "totalStockholderEquity": "(14,678)",
                          "totalLiablitiesAndStockholderEquity": "1,536",
                          "netTangibleAssets": "(15,424)"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2024-12-31 00:00:00",
                          "cashAndCashEquivalents": "48",
                          "netReceivables": "275",
                          "otherCurrentAssets": "0",
                          "totalCurrentAssets": "324",
                          "propertyPlantAndEquipment": "253",
                          "totalAssets": "1,916",
                          "accountPayable": "4,574",
                          "totalCurrentLiabilities": "4,574",
                          "otherLiabilitiesWithContingencies": "12,018",
                          "totalLiabilities": "16,592",
                          "commonStock": "38",
                          "retainedEarnings": "(15,178)",
                          "capitalSurplus": "463",
                          "totalStockholderEquity": "(14,676)",
                          "totalLiablitiesAndStockholderEquity": "1,916",
                          "netTangibleAssets": "(16,014)"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2023-12-31 00:00:00",
                          "cashAndCashEquivalents": "1",
                          "otherCurrentAssets": "162",
                          "totalCurrentAssets": "163",
                          "propertyPlantAndEquipment": "121",
                          "totalAssets": "2,722",
                          "accountPayable": "1,507",
                          "totalCurrentLiabilities": "1,507",
                          "otherLiabilitiesWithContingencies": "11,489",
                          "totalLiabilities": "12,997",
                          "commonStock": "835",
                          "retainedEarnings": "(11,485)",
                          "capitalSurplus": "375",
                          "totalStockholderEquity": "(10,275)",
                          "totalLiablitiesAndStockholderEquity": "2,722",
                          "netTangibleAssets": "(12,712)"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns balance sheet with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/financials/balance-sheet",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:54.567Z"
      }
    },
    "/v1/securities/{symbol}/financials/cash-flow": {
      "get": {
        "summary": "Cash flow",
        "operationId": "ofin_get_securities_symbol_financials_cash_flow",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_financials_cash_flowResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.financials.cash_flow",
                        "status": "ok",
                        "cache": "edge",
                        "generated_at": "2026-06-07T01:34:54.825Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:54.825Z",
                          "ttl_seconds": 21600,
                          "stale_seconds": 259200,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": [
                        {
                          "preliminary": false,
                          "periodEndDate": "2025-09-27 00:00:00",
                          "netIncome": "112,010,000",
                          "depreciation": "11,698,000",
                          "adjustmentsToNetIncome": "12,774,000",
                          "changesInLiabilities": "(10,174,000)",
                          "changesInAccountReceivables": "(6,682,000)",
                          "changesInInventories": "1,400,000",
                          "changesInOtherOperatingActivities": "(15,173,000)",
                          "totalCashFlowFromOperatingActivities": "111,482,000",
                          "capitalExpenditures": "(12,715,000)",
                          "investments": "29,390,000",
                          "otherCashFlowFromInvestingActivities": "(1,480,000)",
                          "totalCashFlowFromInvestingActivities": "15,195,000",
                          "dividendsPaid": "(15,421,000)",
                          "salePurchaseOfStock": "(90,711,000)",
                          "netBorrowings": "(8,483,000)",
                          "otherCashFlowsFromFinancingActivities": "(6,071,000)",
                          "totalCashFlowsFromFinancingActivities": "(120,686,000)",
                          "changeInCashAndEquities": "5,991,000"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2024-09-28 00:00:00",
                          "netIncome": "93,736,000",
                          "depreciation": "11,445,000",
                          "adjustmentsToNetIncome": "9,422,000",
                          "changesInLiabilities": "21,572,000",
                          "changesInAccountReceivables": "(3,788,000)",
                          "changesInInventories": "(1,046,000)",
                          "changesInOtherOperatingActivities": "(19,277,000)",
                          "totalCashFlowFromOperatingActivities": "118,254,000",
                          "capitalExpenditures": "(9,447,000)",
                          "investments": "13,690,000",
                          "otherCashFlowFromInvestingActivities": "(1,308,000)",
                          "totalCashFlowFromInvestingActivities": "2,935,000",
                          "dividendsPaid": "(15,234,000)",
                          "salePurchaseOfStock": "(94,949,000)",
                          "netBorrowings": "(5,998,000)",
                          "otherCashFlowsFromFinancingActivities": "(5,802,000)",
                          "totalCashFlowsFromFinancingActivities": "(121,983,000)",
                          "changeInCashAndEquities": "(794,000)"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2023-09-30 00:00:00",
                          "netIncome": "96,995,000",
                          "depreciation": "11,519,000",
                          "adjustmentsToNetIncome": "8,606,000",
                          "changesInLiabilities": "1,142,000",
                          "changesInAccountReceivables": "(1,688,000)",
                          "changesInInventories": "(1,618,000)",
                          "changesInOtherOperatingActivities": "(6,448,000)",
                          "totalCashFlowFromOperatingActivities": "110,543,000",
                          "capitalExpenditures": "(10,959,000)",
                          "investments": "16,001,000",
                          "otherCashFlowFromInvestingActivities": "(1,337,000)",
                          "totalCashFlowFromInvestingActivities": "3,705,000",
                          "dividendsPaid": "(15,025,000)",
                          "salePurchaseOfStock": "(77,550,000)",
                          "netBorrowings": "(9,901,000)",
                          "otherCashFlowsFromFinancingActivities": "(6,012,000)",
                          "totalCashFlowsFromFinancingActivities": "(108,488,000)",
                          "changeInCashAndEquities": "5,760,000"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns cash flow with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/financials/cash-flow",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:54.837Z"
      }
    },
    "/v1/securities/{symbol}/financials/income-statement": {
      "get": {
        "summary": "Income statement",
        "operationId": "ofin_get_securities_symbol_financials_income_statement",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_financials_income_statementResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.financials.income_statement",
                        "status": "ok",
                        "cache": "edge",
                        "generated_at": "2026-06-07T01:34:55.095Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:55.095Z",
                          "ttl_seconds": 21600,
                          "stale_seconds": 259200,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": [
                        {
                          "preliminary": false,
                          "periodEndDate": "2025-12-31 00:00:00",
                          "totalRevenue": "3,209",
                          "costOfRevenue": "67",
                          "grossProfit": "3,141",
                          "salesGeneralAndAdmin": "3,430",
                          "nonRecurringItems": "0",
                          "otherExpenses": "0",
                          "totalExpenses": "3,430",
                          "operatingIncome": "(288)",
                          "additionalIncomeExpenseItems": "(1,707)",
                          "earningsBeforeInterestTaxes": "(288)",
                          "earningsBeforeTax": "(1,909)",
                          "netIncomeOperations": "(1,909)",
                          "netIncome": "(1,909)",
                          "earningsperShare": "-0.05",
                          "priceEarnings": "-33.6",
                          "grossMargin": "0.979",
                          "operatingMargin": "-0.09"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2024-12-31 00:00:00",
                          "totalRevenue": "5,973",
                          "costOfRevenue": "0",
                          "grossProfit": "5,973",
                          "salesGeneralAndAdmin": "8,137",
                          "nonRecurringItems": "0",
                          "otherExpenses": "20",
                          "totalExpenses": "8,157",
                          "operatingIncome": "(2,184)",
                          "additionalIncomeExpenseItems": "(476)",
                          "earningsBeforeInterestTaxes": "(2,184)",
                          "earningsBeforeTax": "(3,718)",
                          "netIncomeOperations": "(3,718)",
                          "netIncome": "(3,718)",
                          "earningsperShare": "-0.1",
                          "grossMargin": "1",
                          "operatingMargin": "-0.3656"
                        },
                        {
                          "preliminary": false,
                          "periodEndDate": "2023-12-31 00:00:00",
                          "totalRevenue": "3,438",
                          "grossProfit": "3,438",
                          "salesGeneralAndAdmin": "6,040",
                          "nonRecurringItems": "350",
                          "otherExpenses": "22",
                          "totalExpenses": "6,412",
                          "operatingIncome": "(2,974)",
                          "additionalIncomeExpenseItems": "0",
                          "earningsBeforeInterestTaxes": "(2,974)",
                          "earningsBeforeTax": "(2,974)",
                          "netIncomeOperations": "(2,974)",
                          "netIncome": "(2,974)",
                          "earningsperShare": "-0.1",
                          "grossMargin": "1",
                          "operatingMargin": "-0.8649"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns income statement with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/financials/income-statement",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:55.105Z"
      }
    },
    "/v1/securities/{symbol}/insiders/external": {
      "get": {
        "summary": "External insiders",
        "operationId": "ofin_get_securities_symbol_insiders_external",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_insiders_externalResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.insiders.external",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:55.512Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:55.512Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": {
                        "totalRecords": 104,
                        "pages": 5,
                        "currentPage": 1,
                        "pageSize": 25,
                        "records": [
                          {
                            "id": 5276719,
                            "currencyId": 11,
                            "filerId": 420119,
                            "filerName": "LEVINSON ARTHUR D",
                            "formTypeId": 4,
                            "issueId": 472683,
                            "issueName": "APPLE INC.",
                            "typeId": 4,
                            "relationshipId": 12,
                            "transDate": 1779854400000,
                            "priceFrom": 0,
                            "numberOfShares": 65000,
                            "amountOwned": 3699576,
                            "ownershipTypeId": 0,
                            "dcn": "0001140361-26-023363",
                            "filingId": 19497947,
                            "typeName": "Disposition (Non Open Market)",
                            "relationshipName": "Director",
                            "ownershipTypeName": "direct"
                          },
                          {
                            "id": 5276718,
                            "currencyId": 11,
                            "filerId": 420119,
                            "filerName": "LEVINSON ARTHUR D",
                            "formTypeId": 4,
                            "issueId": 472683,
                            "issueName": "APPLE INC.",
                            "typeId": 2,
                            "relationshipId": 12,
                            "transDate": 1779854400000,
                            "priceFrom": 311.02,
                            "numberOfShares": 50000,
                            "amountOwned": 3764576,
                            "ownershipTypeId": 0,
                            "dcn": "0001140361-26-023363",
                            "filingId": 19497947,
                            "typeName": "Sell",
                            "relationshipName": "Director",
                            "ownershipTypeName": "direct"
                          },
                          {
                            "id": 5262572,
                            "currencyId": 11,
                            "filerId": 1362059,
                            "filerName": "BORDERS BEN",
                            "formTypeId": 4,
                            "issueId": 472683,
                            "issueName": "APPLE INC.",
                            "typeId": 9,
                            "relationshipId": 19,
                            "transDate": 1778212800000,
                            "priceFrom": 290,
                            "numberOfShares": 1274,
                            "amountOwned": 38713,
                            "ownershipTypeId": 0,
                            "dcn": "0001140361-26-020871",
                            "filingId": 19437036,
                            "typeName": "Automatic Sell",
                            "relationshipName": "Officer",
                            "ownershipTypeName": "direct"
                          }
                        ],
                        "sortOn": "1",
                        "sortDir": "D",
                        "key": "AAPL",
                        "plural": "Insider Transactions",
                        "singular": "Insider Transaction",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns external insiders with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/insiders/external",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:55.527Z"
      }
    },
    "/v1/securities/{symbol}/insiders/otc": {
      "get": {
        "summary": "OTC insiders",
        "operationId": "ofin_get_securities_symbol_insiders_otc",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_insiders_otcResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.insiders.otc",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:56.013Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:56.013Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": {
                        "totalRecords": 0,
                        "pages": 0,
                        "currentPage": 1,
                        "pageSize": 25,
                        "sortOn": "releaseDate",
                        "sortDir": "DESC",
                        "singular": "News & Financial Reports",
                        "plural": "News & Financial Report",
                        "empty": true
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns OTC insiders with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/insiders/otc",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:56.026Z"
      }
    },
    "/v1/securities/{symbol}/insiders/summary": {
      "get": {
        "summary": "Insider summary",
        "operationId": "ofin_get_securities_symbol_insiders_summary",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_insiders_summaryResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.insiders.summary",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:56.492Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:56.492Z",
                          "ttl_seconds": 1800,
                          "stale_seconds": 21600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "MLMC"
                        }
                      },
                      "data": {
                        "issueId": null,
                        "issueName": null,
                        "symbol": "MLMC",
                        "numberOfTransactions": 0,
                        "grossShares": 0,
                        "netShares": 0,
                        "numberOfBuys": 0,
                        "sharesBought": 0,
                        "numberOfSells": 0,
                        "sharesSold": 0,
                        "periodName": 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 limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns insider summary with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/MLMC/insiders/summary",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:56.505Z"
      }
    },
    "/v1/securities/{symbol}/news/external": {
      "get": {
        "summary": "External news",
        "operationId": "ofin_get_securities_symbol_news_external",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "refresh",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "x-ofin-contact",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Optional contact email for higher public rate limits and support diagnostics."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Bearer <key>"
            },
            "description": "Optional API-key authorization for higher-volume access tiers."
          }
        ],
        "security": [
          {},
          {
            "ContactEmail": []
          },
          {
            "BearerAuth": []
          },
          {
            "OfinApiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ofin_get_securities_symbol_news_externalResponse"
                },
                "examples": {
                  "live": {
                    "summary": "Live response",
                    "value": {
                      "meta": {
                        "provider": "otcmarkets",
                        "route": "security.news.external",
                        "status": "ok",
                        "cache": "miss",
                        "generated_at": "2026-06-07T01:34:57.031Z",
                        "freshness": {
                          "as_of": "2026-06-07T01:34:57.031Z",
                          "ttl_seconds": 300,
                          "stale_seconds": 3600,
                          "stale": false
                        },
                        "params": {
                          "symbol": "AAPL"
                        }
                      },
                      "data": {
                        "totalRecords": 9,
                        "pages": 1,
                        "currentPage": 1,
                        "pageSize": 10,
                        "sortOn": "1",
                        "sortDir": "D",
                        "records": [
                          {
                            "id": 3470538,
                            "title": "Apple unveils new accessibility features, and updates powered by Apple Intelligence",
                            "releaseDate": "2026-05-19T08:00:00.000-0400",
                            "sourceDesc": "BUSINESS WIRE"
                          },
                          {
                            "id": 3456512,
                            "title": "Apple reports second quarter results",
                            "releaseDate": "2026-04-30T16:30:00.000-0400",
                            "sourceDesc": "BUSINESS WIRE"
                          },
                          {
                            "id": 3456200,
                            "title": "iPhone Fold Is the Wrong Way to Read Apple's Foldable Strategy",
                            "releaseDate": "2026-04-30T03:00:00.000-0400",
                            "sourceDesc": "24-7 Press Releases"
                          }
                        ],
                        "singular": "News Item",
                        "plural": "News Items",
                        "empty": false
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. A required parameter is missing, malformed, or outside the supported range.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 400 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "bad_request",
                        "message": "Required query parameter is missing or invalid."
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. API-key authenticated tiers use an Authorization bearer token.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 401 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "unauthorized",
                        "message": "A valid API key is required for this tier."
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. The requested route, resource, or symbol could not be resolved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 404 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "not_found",
                        "message": "The requested resource was not found."
                      }
                    }
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed. Source API routes are documented as HTTP GET unless otherwise specified.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 405 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "method_not_allowed",
                        "message": "This route does not support the requested HTTP method."
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Retry after the limit reset or include the documented contact/API-key headers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 429 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "rate_limited",
                        "message": "Too many requests. Retry after the rate-limit reset."
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream source error. The source service rejected or failed the upstream request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 502 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_error",
                        "message": "The upstream source returned an error."
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable. The source API or an upstream dependency is temporarily unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 503 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "service_unavailable",
                        "message": "The service is temporarily unavailable."
                      }
                    }
                  }
                }
              }
            }
          },
          "504": {
            "description": "Upstream timeout. The upstream source did not return within the source API timeout window.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorEnvelope"
                },
                "examples": {
                  "default": {
                    "summary": "HTTP 504 error",
                    "value": {
                      "ok": false,
                      "error": {
                        "code": "upstream_timeout",
                        "message": "The upstream source timed out."
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns external news with source-native security, issuer, quote, or disclosure fields.",
        "tags": [
          "Securities"
        ],
        "x-source-api": "ofin",
        "x-source-name": "OTC Markets",
        "x-source-upstream": "otcmarkets.com",
        "x-docs-example-url": "https://api.ofin.bluedoor.sh/v1/securities/AAPL/news/external",
        "x-docs-example-status": 200,
        "x-docs-captured-at": "2026-06-07T01:34:57.050Z"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ContactEmail": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Ofin-Contact"
      },
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Manual API keys are available by emailing sam@bluedoor.sh."
      },
      "OfinApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Ofin-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
          }
        }
      },
      "ofin_get_reg_shoResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "positionDate": {
                      "type": "integer"
                    },
                    "securityId": {
                      "type": "integer"
                    },
                    "securityName": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "venue": {
                      "type": "string"
                    },
                    "regShoFlag": {
                      "type": "boolean"
                    },
                    "isRule4320": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "rule4320": {
                      "type": "boolean"
                    },
                    "tierGroupId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "isCaveatEmptor",
                    "isRule4320",
                    "positionDate",
                    "regShoFlag",
                    "rule4320",
                    "securityId",
                    "securityName",
                    "symbol",
                    "tierCode",
                    "tierGroupId",
                    "tierId",
                    "tierName",
                    "venue"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_sec_filingsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "exchangeId": {
                      "type": "integer"
                    },
                    "id": {
                      "type": "integer"
                    },
                    "dcn": {
                      "type": "string"
                    },
                    "secFileNo": {
                      "type": "string"
                    },
                    "formTypeId": {
                      "type": "integer"
                    },
                    "formType": {
                      "type": "string"
                    },
                    "receivedDate": {
                      "type": "integer"
                    },
                    "filedDate": {
                      "type": "integer"
                    },
                    "periodEndDate": {
                      "type": "integer"
                    },
                    "sizeOfFiling": {
                      "type": "integer"
                    },
                    "hasPdf": {
                      "type": "boolean"
                    },
                    "hasExcel": {
                      "type": "boolean"
                    },
                    "filedAsHtml": {
                      "type": "boolean"
                    },
                    "beenViewed": {
                      "type": "boolean"
                    },
                    "paperOnly": {
                      "type": "boolean"
                    },
                    "valid": {
                      "type": "boolean"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "companyCik": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "guid": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "beenViewed",
                    "companyCik",
                    "companyId",
                    "companyName",
                    "dcn",
                    "exchangeId",
                    "filedAsHtml",
                    "filedDate",
                    "formType",
                    "formTypeId",
                    "guid",
                    "hasExcel",
                    "hasPdf",
                    "id",
                    "paperOnly",
                    "periodEndDate",
                    "receivedDate",
                    "secFileNo",
                    "sizeOfFiling",
                    "symbol",
                    "tierCode",
                    "valid"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securitiesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "symbol": {
                      "type": "string"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "marketCap": {
                      "type": "number"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "industry": {
                      "type": "string"
                    },
                    "country": {
                      "type": "string"
                    },
                    "joined": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "companyName",
                    "country",
                    "industry",
                    "isCaveatEmptor",
                    "joined",
                    "marketCap",
                    "symbol",
                    "tierCode",
                    "tierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_caveat_emptorResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "changeDate": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "oldValue": {
                      "type": "string"
                    },
                    "newValue": {
                      "type": "string"
                    },
                    "closingPrice": {
                      "type": "number"
                    },
                    "marketCap": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "changeDate",
                    "closingPrice",
                    "isCaveatEmptor",
                    "marketCap",
                    "newValue",
                    "oldValue",
                    "symbol",
                    "tierCode",
                    "tierId",
                    "tierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_company_name_changesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "effectiveDate": {
                      "type": "integer"
                    },
                    "oldSymbol": {
                      "type": "string"
                    },
                    "oldTierId": {
                      "type": "integer"
                    },
                    "oldTierCode": {
                      "type": "string"
                    },
                    "oldTierName": {
                      "type": "string"
                    },
                    "oldCompanyName": {
                      "type": "string"
                    },
                    "newSymbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "newTierId": {
                      "type": "integer"
                    },
                    "newTierCode": {
                      "type": "string"
                    },
                    "newTierName": {
                      "type": "string"
                    },
                    "newCompanyName": {
                      "type": "string"
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    },
                    "oldSic": {
                      "type": "string"
                    },
                    "newSic": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "effectiveDate",
                    "isCaveatEmptor",
                    "newCompanyName",
                    "newSic",
                    "newSymbol",
                    "newTierCode",
                    "newTierId",
                    "newTierName",
                    "oldCompanyName",
                    "oldSic",
                    "oldSymbol",
                    "oldTierCode",
                    "oldTierId",
                    "oldTierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_grace_periodResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "startDate": {
                      "type": "integer"
                    },
                    "endDate": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "currentClosingPrice": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "marketCap": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "currentClosingPrice",
                    "endDate",
                    "isCaveatEmptor",
                    "marketCap",
                    "startDate",
                    "symbol",
                    "tierCode",
                    "tierId",
                    "tierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_promotionsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "latestPromoDate": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "promoStartDate": {
                      "type": "integer"
                    },
                    "promoDuration": {
                      "type": "integer"
                    },
                    "startDatePrice": {
                      "type": "number"
                    },
                    "currentClosingPrice": {
                      "type": "number"
                    },
                    "volume": {
                      "type": "integer"
                    },
                    "thirtyDayAvg": {
                      "type": "integer"
                    },
                    "volumeChangePct": {
                      "type": "number"
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "currentClosingPrice",
                    "isCaveatEmptor",
                    "latestPromoDate",
                    "promoDuration",
                    "promoStartDate",
                    "startDatePrice",
                    "symbol",
                    "thirtyDayAvg",
                    "tierCode",
                    "tierId",
                    "tierName",
                    "volume",
                    "volumeChangePct"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_reverse_splitsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "splitEffectiveDate": {
                      "type": "integer"
                    },
                    "oldSymbol": {
                      "type": "string"
                    },
                    "oldTierCode": {
                      "type": "string"
                    },
                    "oldTierName": {
                      "type": "string"
                    },
                    "newSymbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "newTierId": {
                      "type": "integer"
                    },
                    "newTierCode": {
                      "type": "string"
                    },
                    "newTierName": {
                      "type": "string"
                    },
                    "splitRatio": {
                      "type": "string"
                    },
                    "closePricePreSplit": {
                      "type": "number"
                    },
                    "marketCapPreSplit": {
                      "type": "number"
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    },
                    "currentClosingPrice": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "marketCap": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "closePricePreSplit",
                    "currentClosingPrice",
                    "isCaveatEmptor",
                    "marketCap",
                    "marketCapPreSplit",
                    "newSymbol",
                    "newTierCode",
                    "newTierId",
                    "newTierName",
                    "oldSymbol",
                    "oldTierCode",
                    "oldTierName",
                    "splitEffectiveDate",
                    "splitRatio"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_shell_status_changesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "shellChangeDate": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "oldValue": {
                      "type": "string"
                    },
                    "newValue": {
                      "type": "string"
                    },
                    "currentClosingPrice": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "marketCap": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "currentClosingPrice",
                    "isCaveatEmptor",
                    "marketCap",
                    "newValue",
                    "oldValue",
                    "shellChangeDate",
                    "symbol",
                    "tierCode",
                    "tierId",
                    "tierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_compliance_suspensions_revocationsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "effectiveDate": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "tierId": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "currentStatus": {
                      "type": "string"
                    },
                    "closingPrice": {
                      "type": "number"
                    },
                    "marketCap": {
                      "type": "number"
                    },
                    "caveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "caveatEmptor",
                    "closingPrice",
                    "currentStatus",
                    "effectiveDate",
                    "isCaveatEmptor",
                    "marketCap",
                    "symbol",
                    "tierCode",
                    "tierId",
                    "tierName"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_totalsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "securities": {
                "type": "string"
              },
              "dollarVolume": {
                "type": "string"
              },
              "shareVolume": {
                "type": "string"
              },
              "trades": {
                "type": "string"
              }
            },
            "required": [
              "dollarVolume",
              "securities",
              "shareVolume",
              "trades"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_news_news_idResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "news_id": {
                    "type": "string"
                  }
                },
                "required": [
                  "news_id"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "id": {
                "type": "integer"
              },
              "title": {
                "type": "string"
              },
              "companyId": {
                "type": "integer"
              },
              "releaseDate": {
                "type": "string"
              },
              "sourceId": {
                "type": "string"
              },
              "sourceDesc": {
                "type": "string"
              },
              "typeId": {
                "type": "string"
              },
              "typeDesc": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              }
            },
            "required": [
              "companyId",
              "id",
              "releaseDate",
              "sourceDesc",
              "sourceId",
              "symbol",
              "title",
              "typeDesc",
              "typeId"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_reg_sho_datesResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "id": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "value"
              ]
            }
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_sec_filings_externalResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "total": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "content": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "securityId": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "tierName": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "type": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "description",
                        "id"
                      ]
                    },
                    "status": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "description": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "description",
                        "id"
                      ]
                    },
                    "periodDate": {
                      "type": "string"
                    },
                    "createdDate": {
                      "type": "string"
                    },
                    "lastModifiedDate": {
                      "type": "string"
                    },
                    "releaseDate": {
                      "type": "string"
                    },
                    "storageId": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string"
                    },
                    "fileType": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "companyId",
                    "companyName",
                    "createdDate",
                    "fileType",
                    "id",
                    "lastModifiedDate",
                    "periodDate",
                    "releaseDate",
                    "securityId",
                    "source",
                    "status",
                    "storageId",
                    "symbol",
                    "tierName",
                    "title",
                    "type"
                  ]
                }
              }
            },
            "required": [
              "content",
              "currentPage",
              "pageSize",
              "pages",
              "total"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_searchResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "responseHeader": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "status": {
                    "type": "integer"
                  },
                  "QTime": {
                    "type": "integer"
                  }
                },
                "required": [
                  "QTime",
                  "status"
                ]
              },
              "response": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "numFound": {
                    "type": "integer"
                  },
                  "start": {
                    "type": "integer"
                  },
                  "docs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "symbol": {
                          "type": "string"
                        },
                        "venue": {
                          "type": "string"
                        },
                        "cusip": {
                          "type": "string"
                        },
                        "tierid": {
                          "type": "integer"
                        },
                        "companyname": {
                          "type": "string"
                        },
                        "comp_id": {
                          "type": "integer"
                        },
                        "isFixedIncome": {
                          "type": "boolean"
                        },
                        "status": {
                          "type": "string"
                        },
                        "security_desc": {
                          "type": "string"
                        },
                        "id": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "comp_id",
                        "companyname",
                        "cusip",
                        "id",
                        "isFixedIncome",
                        "security_desc",
                        "status",
                        "symbol",
                        "tierid",
                        "venue"
                      ]
                    }
                  }
                },
                "required": [
                  "docs",
                  "numFound",
                  "start"
                ]
              }
            },
            "required": [
              "response",
              "responseHeader"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_active_closingResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "securityId": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "priceNet": {
                      "type": "number"
                    },
                    "pctChange": {
                      "type": "number"
                    },
                    "shareVolume": {
                      "type": "integer"
                    },
                    "dollarVolume": {
                      "type": "number"
                    },
                    "tradeCount": {
                      "type": "integer"
                    },
                    "updateCount": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "companyId",
                    "companyName",
                    "dollarVolume",
                    "isCaveatEmptor",
                    "pctChange",
                    "price",
                    "priceNet",
                    "securityId",
                    "shareVolume",
                    "symbol",
                    "tierCode",
                    "tradeCount",
                    "updateCount"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "tierGroupId": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "tierGroupId",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_active_currentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_advancers_closingResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "securityId": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "price": {
                      "type": "number"
                    },
                    "priceNet": {
                      "type": "number"
                    },
                    "pctChange": {
                      "type": "number"
                    },
                    "shareVolume": {
                      "type": "integer"
                    },
                    "dollarVolume": {
                      "type": "number"
                    },
                    "tradeCount": {
                      "type": "integer"
                    },
                    "updateCount": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "companyId",
                    "companyName",
                    "dollarVolume",
                    "isCaveatEmptor",
                    "pctChange",
                    "price",
                    "priceNet",
                    "securityId",
                    "shareVolume",
                    "symbol",
                    "tierCode",
                    "tradeCount",
                    "updateCount"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "tierGroupId": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "tierGroupId",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_advancers_currentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "sortOn": {
                "type": "string"
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_decliners_closingResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "securityId": {
                      "type": "integer"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "price": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "priceNet": {
                      "type": "number"
                    },
                    "pctChange": {
                      "type": "number"
                    },
                    "shareVolume": {
                      "type": "integer"
                    },
                    "dollarVolume": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "tradeCount": {
                      "type": "integer"
                    },
                    "updateCount": {
                      "type": "integer"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "companyId",
                    "companyName",
                    "dollarVolume",
                    "isCaveatEmptor",
                    "pctChange",
                    "price",
                    "priceNet",
                    "securityId",
                    "shareVolume",
                    "symbol",
                    "tierCode",
                    "tradeCount",
                    "updateCount"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "tierGroupId": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "tierGroupId",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_decliners_currentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "sortOn": {
                "type": "string"
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_overnight_activeResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_overnight_advancersResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "sortOn": {
                "type": "string"
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_overnight_declinersResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "sortOn": {
                "type": "string"
              },
              "isRealTime": {
                "type": "boolean"
              },
              "bySymbol": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "bySymbol",
              "currentPage",
              "empty",
              "isRealTime",
              "pageSize",
              "pages",
              "records",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_overnight_snapshotResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "error": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        },
        "required": [
          "error",
          "meta"
        ]
      },
      "ofin_get_markets_snapshot_closingResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "dollarVolume": {
                "type": "integer"
              },
              "shareVolume": {
                "type": "integer"
              },
              "trades": {
                "type": "integer"
              },
              "advancers": {
                "type": "integer"
              },
              "decliners": {
                "type": "integer"
              },
              "lastUpdated": {
                "type": "integer"
              }
            },
            "required": [
              "advancers",
              "decliners",
              "dollarVolume",
              "lastUpdated",
              "shareVolume",
              "trades"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_markets_snapshot_currentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {}
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "error": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "code",
              "message"
            ]
          }
        },
        "required": [
          "error",
          "meta"
        ]
      },
      "ofin_get_news_news_id_contentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "news_id": {
                    "type": "string"
                  }
                },
                "required": [
                  "news_id"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_dividendsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {}
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "isDividend": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "isDividend",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_financial_reportsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "userId": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "typeId": {
                      "type": "string"
                    },
                    "statusId": {
                      "type": "string"
                    },
                    "periodDate": {
                      "type": "integer"
                    },
                    "isImmediate": {
                      "type": "boolean"
                    },
                    "createdDate": {
                      "type": "integer"
                    },
                    "lastModifiedDate": {
                      "type": "integer"
                    },
                    "releaseDate": {
                      "type": "integer"
                    },
                    "canDistribute": {
                      "type": "boolean"
                    },
                    "wasDistributed": {
                      "type": "boolean"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "reportType": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "statusDescript": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "primarySymbol": {
                      "type": "string"
                    },
                    "isCaveatEmptor": {
                      "type": "boolean"
                    },
                    "edgarSECFiling": {
                      "type": "boolean"
                    },
                    "tierCode": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "canDistribute",
                    "companyId",
                    "companyName",
                    "createdDate",
                    "edgarSECFiling",
                    "id",
                    "isCaveatEmptor",
                    "isImmediate",
                    "lastModifiedDate",
                    "name",
                    "periodDate",
                    "primarySymbol",
                    "releaseDate",
                    "reportType",
                    "statusDescript",
                    "statusId",
                    "symbol",
                    "tierCode",
                    "title",
                    "typeId",
                    "userId",
                    "wasDistributed"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "companyId": {
                "type": "integer"
              },
              "statusId": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "companyId",
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "statusId",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_newsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "releaseDate": {
                      "type": "string"
                    },
                    "sourceId": {
                      "type": "string"
                    },
                    "sourceDesc": {
                      "type": "string"
                    },
                    "typeId": {
                      "type": "string"
                    },
                    "typeDesc": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "companyId",
                    "id",
                    "releaseDate",
                    "sourceDesc",
                    "sourceId",
                    "title",
                    "typeDesc",
                    "typeId"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_sec_filingsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "exchangeId": {
                      "type": "integer"
                    },
                    "id": {
                      "type": "integer"
                    },
                    "dcn": {
                      "type": "string"
                    },
                    "secFileNo": {
                      "type": "string"
                    },
                    "formTypeId": {
                      "type": "integer"
                    },
                    "formType": {
                      "type": "string"
                    },
                    "receivedDate": {
                      "type": "integer"
                    },
                    "filedDate": {
                      "type": "integer"
                    },
                    "periodEndDate": {
                      "type": "integer"
                    },
                    "sizeOfFiling": {
                      "type": "integer"
                    },
                    "hasPdf": {
                      "type": "boolean"
                    },
                    "hasExcel": {
                      "type": "boolean"
                    },
                    "filedAsHtml": {
                      "type": "boolean"
                    },
                    "beenViewed": {
                      "type": "boolean"
                    },
                    "paperOnly": {
                      "type": "boolean"
                    },
                    "valid": {
                      "type": "boolean"
                    },
                    "companyId": {
                      "type": "integer"
                    },
                    "companyName": {
                      "type": "string"
                    },
                    "companyCik": {
                      "type": "string"
                    },
                    "filedAsName": {
                      "type": "string"
                    },
                    "symbol": {
                      "type": "string"
                    },
                    "tierCode": {
                      "type": "string"
                    },
                    "guid": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "beenViewed",
                    "companyCik",
                    "companyId",
                    "companyName",
                    "dcn",
                    "exchangeId",
                    "filedAsHtml",
                    "filedAsName",
                    "filedDate",
                    "formType",
                    "formTypeId",
                    "guid",
                    "hasExcel",
                    "hasPdf",
                    "id",
                    "paperOnly",
                    "periodEndDate",
                    "receivedDate",
                    "secFileNo",
                    "sizeOfFiling",
                    "symbol",
                    "tierCode",
                    "valid"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_splitsResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "changeDate": {
                      "type": "integer"
                    },
                    "recordDate": {
                      "type": "integer"
                    },
                    "actionType": {
                      "type": "string"
                    },
                    "comments": {
                      "type": "string"
                    },
                    "splitRatio": {
                      "type": "string"
                    },
                    "payDate": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "actionType",
                    "changeDate",
                    "comments",
                    "payDate",
                    "recordDate",
                    "splitRatio"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "isDividend": {
                "type": "boolean"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "isDividend",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_news_external_news_id_contentResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "news_id": {
                    "type": "string"
                  }
                },
                "required": [
                  "news_id"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_financials_balance_sheetResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "preliminary": {
                  "type": "boolean"
                },
                "periodEndDate": {
                  "type": "string"
                },
                "cashAndCashEquivalents": {
                  "type": "string"
                },
                "netReceivables": {
                  "type": "string"
                },
                "otherCurrentAssets": {
                  "type": "string"
                },
                "totalCurrentAssets": {
                  "type": "string"
                },
                "propertyPlantAndEquipment": {
                  "type": "string"
                },
                "totalAssets": {
                  "type": "string"
                },
                "accountPayable": {
                  "type": "string"
                },
                "totalCurrentLiabilities": {
                  "type": "string"
                },
                "otherLiabilitiesWithContingencies": {
                  "type": "string"
                },
                "totalLiabilities": {
                  "type": "string"
                },
                "commonStock": {
                  "type": "string"
                },
                "retainedEarnings": {
                  "type": "string"
                },
                "capitalSurplus": {
                  "type": "string"
                },
                "totalStockholderEquity": {
                  "type": "string"
                },
                "totalLiablitiesAndStockholderEquity": {
                  "type": "string"
                },
                "netTangibleAssets": {
                  "type": "string"
                },
                "goodwill": {
                  "type": "string"
                },
                "otherAssets": {
                  "type": "string"
                },
                "shortTermAndCurrentLongTermDebt": {
                  "type": "string"
                },
                "otherLiabilities": {
                  "type": "string"
                },
                "preferredStock": {
                  "type": "string"
                }
              },
              "required": [
                "accountPayable",
                "capitalSurplus",
                "cashAndCashEquivalents",
                "commonStock",
                "goodwill",
                "netReceivables",
                "netTangibleAssets",
                "otherAssets",
                "otherCurrentAssets",
                "otherLiabilities",
                "otherLiabilitiesWithContingencies",
                "periodEndDate",
                "preferredStock",
                "preliminary",
                "propertyPlantAndEquipment",
                "retainedEarnings",
                "shortTermAndCurrentLongTermDebt",
                "totalAssets",
                "totalCurrentAssets",
                "totalCurrentLiabilities",
                "totalLiabilities",
                "totalLiablitiesAndStockholderEquity",
                "totalStockholderEquity"
              ]
            }
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_financials_cash_flowResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "preliminary": {
                  "type": "boolean"
                },
                "periodEndDate": {
                  "type": "string"
                },
                "netIncome": {
                  "type": "string"
                },
                "depreciation": {
                  "type": "string"
                },
                "adjustmentsToNetIncome": {
                  "type": "string"
                },
                "changesInLiabilities": {
                  "type": "string"
                },
                "changesInAccountReceivables": {
                  "type": "string"
                },
                "changesInInventories": {
                  "type": "string"
                },
                "changesInOtherOperatingActivities": {
                  "type": "string"
                },
                "totalCashFlowFromOperatingActivities": {
                  "type": "string"
                },
                "capitalExpenditures": {
                  "type": "string"
                },
                "investments": {
                  "type": "string"
                },
                "otherCashFlowFromInvestingActivities": {
                  "type": "string"
                },
                "totalCashFlowFromInvestingActivities": {
                  "type": "string"
                },
                "dividendsPaid": {
                  "type": "string"
                },
                "salePurchaseOfStock": {
                  "type": "string"
                },
                "netBorrowings": {
                  "type": "string"
                },
                "otherCashFlowsFromFinancingActivities": {
                  "type": "string"
                },
                "totalCashFlowsFromFinancingActivities": {
                  "type": "string"
                },
                "changeInCashAndEquities": {
                  "type": "string"
                }
              },
              "required": [
                "adjustmentsToNetIncome",
                "capitalExpenditures",
                "changeInCashAndEquities",
                "changesInAccountReceivables",
                "changesInInventories",
                "changesInLiabilities",
                "changesInOtherOperatingActivities",
                "depreciation",
                "dividendsPaid",
                "investments",
                "netBorrowings",
                "netIncome",
                "otherCashFlowFromInvestingActivities",
                "otherCashFlowsFromFinancingActivities",
                "periodEndDate",
                "preliminary",
                "salePurchaseOfStock",
                "totalCashFlowFromInvestingActivities",
                "totalCashFlowFromOperatingActivities",
                "totalCashFlowsFromFinancingActivities"
              ]
            }
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_financials_income_statementResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "preliminary": {
                  "type": "boolean"
                },
                "periodEndDate": {
                  "type": "string"
                },
                "totalRevenue": {
                  "type": "string"
                },
                "costOfRevenue": {
                  "type": "string"
                },
                "grossProfit": {
                  "type": "string"
                },
                "salesGeneralAndAdmin": {
                  "type": "string"
                },
                "nonRecurringItems": {
                  "type": "string"
                },
                "otherExpenses": {
                  "type": "string"
                },
                "totalExpenses": {
                  "type": "string"
                },
                "operatingIncome": {
                  "type": "string"
                },
                "additionalIncomeExpenseItems": {
                  "type": "string"
                },
                "earningsBeforeInterestTaxes": {
                  "type": "string"
                },
                "earningsBeforeTax": {
                  "type": "string"
                },
                "netIncomeOperations": {
                  "type": "string"
                },
                "netIncome": {
                  "type": "string"
                },
                "earningsperShare": {
                  "type": "string"
                },
                "priceEarnings": {
                  "type": "string"
                },
                "grossMargin": {
                  "type": "string"
                },
                "operatingMargin": {
                  "type": "string"
                }
              },
              "required": [
                "additionalIncomeExpenseItems",
                "costOfRevenue",
                "earningsBeforeInterestTaxes",
                "earningsBeforeTax",
                "earningsperShare",
                "grossMargin",
                "grossProfit",
                "netIncome",
                "netIncomeOperations",
                "nonRecurringItems",
                "operatingIncome",
                "operatingMargin",
                "otherExpenses",
                "periodEndDate",
                "preliminary",
                "priceEarnings",
                "salesGeneralAndAdmin",
                "totalExpenses",
                "totalRevenue"
              ]
            }
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_insiders_externalResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "currencyId": {
                      "type": "integer"
                    },
                    "filerId": {
                      "type": "integer"
                    },
                    "filerName": {
                      "type": "string"
                    },
                    "formTypeId": {
                      "type": "integer"
                    },
                    "issueId": {
                      "type": "integer"
                    },
                    "issueName": {
                      "type": "string"
                    },
                    "typeId": {
                      "type": "integer"
                    },
                    "relationshipId": {
                      "type": "integer"
                    },
                    "transDate": {
                      "type": "integer"
                    },
                    "priceFrom": {
                      "oneOf": [
                        {
                          "type": "integer"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    },
                    "numberOfShares": {
                      "type": "integer"
                    },
                    "amountOwned": {
                      "type": "integer"
                    },
                    "ownershipTypeId": {
                      "type": "integer"
                    },
                    "dcn": {
                      "type": "string"
                    },
                    "filingId": {
                      "type": "integer"
                    },
                    "typeName": {
                      "type": "string"
                    },
                    "relationshipName": {
                      "type": "string"
                    },
                    "ownershipTypeName": {
                      "type": "string"
                    },
                    "priceTo": {
                      "oneOf": [
                        {
                          "type": "number"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    }
                  },
                  "required": [
                    "amountOwned",
                    "currencyId",
                    "dcn",
                    "filerId",
                    "filerName",
                    "filingId",
                    "formTypeId",
                    "id",
                    "issueId",
                    "issueName",
                    "numberOfShares",
                    "ownershipTypeId",
                    "ownershipTypeName",
                    "priceFrom",
                    "priceTo",
                    "relationshipId",
                    "relationshipName",
                    "transDate",
                    "typeId",
                    "typeName"
                  ]
                }
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "singular": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "key",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_insiders_otcResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_insiders_summaryResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "issueId": {
                "nullable": true
              },
              "issueName": {
                "nullable": true
              },
              "symbol": {
                "type": "string"
              },
              "numberOfTransactions": {
                "type": "integer"
              },
              "grossShares": {
                "type": "integer"
              },
              "netShares": {
                "type": "integer"
              },
              "numberOfBuys": {
                "type": "integer"
              },
              "sharesBought": {
                "type": "integer"
              },
              "numberOfSells": {
                "type": "integer"
              },
              "sharesSold": {
                "type": "integer"
              },
              "periodName": {
                "nullable": true
              }
            },
            "required": [
              "grossShares",
              "issueId",
              "issueName",
              "netShares",
              "numberOfBuys",
              "numberOfSells",
              "numberOfTransactions",
              "periodName",
              "sharesBought",
              "sharesSold",
              "symbol"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      },
      "ofin_get_securities_symbol_news_externalResponse": {
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "meta": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "provider": {
                "type": "string"
              },
              "route": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "cache": {
                "type": "string"
              },
              "generated_at": {
                "type": "string"
              },
              "freshness": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "as_of": {
                    "type": "string"
                  },
                  "ttl_seconds": {
                    "type": "integer"
                  },
                  "stale_seconds": {
                    "type": "integer"
                  },
                  "stale": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "as_of",
                  "stale",
                  "stale_seconds",
                  "ttl_seconds"
                ]
              },
              "params": {
                "type": "object",
                "additionalProperties": true,
                "properties": {
                  "symbol": {
                    "type": "string"
                  }
                },
                "required": [
                  "symbol"
                ]
              }
            },
            "required": [
              "cache",
              "freshness",
              "generated_at",
              "params",
              "provider",
              "route",
              "status"
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "totalRecords": {
                "type": "integer"
              },
              "pages": {
                "type": "integer"
              },
              "currentPage": {
                "type": "integer"
              },
              "pageSize": {
                "type": "integer"
              },
              "sortOn": {
                "type": "string"
              },
              "sortDir": {
                "type": "string"
              },
              "records": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "title": {
                      "type": "string"
                    },
                    "releaseDate": {
                      "type": "string"
                    },
                    "sourceDesc": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "releaseDate",
                    "sourceDesc",
                    "title"
                  ]
                }
              },
              "singular": {
                "type": "string"
              },
              "plural": {
                "type": "string"
              },
              "empty": {
                "type": "boolean"
              }
            },
            "required": [
              "currentPage",
              "empty",
              "pageSize",
              "pages",
              "plural",
              "records",
              "singular",
              "sortDir",
              "sortOn",
              "totalRecords"
            ]
          }
        },
        "required": [
          "data",
          "meta"
        ]
      }
    }
  },
  "x-generated-at": "2026-06-07T01:30:59.456Z",
  "x-source-api": "ofin",
  "x-source-base-url": "https://api.ofin.bluedoor.sh"
}
