SnapTrade · Schema

UniversalSymbol

Uniquely describes a single security + exchange combination across all brokerages.

CompanyFintechBrokerageTrading

Properties

Name Type Description
id object
symbol string The security's trading ticker symbol. For example "AAPL" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on "Yahoo Finance Market Cover
raw_symbol string The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is "VAB.TO", then `raw_symbol` is "VAB".
description stringnull A human-readable description of the security. This is usually the company name or ETF name.
currency object The currency in which the security is traded.
exchange object The exchange on which the security is listed and traded.
type object
figi_code stringnull This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value sho
figi_instrument object
currencies array This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.
View JSON Schema on GitHub

JSON Schema

snaptrade-universal-symbol-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/snaptrade/main/json-schema/snaptrade-universal-symbol-schema.json",
  "title": "UniversalSymbol",
  "description": "Uniquely describes a single security + exchange combination across all brokerages.",
  "x-generated": "2026-10-21",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/snaptrade-openapi.yml#/components/schemas/UniversalSymbol",
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/$defs/UniversalSymbolID"
    },
    "symbol": {
      "description": "The security's trading ticker symbol. For example \"AAPL\" for Apple Inc. We largely follow the [Yahoo Finance ticker format](https://help.yahoo.com/kb/SLN2310.html)(click on \"Yahoo Finance Market Coverage and Data Delays\"). For example, for securities traded on the Toronto Stock Exchange, the symbol has a '.TO' suffix. For securities traded on NASDAQ or NYSE, the symbol does not have a suffix. Share classes and preferred series use SnapTrade's canonical dotted form, for example `HBND.U.TO`, `FTN.PR.A.TO`, and `ECF.PRA`.",
      "type": "string"
    },
    "raw_symbol": {
      "description": "The raw symbol is `symbol` with the exchange suffix removed. For example, if `symbol` is \"VAB.TO\", then `raw_symbol` is \"VAB\".",
      "type": "string"
    },
    "description": {
      "description": "A human-readable description of the security. This is usually the company name or ETF name.",
      "type": [
        "string",
        "null"
      ]
    },
    "currency": {
      "description": "The currency in which the security is traded.",
      "allOf": [
        {
          "$ref": "#/$defs/Currency"
        }
      ]
    },
    "exchange": {
      "description": "The exchange on which the security is listed and traded.",
      "allOf": [
        {
          "$ref": "#/$defs/Exchange"
        }
      ]
    },
    "type": {
      "$ref": "#/$defs/SecurityType"
    },
    "figi_code": {
      "description": "This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information. This value should be the same as the `figi_code` in the `figi_instrument` child property.",
      "type": [
        "string",
        "null"
      ]
    },
    "figi_instrument": {
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/FigiInstrument"
        }
      ]
    },
    "currencies": {
      "deprecated": true,
      "description": "This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/Currency"
      }
    }
  },
  "required": [
    "id",
    "symbol",
    "raw_symbol",
    "currency",
    "type",
    "currencies"
  ],
  "$defs": {
    "Currency": {
      "description": "Describes a currency object.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/CurrencyID"
        },
        "code": {
          "type": "string",
          "description": "The ISO-4217 currency code for the currency."
        },
        "name": {
          "type": "string",
          "description": "A human-friendly name of the currency."
        }
      }
    },
    "CurrencyID": {
      "type": "string",
      "format": "uuid",
      "description": "Unique identifier for the currency. This is the UUID used to reference the currency in SnapTrade."
    },
    "Exchange": {
      "description": "Describes a single stock or crypto exchange.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/ExchangeID"
        },
        "code": {
          "description": "A short name for the exchange. For standardized exchange code, please use the `mic_code` field.",
          "type": "string"
        },
        "mic_code": {
          "description": "The [Market Identifier Code](https://en.wikipedia.org/wiki/Market_Identifier_Code) (MIC) for the exchange.",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "The full name of the exchange.",
          "type": "string"
        },
        "timezone": {
          "description": "The timezone for the trading hours (`start_time` and `close_time`) of the exchange.",
          "type": "string"
        },
        "start_time": {
          "description": "The time when the exchange opens for trading.",
          "type": "string"
        },
        "close_time": {
          "description": "The time when the exchange closes for trading.",
          "type": "string"
        },
        "suffix": {
          "description": "The suffix to be appended to the symbol when trading on this exchange. For example, the suffix for the Toronto Stock Exchange is `.TO`. See `UniversalSymbol->symbol` and `UniversalSymbol->raw_symbol` for more detail.",
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "ExchangeID": {
      "description": "Unique ID for the exchange in SnapTrade.",
      "type": "string",
      "format": "uuid"
    },
    "FigiInstrument": {
      "description": "Financial Instrument Global Identifier (FIGI) information for the security. See [OpenFIGI](https://www.openfigi.com/) for more information.",
      "type": "object",
      "properties": {
        "figi_code": {
          "description": "This identifier is unique per security per trading venue. See section 1.4.1 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.",
          "type": [
            "string",
            "null"
          ]
        },
        "figi_share_class": {
          "description": "This enables users to link multiple FIGIs for the same security in order to obtain an aggregated view across all countries and all exchanges. For example, `AAPL` has a different FIGI for each exchange/trading venue it is traded on. The `figi_share_class` is the same for all of these FIGIs. See section 1.4.3 of the [FIGI Standard](https://www.openfigi.com/assets/local/figi-allocation-rules.pdf) for more information.",
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "SecurityType": {
      "type": "object",
      "description": "The type of security. For example, \"Common Stock\" or \"ETF\".",
      "properties": {
        "id": {
          "$ref": "#/$defs/SecurityTypeID"
        },
        "code": {
          "description": "A short code representing the security type. For example, \"cs\" for Common Stock. Here are some common values:\n  - `ad` - ADR\n  - `bnd` - Bond\n  - `cs` - Common Stock\n  - `cef` - Closed End Fund\n  - `crypto` - Cryptocurrency\n  - `et` - ETF\n  - `oef` - Open Ended Fund\n  - `pm` - Precious Metals\n  - `ps` - Preferred Stock\n  - `rt` - Right\n  - `struct` - Structured Product\n  - `ut` - Unit\n  - `wi` - When Issued\n  - `wt` - Warrant\n",
          "type": "string"
        },
        "description": {
          "description": "A human-readable description of the security type. For example, \"Common Stock\" or \"ETF\".",
          "type": "string"
        },
        "is_supported": {
          "deprecated": true,
          "description": "This field is deprecated and should not be used. Please reach out to SnapTrade support if you have a valid use case for this.",
          "type": "boolean"
        }
      }
    },
    "SecurityTypeID": {
      "description": "Unique identifier for the security type within SnapTrade. This is the ID used to reference the security type in SnapTrade API calls.",
      "type": "string",
      "format": "uuid"
    },
    "UniversalSymbolID": {
      "description": "Unique identifier for the symbol within SnapTrade. This is the ID used to reference the symbol in SnapTrade API calls.",
      "type": "string",
      "format": "uuid"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/snaptrade-universal-symbol"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.