Search Symbols
searchSymbols/symbols/search/{symbol}Base URL: https://api.cert.tastyworks.com (Sandbox) · https://api.tastyworks.com (Production)
Search tastytrade's tradeable instruments by symbol or symbol fragment — for example, searching `AAP` returns both `AAP` and `AAPL` — letting you power type-ahead and symbol-picker experiences. Each match returns lightweight metadata such as the company name, listed market, instrument type, and whether the symbol has listed options. This is a read-only lookup; use the full `/instruments/...` endpoints once you know the exact symbol you want to trade.
Code samples
curl -X GET 'https://api.cert.tastyworks.com/symbols/search/AAP' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'User-Agent: tastytrade-docs-example/1.0'import requests
url = "https://api.cert.tastyworks.com/symbols/search/AAP"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
}
resp = requests.get(url, headers=headers)
print(resp.status_code, resp.json())const resp = await fetch("https://api.cert.tastyworks.com/symbols/search/AAP", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"User-Agent": "tastytrade-docs-example/1.0",
},
})
const data = await resp.json()
console.log(resp.status, data)package main
import (
"net/http"
"io"
"fmt"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.cert.tastyworks.com/symbols/search/AAP", nil)
req.Header.Set("Authorization", "Bearer YOUR_ACCESS_TOKEN")
req.Header.Set("User-Agent", "tastytrade-docs-example/1.0")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(resp.Status, string(out))
}import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.cert.tastyworks.com/symbols/search/AAP"))
.header("Authorization", "Bearer YOUR_ACCESS_TOKEN")
.header("User-Agent", "tastytrade-docs-example/1.0")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.statusCode() + " " + resp.body());Parameters
| Name | In | Type | Description |
|---|---|---|---|
| symbol* | path | string | Symbol or fragment of a symbol to search, i.e. `AAP` will return AAP and AAPL data e.g. "AAP" |
Responses
Example response
{
"data": {
"symbol": "AAPL",
"description": "APPLE INC",
"listed-market": "XNAS",
"price-increments": "100.00",
"trading-hours": "string",
"options": true,
"instrument-type": "Equity"
},
"context": "/symbols/search/{symbol}"
}Schema
datarequiredobject (SymbolData)A lightweight search result describing an instrument that matched a symbol search. It carries just enough metadata (name, market, instrument type, options availability) to display a match in a symbol picker; fetch the full instrument definition from the `/instruments/...` endpoints once the exact symbol is known.
symbolstringThe instrument's unique symbol, used as its primary identifier across lookups, order legs, and positions.
example:
"AAPL"descriptionstringHuman-readable company or instrument name for display alongside the symbol.
example:
"APPLE INC"listed-marketstringCode of the market where the instrument is listed (e.g. `XNAS`, `ARCX`, `OTC`).
example:
"XNAS"price-incrementsstringAllowable price increments (tick sizes) for the instrument, expressed as a string.
trading-hoursstringTrading hours for the instrument.
optionsbooleanWhether the instrument has listed options available for trading.
example:
trueinstrument-typestringThe kind of instrument the symbol represents, e.g. Equity, Equity Option, Future, Future Option, or Cryptocurrency.
example:
"Equity"
contextrequiredstringexample:
"/symbols/search/{symbol}"
Example response
{
"error": {
"code": "unauthorized",
"message": "No valid access token was provided; access tokens expire after 15 minutes."
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "not_permitted",
"message": "User not permitted access"
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Example response
{
"error": {
"code": "string",
"message": "string",
"errors": [
{
"code": "string",
"message": "string",
"domain": "string"
}
]
}
}Schema
errorrequiredobjectcoderequiredstringMachine-readable error code (see the Error reference).
messagerequiredstringHuman-readable explanation.
errorsarray<object>{3 fields}Present for multi-error / validation failures; one entry per problem.
Related
- Rate-limit class:
read· idempotent — Rate limits & backoff - Error reference — codes, causes, and fixes
Agents: this page is also Markdown (with the embedded OpenAPI definition) — append .md or send Accept: text/markdown. Index at /llms.txt.