---
title: "Search Instruments By Symbol"
method: POST
path: "/iserver/secdef/search"
tags: ["tradingContracts"]
---

# Search Instruments By Symbol

`POST /iserver/secdef/search`

Returns a list of contracts based on the search symbol provided as a query param.

## Request body

- object
  - `symbol` string, required — The ticker symbol, bond issuer type, or company name of the equity you are looking to trade.
  - `secType` 'STK' | 'IND' | 'BOND' — Available underlying security types: * `STK` - Represents an underlying as a Stock security type. * `IND` - Represents an underlying as an Index security type. * `BOND` - Represents an underlying as a Bond security type.
  - `name` boolean — Denotes if the symbol value is the ticker symbol or part of the company's name.
  - `more` boolean
  - `fund` boolean — fund search
  - `fundFamilyConidEx` string
  - `pattern` boolean — pattern search
  - `referrer` string

## Response `200`

An array of objects detailing contract information.

- SecdefSearchResponseItems[]
  - `bondid` integer — applicable for bonds
  - `conid` string — Contract identifier for the unique contract.
  - `companyHeader` string — Company Name - Exchange
  - `companyName` string, nullable — Formal name of the company.
  - `symbol` string — Underlying ticker symbol.
  - `description` string — Primary exchange of the contract
  - `restricted` boolean, nullable — Returns if the contract is available for trading.
  - `fop` string, nullable — Returns a string of dates, separated by semicolons.
  - `opt` string, nullable — Returns a string of dates, separated by semicolons.
  - `war` string, nullable — Returns a string of dates, separated by semicolons.
  - `sections` SecdefSearchResponseItemsSectionsItems[]
    - `secType` string
    - `months` string — semicolon separated list of months
    - `exchange` string — semicolon separated list of exchanges
  - `issuers` SecdefSearchResponseItemsIssuersItems[]
    - `id` string
    - `name` string

## Other responses

- `400` — Missing, empty, non-numeric, or out-of-range parameter. The `error` field is always prefixed with `Bad Request:`.
- `401` — Missing, invalid, or unparseable Authorization token.
- `500` — internal server error, returned when incoming request cannot be processed. It can sometimes include subset of bad requests. For example, wrong accountId passed and it can only be detected later in handling request. Error contains reason of the problem.
- `503` — service is unavailable. For example if request takes more than 10s due to some internal service unavailability, request aborted and this status returned

---

[API](https://skmtc.net/interactivebrokers/apis/api-reference.md) · [All operations](https://skmtc.net/interactivebrokers/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/interactivebrokers/api-reference/revisions/67f9f562c2c6/schema)
