---
title: "US Equities OTC Security Master"
method: GET
path: "/v1/data/us-equity-ref/otc-sec-master"
tags: ["us-equity-ref-sec-master-lookups"]
---

# US Equities OTC Security Master

`GET /v1/data/us-equity-ref/otc-sec-master`

## Request

- Base URL: `https://api.algoseek.com`
- URL: `https://api.algoseek.com/v1/data/us-equity-ref/otc-sec-master`
- Auth: API key in header `X-API-KEY`
- TypeScript: <https://skmtc.dev/algoseek/apis/datasets-api/docs/v1/data/us-equity-ref/otc-sec-master/get.ts> (a function with typed inputs; its response is checked against the schema)

The algoseek US Equity OTC Security Master provides comprehensive reference information on all Over-the-Counter (OTC) securities with complete historical tracking of attribute changes. The dataset tracks the complete history of security attributes, including symbols, names, identifiers (ISIN, FIGI, LEI), company information, and trading status. It enables tracking of symbol and name changes, identification of company information and relationships, cross-referencing securities using multiple identifiers, monitoring of trading status, and historical analysis with complete date ranges for all attribute changes. Daily updates run twice each trading day (~7 AM and ~10 PM) to capture changes to active securities. Coverage spans November 1, 2024, to present.

 For more details, please refer to the dataset documentation: [US Equities OTC Security Master Guide](https://us-equity-reference-docs.s3.us-east-1.amazonaws.com/algoseek.US.Equity.OTC.Security.Master.pdf).

<details>
<summary>**Advanced Filtering**</summary>

You can provide one or multiple filter expressions based on the dataset's columns to narrow down the results. For example, `StartDate.gt=2023-01-01&StartDate.lt=2023-12-31`, `Ticker=AAPL`. 

Please refer to the <a href="https://algoseek.com/docs/rest-api/tutorial/advanced-filtering">Advanced Filtering Guide</a> for the extensive reference.
</details>

## Query parameters

- `sort` string, nullable: Sorting criteria for the results. Provide a column name with optional prefix '+' for ascending order, or prefix with '-' for descending order. Multiple sorting fields may be supported depending on the dataset. If sort prefix is not provided, the ascending order is applied.
- `columns` string, nullable: A comma-separated list of columns to include in the response. Use this parameter to select only specific fields from the dataset. If not provided, all available columns will be returned.
- `offset` integer: Number of records to skip before returning results. To be used with the `limit` parameter for pagination. If not provided, defaults to 0.
- `limit` integer: Maximum number of records to return. Default and maximum values depend on the response format; see `format_limits` in the schema for details.
- `response_format` 'json' | 'csv' | 'csv_gzip': Note the lowercase which is used for the consistency with other projects and tools

## Response `200`

JSON, CSV file, or gzip-compressed CSV file, depending on the value of `response_format` query parameter

- USEquitiesOTCSecurityMasterDataOut
  - `data` USEquitiesOTCSecurityMasterDataDetailsOut[], required
    - `ASID` integer, nullable: algoseek unique security identifier
    - `OTCSecId` integer[], nullable: List of OTC SecIds related to security structure separated by a semicolon for multiple SecIds
    - `OTCSecIdDateRange` string[], nullable: Start and end dates for each OTC SecId. EndDate = 29991231 when the SecId is still being used
    - `OTCCompId` integer[], nullable: List of OTC CompIds related to company structure separated by a semicolon for multiple CompIds
    - `OTCCompIdDateRange` string[], nullable: Start and end dates for each OTC CompId. EndDate = 29991231 when the CompId is still being used
    - `Ticker` string[], nullable: List of symbol names separated by a semicolon for multiple symbols
    - `TickerDateRange` string[], nullable: Start and end dates for each OTC CompId. EndDate = 29991231 when the CompId is still being used
    - `SecurityName` string[], nullable: List of security names separated by a semicolon for multiple names
    - `SecurityNameDateRange` string[], nullable: Start and end dates for each security name. EndDate = 29991231 when the name is still being used
    - `CompanyName` string[], nullable: List of company names separated by a semicolon for multiple names
    - `CompanyNameDateRange` string[], nullable: Start and end dates for each company name. EndDate = 29991231 when the name is still being used
    - `SecurityClass` string[], nullable: Security Class (e.g., A, B, C)
    - `SecurityClassDateRange` string[], nullable: Start and end dates for each security class. EndDate = 29991231 when the security class is still being used
    - `SecurityType` string[], nullable: Security Type (e.g., common, unit, warrant)
    - `SecurityTypeDateRange` string[], nullable: Start and end dates for each security type. EndDate = 29991231 when the security type is still being used
    - `SecurityStatus` string[], nullable: Security Status (e.g., active, suspended, delisted)
    - `SecurityStatusDateRange` string[], nullable: Start and end dates for each security status. EndDate = 29991231 when the security status is still being used
    - `ISIN` string[], nullable: List of security ISIN codes separated by a semicolon for multiple ISINs
    - `ISINDateRange` string[], nullable: Start and end dates for each ISIN. EndDate = 29991231 when the ISIN is still being used
    - `FIGI` string[], nullable: List of security composite FIGI codes separated by a semicolon for multiple FIGIs
    - `FIGIDateRange` string[], nullable: Start and end dates for each FIGI. EndDate = 29991231 when the FIGI is still being used
    - `ShareClassFIGI` string[], nullable: List of security global FIGI codes separated by a semicolon for multiple FIGIs
    - `ShareClassFIGIDateRange` string[], nullable: Start and end dates for each FIGI. EndDate = 29991231 when the FIGI is still being used
    - `LEI` string[], nullable: LEI code, a unique identifier assigned to a legal entity
    - `LEIDateRange` string[], nullable: Start and end dates for each LEI. EndDate = 29991231 when the LEI is still being used
  - `pagination` PaginationDetailsOut, required
    - `offset` integer: The number of records skipped to fetch the current page
    - `limit` integer, required: The maximum number of records in the current page
    - `next_offset` integer, nullable: The number of records to skip to fetch the next page

## Other responses

- `403`: Forbidden
- `422`: Validation Error
- `429`: Request rejected because the identity or team exceeded a configured monthly or per-minute usage quota. When available, the response includes rate-limit headers describing the current quota.

## Changes

- **2026-11-06** `0eaff26d2eca`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/algoseek/apis/datasets-api/changes/v1/data/us-equity-ref/otc-sec-master/get.md)

---

[API](https://skmtc.dev/algoseek/apis/datasets-api.md) - [All operations](https://skmtc.dev/algoseek/apis/datasets-api/llms.txt) - [OpenAPI document](https://skmtc.dev/algoseek/apis/datasets-api/revisions/0eaff26d2eca?raw)
