Skip to main content
This page gives advance notice of changes to the API contract before they ship, so you can update your integration ahead of time. Changes are listed here before they are generally available.

Market responses: underlyingMarket can be null, new constituentTokens field

We are extending the market response returned by Get market data for an asset and Get market data for all supported assets to support tokens that represent several underlying assets rather than a single stock.

What is changing

  • constituentTokens (new) — an array of GM token symbols, present on every market response. For a token that represents several underlying assets, it lists the GM symbols of those assets, and you can look each one up individually via the market endpoints. For a token backed by a single stock, it is an empty array ([]).
  • underlyingMarket (updated) — can now be null. For a token backed by a single stock it stays populated as it is today. For a token that represents several underlying assets there is no single underlying stock, so this field is null.

Example responses

Both Get market data for an asset and Get market data for all supported assets return this object — the all-assets endpoint returns an array of them. Numeric values below are illustrative.

Today

The current response: underlyingMarket is always populated and there is no constituentTokens field.

A token backed by a single stock (after the change)

Identical to today, with one addition: constituentTokens is present as an empty array ([]). underlyingMarket is unchanged, so integrations that ignore the new field keep working.

A token that represents several underlying assets (after the change)

underlyingMarket is null — there is no single backing stock — and constituentTokens lists the GM symbols that make up the token. Each can be looked up individually via the market endpoints.

What you should do

  • Treat underlyingMarket as optional, and handle a null value without erroring.
  • Accept the new constituentTokens array. You can ignore it if you do not need it, but your parser should not reject responses that include it.

Rollout

  • constituentTokens appears first. For every token available today it is an empty array ([]), and underlyingMarket stays populated — so no existing value changes, you only receive an added field.
  • underlyingMarket: null only occurs once tokens that represent several underlying assets are available. Until then, underlyingMarket remains populated on every response.
These changes are additive and backward-compatible for tokens backed by a single stock. No existing field is removed or renamed.