> For the complete documentation index, see [llms.txt](https://developer.barchart.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.barchart.com/getting-started/metadata.md).

# Metadata

### Metatdata via Streaming Openfeed API

When a client establishes a subscription through the Streaming Openfeed API, the platform returns instrument metadata through `instrumentResponse` message packets.&#x20;

These messages provide the structural details for each symbol in the subscription request, enabling client applications to properly interpret the subsequent market data. The metadata includes the core instrument definitions necessary for symbol identification, exchange context, and message parsing within downstream systems.

<details>

<summary>Expected Output for 'InstrumentResponse' and 'InstrumentDefinition'</summary>

```
instrumentResponse {
  correlationId: 1167628319
  status {
    result: SUCCESS
  }
  numberOfDefinitions: 2612
  exchange: "AMEX"
}

instrumentDefinition {
  marketId: 1232199885446800353
  instrumentType: EQUITY
  vendorId: "CTA"
  symbol: "WYY"
  description: "Widepoint Corp"
  exchangeCode: "AMEX"
  recordCreateTime: 1634025540020000000
  recordUpdateTime: 1634025540020000000
  timeZoneName: "America/New_York"
  channel: 31
  priceFormat {
    denominator: 100
    subDenominator: 1
  }
  priceDenominator: 10000
  quantityDenominator: 1
  symbols {
    vendor: "Barchart"
    symbol: "WYY"
  }
  symbols {
    vendor: "exchange"
    symbol: "WYY"
  }
  symbols {
    vendor: "channel"
    symbol: "CQSB11-A"
  }
  symbols {
    vendor: "primarylistingmarketparticipantid"
    symbol: "A"
  }
  consolidatedFeedInstrument: true
}

instrumentDefinition {
  marketId: 7672118081358306273
  instrumentType: EQUITY
  vendorId: "CTA"
  symbol: "TENG"
  description: "Direxion 5G Communications Bull 2X ETF"
  exchangeCode: "AMEX"
  recordCreateTime: 1634025540203000000
  recordUpdateTime: 1634025540203000000
  timeZoneName: "America/New_York"
  channel: 31
  priceFormat {
    denominator: 100
    subDenominator: 1
  }
  priceDenominator: 10000
  quantityDenominator: 1
  symbols {
    vendor: "Barchart"
    symbol: "TENG"
  }
  symbols {
    vendor: "exchange"
    symbol: "TENG"
  }
  symbols {
    vendor: "channel"
    symbol: "CQSB9-A"
  }
  symbols {
    vendor: "primarylistingmarketparticipantid"
    symbol: "P"
  }
  consolidatedFeedInstrument: true
}

```

</details>

Initially, the API will return both **`InstrumentResponse`** and **`InstrumentDefinitions`** message packets for each requested instrument. These messages supply the full metadata profile required to initialize the instrument within the client application.

If the subscription is made **at the exchange level**, the initial payload will include metadata for **all exchange-traded instruments associated with that exchange**. This metadata is transmitted once at the start of the session to establish the full instrument universe for that subscription. After this initial payload is delivered, subsequent streaming updates will contain **only market data updates** and **will not repeat the instrument metadata messages**.&#x20;

### Metadata for Snapshot Openfeed (REST) API &#x20;

Because the Snapshot REST API is **query-based**, instrument metadata is not automatically returned with market data responses. To receive **`InstrumentDefinitions`** equivalent to those in the Streaming API, clients must retrieve them through a separate workflow.&#x20;

Building Instrument Profiles for Symbol Lookup

Instruments.json Endpoint:

`https://instruments.openfeed.barchart.com/{exchangeID}-instruments.json`

This metadata provides the reference structure needed to correctly interpret symbols, exchanges, and instrument attributes when interacting with the Snapshot API.

The recommended workflow is to obtain instrument metadata through Barchart’s metadata endpoints and construct local **instrument profile tables**. This process begins by retrieving the list of exchanges, extracting the relevant exchange identifiers, and then querying the instruments metadata endpoint to obtain the full set of tradable symbols and associated attributes. The resulting data can be transformed into structured local tables that serve as a reference layer for applications requesting Snapshot API data.

The process begins by loading the EXTRAS Exchanges endpoint to obtain the universe of supported exchanges and their associated identifiers.&#x20;

This endpoint will return an XML document containing a list of exchange elements and attributes.

`https://extras.ddfplus.com/xxxx.php`

Extract the relevant exchange IDs us them as reference keys for subsequent metadata operations.

Next, your workflow should load the '`instruments.json'` endpoint, which provides detailed metadata for listed instruments across exchanges.

{% hint style="info" %}
Find the relevant exchange element by searching for the "`id"` or description attribute. For example,`id="CBOT"` from the EXTRAs XML document for the exchange identifer associated with the Chicago Board of Trade.&#x20;
{% endhint %}

```
<exchange id="CBOT" ddfcode="B" delay="10" description="CBOT" data_frequency="13" codes="CBOT,KCBT" feewaiver="yes" freedelayed="no" snapshot_frequency="60" timezone_local="America/Chicago" timezone_ddf="America/Chicago" eod_release_time="23:59:59" eod_cutoff_time="23:59:59"/>
```

<details>

<summary>Expected Response (Excerpt)</summary>

```
[
{"marketId":"1200262168112793355","instrumentType":"OPTION","supportBookTypes":["PRICE_LEVEL_DEPTH"],"bookDepth":3,"vendorId":"Barchart","symbol":"OSOH7 P4225","description":"Soybean Oilshare","cfiCode":"OPAFPS","currencyCode":"USD","exchangeCode":"XCBT_B","calendar":{"events":[{"type":"FIRST_TRADE_DATE","date":"1745616600000"},{"type":"LAST_TRADE_DATE","date":"1803064800000"}]},"recordCreateTime":"1773179235020000000","recordUpdateTime":"1773513614607000000","instrumentGroup":"OSO","symbolExpiration":{"year":2027,"month":2,"day":19},"channel":11,"underlyingMarketId":"7960794403209227006","priceFormat":{"denominator":1000,"subDenominator":1},"priceDenominator":1000000000,"quantityDenominator":1,"symbols":[{"vendor":"exchange","symbol":"OSOH7 P4225"},{"vendor":"Barchart","symbol":"OSH4225Q","longSymbol":"OSH27|4225P"}],"optionStrike":"4225","optionType":"PUT","optionStyle":"AMERICAN","optionStrikeDenominator":100000,"exchangeSendsVolume":true,"exchangeSendsHigh":true,"exchangeSendsLow":true,"exchangeSendsOpen":true,"contractMaturity":{"year":2027,"month":3},"underlying":"OSH7","exchangeId":5,"underlyingOpenfeedMarketId":"7960794403209227006","barchartExchange":"CBOT","contractSize":"400","contractSizeDescription":"400 Index Points","exchangeMetadata":{"securityId":"42601053","channelId":"341","sbeId":55,"underlyingSecurityId":"42007268","securitySymbol":"OSOH7 P4225"}},
{"marketId":"3060174541083889922","instrumentType":"SPREAD","supportBookTypes":["PRICE_LEVEL_DEPTH"],"bookDepth":10,"vendorId":"Barchart","symbol":"CWDZ6-CWDK7","description":"Chi vs Milling Wheat Futures Standard Spread","cfiCode":"FMAXSX","currencyCode":"USD","exchangeCode":"XCBT_B","minimumPriceIncrement":25.0,"contractPointValue":50.0,"calendar":{"events":[{"type":"FIRST_TRADE_DATE","date":"1771367400000"},{"type":"LAST_TRADE_DATE","date":"1794850200000"}]},"recordCreateTime":"1773003544331000000","recordUpdateTime":"1773513614602000000","timeZoneName":"America/Chicago","instrumentGroup":"CWD","symbolExpiration":{"year":2026,"month":11,"day":16},"channel":2,"underlyingMarketId":"7292100640152793602","priceFormat":{"denominator":100,"subDenominator":1},"priceDenominator":1000000000,"quantityDenominator":1,"symbols":[{"vendor":"exchange","symbol":"CWDZ6-CWDK7"},{"vendor":"Barchart","symbol":"_S_SP_MVZ6_MVK7","longSymbol":"_S_SP_MVZ26_MVK27"}],"spreadCode":"SP","spreadLeg":[{"marketId":"7292100640152793602","ratio":1,"symbol":"MVZ6"},{"marketId":"936701685370307582","ratio":-1,"symbol":"MVK7"}],"exchangeSendsVolume":true,"exchangeSendsHigh":true,"exchangeSendsLow":true,"exchangeSendsOpen":true,"barchartExchangeCode":"B","barchartBaseCode":"A","contractMaturity":{"year":2026,"month":12},"underlying":"MVZ6","exchangeId":5,"underlyingOpenfeedMarketId":"7292100640152793602","barchartExchange":"CBOT","exchangeMetadata":{"securityId":"42011624","channelId":"340","sbeId":56,"securitySymbol":"CWDZ6-CWDK7"}},
{"marketId":"5555076224443430910","instrumentType":"FUTURE","supportBookTypes":["PRICE_LEVEL_DEPTH"],"bookDepth":10,"vendorId":"Barchart","symbol":"XKQ7","description":"Soybean Mini","cfiCode":"FCAXSX","currencyCode":"USD","exchangeCode":"XCBT_B","minimumPriceIncrement":1.0,"contractPointValue":10.0,"calendar":{"events":[{"type":"FIRST_TRADE_DATE","date":"1731623400000"},{"type":"LAST_TRADE_DATE","date":"1818176460000"}]},"recordCreateTime":"1773003543383000000","recordUpdateTime":"1773513614622000000","timeZoneName":"America/Chicago","instrumentGroup":"XK","symbolExpiration":{"year":2027,"month":8,"day":13},"channel":2,"priceFormat":{"isFractional":true,"denominator":8,"subDenominator":1},"priceDenominator":1000000000,"quantityDenominator":1,"symbols":[{"vendor":"exchange","symbol":"XKQ7"},{"vendor":"Barchart","symbol":"XKQ7","longSymbol":"XKQ27"}],"exchangeSendsVolume":true,"exchangeSendsHigh":true,"exchangeSendsLow":true,"exchangeSendsOpen":true,"barchartExchangeCode":"B","barchartBaseCode":"2","contractMaturity":{"year":2027,"month":8},"exchangeId":5,"barchartExchange":"CBOTM","contractSize":"1000","contractSizeDescription":"1,000 bushels","exchangeMetadata":{"securityId":"42000413","channelId":"340","sbeId":54,"securitySymbol":"XKQ7"}},
{"marketId":"8192176810161035766","instrumentType":"OPTION","supportBookTypes":["PRICE_LEVEL_DEPTH"],"bookDepth":3,"vendorId":"Barchart","symbol":"VX4H6 P1062","description":"Ultra 10-Year T-Note Monday Week 4 Options","cfiCode":"OPAFPS","currencyCode":"USD","exchangeCode":"XCBT_b","minimumPriceIncrement":1.0,"contractPointValue":1000.0,"calendar":{"events":[{"type":"FIRST_TRADE_DATE","date":"1773091800000"},{"type":"LAST_TRADE_DATE","date":"1774292400000"}]},"recordCreateTime":"1773179181477000000","recordUpdateTime":"1773513638326000000","timeZoneName":"America/Chicago","instrumentGroup":"VX4","symbolExpiration":{"year":2026,"month":3,"day":23},"channel":10,"underlyingMarketId":"2893407297622333950","priceFormat":{"isFractional":true,"denominator":64,"subDenominator":1},"optionStrikePriceFormat":{"isFractional":true,"denominator":64,"subDenominator":1},"priceDenominator":1000000000,"quantityDenominator":1,"symbols":[{"vendor":"exchange","symbol":"VX4H6 P1062"},{"vendor":"Barchart","symbol":"BG4H6|10620P","longSymbol":"BG4H26|10620P"}],"optionStrike":"10625","optionType":"PUT","optionStyle":"AMERICAN","optionStrikeDenominator":100,"exchangeSendsVolume":true,"exchangeSendsHigh":true,"exchangeSendsLow":true,"exchangeSendsOpen":true,"barchartExchangeCode":"B","barchartBaseCode":"5","contractMaturity":{"year":2026,"month":3},"underlying":"TNM26","exchangeId":5,"underlyingOpenfeedMarketId":"2893407297622333950","barchartExchange":"CBOT","exchangeMetadata":{"securityId":"42763463","channelId":"345","sbeId":55,"underlyingSecurityId":"42002605","securitySymbol":"VX4H6 P1062"}}
]
```

</details>

You can use this dataset to build local instrument profile tables by identifying and parsing symbol metadata. This approach provides a foundation for consistent instrument identification and governance across systems.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.barchart.com/getting-started/metadata.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
