---
title: "Search Instruments"
method: GET
path: "/v1/instruments/search"
tags: ["Instruments"]
---

# Search Instruments

`GET /v1/instruments/search`

Search instruments by symbol, alternate identifier, or company name.

The `q` parameter is case-insensitive and supports ticker symbols,
alternate identifiers such as CUSIP, ISIN, and OPRA root,
and company names for non-option instruments. Results are ranked by match
quality plus instrument quality signals and relevance. Defaults to the `EQUITY` asset class (common
stocks, preferred shares, ADRs, ETFs, and exchange-traded mutual funds).
Pass `asset_class=OPTION` to search option contracts: by full OSI symbol, by
an OSI prefix (root + `YYMMDD` expiry, e.g. `AAPL  261217`), or by a
root-scoped phrase such as `AAPL Dec 250 call`.

## Query parameters

- `q` string, required
- `asset_class` string
- `include_inactive` boolean
- `include_ptp` boolean
- `currency` string
- `country` string
- `page_size` integer
- `page_token` string, byte — Base64URL-encoded pagination token

## Response `200`

Ranked list of matching instruments

- object
  - `error` ApiError — A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required — The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required — A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required — Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `page_number` integer, nullable — Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable — Base64URL-encoded pagination token
    - `request_id` string, required — A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable — Total number of items available (not just in this page).
    - `total_pages` integer, nullable — Total number of pages available.
  - `data` InstrumentCore[], required
    - `adv` string, nullable — Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.
    - `country_of_issue` string, required — The ISO country code of the instrument's issue
    - `currency` string, required — The ISO currency code in which the instrument is traded
    - `easy_to_borrow` boolean, required — Indicates if the instrument is classified as Easy-To-Borrow
    - `id` string, uuid, required — Unique instrument identifier (UUID)
    - `instrument_type` 'COMMON_STOCK' | 'INDEX' | 'OPTION' | 'CASH' — Security type
    - `is_fractionable` boolean, required — Indicates if the instrument supports fractional-quantity orders
    - `is_liquidation_only` boolean, required — Indicates if the instrument is liquidation only and cannot be bought
    - `is_marginable` boolean, required — Indicates if the instrument is marginable
    - `is_ptp` boolean, required — Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.
    - `is_short_prohibited` boolean, required — Indicates if short selling is prohibited for the instrument
    - `is_threshold_security` boolean, required — Indicates if the instrument is on the Regulation SHO Threshold Security List
    - `is_tradable` boolean, required — Indicates if the instrument is tradable
    - `long_margin_rate` string, nullable — The percent of a long position's value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.
    - `name` string, nullable — The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.
    - `notional_adv` string, nullable — Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.
    - `previous_close` string, nullable — Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.
    - `short_margin_rate` string, nullable — The percent of a short position's value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.
    - `symbol` string, required — The trading symbol for the instrument
    - `venue` string, required — The MIC code of the primary listing venue

## Other responses

- `400` — Missing or invalid query parameters
- `500` — Internal server error
- `503` — Instrument data is not ready yet

---

[API](https://skmtc.net/clear-street/apis/clear-street-trading-api.md) · [All operations](https://skmtc.net/clear-street/apis/clear-street-trading-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/clear-street-trading-api/versions/80e6fb2644e0/schema)
