### Get All Asset Metadata Response Example Source: https://docs.ondo.finance/openapi.json Example response body for the /v1/assets/all/metadata endpoint, providing symbol details and network addresses. ```json [ { "symbol": "AAPLon", "ticker": "AAPL", "coingeckoId": "apple-ondo-tokenized-stock", "coinmarketCapId": "38037", "addresses": [ { "networkChainId": "bsc-56", "address": "0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4", "decimals": 18 }, { "networkChainId": "ethereum-1", "address": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c", "decimals": 18 } ], "tags": { "assetClass": "Equities", "instrumentType": "Stock" } }, { "symbol": "ABNBon", "ticker": "ABNB", "coingeckoId": "airbnb-ondo-tokenized-stock", "coinmarketCapId": "38044", "addresses": [ { "networkChainId": "bsc-56", "address": "0xef80743f78d98fc2b47a2253b293152ce8b879ba", "decimals": 18 }, { "networkChainId": "ethereum-1", "address": "0xb035c3d5083bdc80074f380aebc9fcb68aba0a28", "decimals": 18 } ], "tags": { "assetClass": "Equities", "instrumentType": "Stock" } }, "..." ] ``` -------------------------------- ### Get Asset Statuses Response Example Source: https://docs.ondo.finance/openapi.json Example JSON response showing upcoming trading statuses for assets, including reason codes and event details. ```json [ { "symbol": "XOMon", "status": "upcoming", "type": "scheduled", "reason": { "code": "ASSET_LIMITED", "message": "earnings", "documentation": "https://docs.ondo.finance/api-reference/error-codes#asset_limited" }, "start": "2026-01-30T10:00:00Z", "end": "2026-01-31T00:30:00Z", "eventId": "30fd9cb4-1d64-474f-822d-7f281b8f02ee", "updateSharesMultiplier": false }, { "symbol": "TIPon", "status": "upcoming", "type": "scheduled", "reason": { "code": "ASSET_PAUSED", "message": "cash_dividend", "documentation": "https://docs.ondo.finance/api-reference/error-codes#asset_paused" }, "start": "2026-02-02T00:50:00Z", "end": "2026-02-03T01:00:00Z", "eventId": "d7d42fbe-9161-45af-806c-c0717453099d", "updateSharesMultiplier": true }, "..." ] ``` -------------------------------- ### Schema Examples Source: https://docs.ondo.finance/api-reference/assets/get-ohlc-open-high-low-close-data-for-an-asset Example values for asset symbols and OHLC data points. ```yaml symbol: type: string description: The GM symbol associated with the asset. example: AAPLon ``` ```yaml ticker: type: string description: The stock ticker associated with the asset. example: AAPL ``` ```yaml timestamp: type: number description: The Unix timestamp in milliseconds when the data point was recorded. example: 1746655938000 ``` ```yaml open: type: string description: >- The opening price for the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point. example: '10.000000000000000000' ``` ```yaml high: type: string description: >- The highest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point. example: '12.500000000000000000' ``` ```yaml low: type: string description: >- The lowest price during the interval, represented as a string-encoded decimal with up to 18 digits after the decimal point. example: '8.500000000000000000' ``` -------------------------------- ### Market Schema Examples Source: https://docs.ondo.finance/api-reference/assets/get-market-data-for-all-supported-assets Example values for fields within the Market schema. ```text AAPLon ``` ```text '12.345' ``` ```text '0.123' ``` ```text '5.45' ``` ```text 1746655938000 ``` ```text '12.345678901234567890' ``` ```text 1234 ``` ```text '1.25' ``` ```yaml - premarket - regular - postmarket - overnight - offhours ``` ```text AAPL ``` ```text Apple Inc ``` ```text '195.34' ``` ```text '259.47' ``` ```text '168.99' ``` -------------------------------- ### TradingLimitsResponse Schema Example Source: https://docs.ondo.finance/api-reference/limits/get-trading-limits Example structure for the trading limits response object. ```json timestamp: 1746655938000 symbol: AAPLon maxTokens: '100.000000000000000000' maxNotionalValue: '1234.560000000000000000' remainingAttestations: '3' isAssetTradingOpen: false ``` -------------------------------- ### Market Data Schema Examples Source: https://docs.ondo.finance/api-reference/assets/get-market-data-for-an-asset Example values for primary and underlying market data fields. ```json symbol: AAPLon ``` ```json price: '12.345' ``` ```json priceChange24h: '0.123' ``` ```json priceChangePct24h: '5.45' ``` ```json timestamp: 1746655938000 ``` ```json price: '12.345678901234567890' ``` ```json totalHolders: 1234 ``` ```json sharesMultiplier: '1.25' ``` ```json - premarket - regular - postmarket - overnight - offhours ``` ```json ticker: AAPL ``` ```json name: Apple Inc ``` ```json price: '195.34' ``` ```json priceHigh52w: '259.47' ``` -------------------------------- ### Get Market Data for an Asset Source: https://docs.ondo.finance/openapi.json Example response structure for the /v1/assets/{symbol}/market endpoint, providing primary and underlying market data. ```json "example": { "primaryMarket": { "symbol": "ADBEon", "price": "361.986667", "priceChange24h": "8.76", "priceChangePct24h": "2.479993958100564361", "priceHistory24h": [ { "timestamp": 1755802800000, "price": "353.226667" }, { "timestamp": 1755803700000, "price": "353.216667" }, "..." ], "totalHolders": 7, "sharesMultiplier": "1", "tradableSessions": [ "premarket", "regular", "postmarket", "overnight" ] }, "underlyingMarket": { ``` -------------------------------- ### SessionLimits Example Source: https://docs.ondo.finance/openapi.json Example values for session limit properties including tradable status, max attestation count, and max active notional value. ```json { "tradable": true, "maxAttestationCount": "1000", "maxActiveNotionalValue": "1000000" } ``` -------------------------------- ### Subscribe Example Source: https://docs.ondo.finance/developer-guides/usdy-instant-manager-integration Demonstrates approving USDC and calling the subscribe function to mint USDY. ```solidity // Swap 100 USDC for USDY IERC20(USDC).approve(usdyInstantManager, 100e6); uint256 usdyReceived = usdyInstantManager.subscribe( USDC, 100e6, // 100 USDC (6 decimals) 0 // no slippage expected when minting directly ); ``` -------------------------------- ### Redeem Example Source: https://docs.ondo.finance/developer-guides/usdy-instant-manager-integration Demonstrates approving USDY and calling the redeem function to receive USDC. ```solidity // Redeem 100 USDY for USDC IERC20(USDY).approve(usdyInstantManager, 100e18); uint256 usdcReceived = usdyInstantManager.redeem( 100e18, // 100 USDY (18 decimals) USDC, 0 // no slippage expected when redeeming directly ); ``` -------------------------------- ### Market Data Response Example Source: https://docs.ondo.finance/openapi.json Example response for the /v1/assets/all/market endpoint, containing primary and underlying market data for assets. ```json [ { "primaryMarket": { "symbol": "ADBEon", "price": "361.986667", "priceChange24h": "8.76", "priceChangePct24h": "2.479993958100564361", "priceHistory24h": [ { "timestamp": 1755802800000, "price": "353.226667" }, { "timestamp": 1755803700000, "price": "353.216667" }, "..." ], "totalHolders": 7, "sharesMultiplier": "1" }, "underlyingMarket": { "ticker": "ADBE", "name": "Adobe Inc.", "price": "361.986667", "priceHigh52w": "587.75", "priceLow52w": "330.04", "volume": "1851321", "averageVolume": "3610882", "sharesOutstanding": "424200000", "marketCap": "149925006000" }, "timestamp": 1755890061815 }, { "primaryMarket": { "symbol": "APPon", "price": "440.094", "priceChange24h": "20.824", "priceChangePct24h": "4.966727884179645574", "priceHistory24h": [ { "timestamp": 1755802800000, "price": "419.27" }, { "timestamp": 1755803700000, "price": "418.55" }, "..." ], "totalHolders": 7, "sharesMultiplier": "1", "tradableSessions": [ "premarket", "regular", "postmarket", "overnight" ] }, "underlyingMarket": { "ticker": "APP", "name": "Applovin Corporation Class A Common Stock", "price": "440.094" } } ] ``` -------------------------------- ### GetTokenInfoResponse Example Source: https://docs.ondo.finance/openapi.json Example JSON response for retrieving token information, including address, name, symbol, decimals, and supply. ```json { "token": { "tokenAddress": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c", "tokenName": "Apple (Ondo Tokenized)", "tokenSymbol": "AAPLon", "tokenDecimals": 18, "tokenSupply": { "value": "72.428346190773568025" } } } ``` -------------------------------- ### Asset Price Response Example Source: https://docs.ondo.finance/api-reference/assets/get-current-prices-for-all-supported-assets Example JSON response structure for a successful request to the asset prices endpoint. ```json [ { "primaryMarket": { "symbol": "TSLAon", "price": "48.516937826065743784" }, "underlyingMarket": { "ticker": "TSLA", "price": "338.88" }, "timestamp": 1755888858907 }, { "primaryMarket": { "symbol": "AAPLon", "price": "171.383708297189751178" }, "underlyingMarket": { "ticker": "AAPL", "price": "228.330909" }, "timestamp": 1755888858893 }, { "...": "..." } ] ``` -------------------------------- ### ReasonBase Schema Example Source: https://docs.ondo.finance/api-reference/limits/get-trading-limits Example structure for the reason base object used in trading restrictions. ```json message: Weekend/Holiday documentation: https://docs.ondo.finance/ ``` -------------------------------- ### Asset Paused Error Example Source: https://docs.ondo.finance/api-reference/limits/get-trading-limits Example response for an ASSET_PAUSED error condition. ```json code: ASSET_PAUSED message: asset trading is paused documentation: https://docs.ondo.finance/api-reference/error-codes ``` -------------------------------- ### Retrieve Ticker Data Response Example Source: https://docs.ondo.finance/openapi.json Example JSON response for the /v1/tickers endpoint showing price and volume data for assets. ```json [ { "tickerId": "TSLAon_USDon", "baseCurrency": "TSLAon", "targetCurrency": "USDon", "lastPrice": 338.42375, "baseVolume": 72.720573083, "targetVolume": 24610.369044819 }, { "tickerId": "AAPLon_USDon", "baseCurrency": "AAPLon", "targetCurrency": "USDon", "lastPrice": 228.195452051, "baseVolume": 2761.011833446, "targetVolume": 630050.34345192 }, "..." ] ``` -------------------------------- ### Asset Address Response Example Source: https://docs.ondo.finance/api-reference/assets/get-contract-addresses-for-an-asset Example JSON response structure for a successful request to retrieve asset addresses. ```json { "symbol": "AAPLon", "addresses": [ { "networkChainId": "bsc-56", "address": "0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4", "decimals": 18 }, { "networkChainId": "ethereum-1", "address": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c", "decimals": 18 } ] } ``` -------------------------------- ### Asset Status Scheduled Pause Example Source: https://docs.ondo.finance/api-reference/status/get-asset-statuses Example of a scheduled asset pause event structure. ```yaml type: scheduled reason: code: ASSET_PAUSED message: cash_dividend documentation: >- https://docs.ondo.finance/api-reference/error-codes#asset_paused start: '2026-02-02T00:50:00Z' end: '2026-02-03T01:00:00Z' eventId: d7d42fbe-9161-45af-806c-c0717453099d updateSharesMultiplier: true - ... ``` -------------------------------- ### Asset Enhanced Price Example Source: https://docs.ondo.finance/openapi.json Example JSON payload for an array of asset prices including symbol, price, and 24-hour change metrics. ```json [ { "symbol": "NFLXon", "price": "860.66471", "priceChange24h": "26.80883", "priceChangePct24h": "3.215043587628116264", "timestamp": 1769190970623 }, { "symbol": "QQQon", "price": "533.707886795396811068", "priceChange24h": "0.175407218134272389", "priceChangePct24h": "0.032876577312266724", "timestamp": 1769190970623 }, "..." ] ``` -------------------------------- ### Shares Multiplier Response Example Source: https://docs.ondo.finance/openapi.json Example of a successful 200 OK response containing the historical shares multiplier data. ```json { "history": [ { "sharesMultiplier": "0.481891643381832405", "changeTimestamp": 1762736520093 }, { "sharesMultiplier": "0.481566453805576042", "changeTimestamp": 1754870400044 }, { "sharesMultiplier": "0.481185641420460013", "changeTimestamp": 1753992000000 }, "..." ], "timestamp": 1770161184102 } ``` -------------------------------- ### Error Response Example Source: https://docs.ondo.finance/api-reference/assets/get-shares-multiplier-history-for-an-asset Example of the JSON structure returned when an internal server error occurs. ```json { "message": "An internal server error occurred. Please see the returned\nmessage and documentation for details.", "code": "INTERNAL_ERROR" } ``` -------------------------------- ### AssetLimits Symbol Example Source: https://docs.ondo.finance/openapi.json Example value for the GM token symbol within the AssetLimits schema. ```json "AAPLon" ``` -------------------------------- ### Shares Multiplier Data Point Example Source: https://docs.ondo.finance/api-reference/assets/get-shares-multiplier-history-for-an-asset Example values for a single data point in the shares multiplier history. ```json { "sharesMultiplier": "1.25", "changeTimestamp": 1746655938000 } ``` -------------------------------- ### Token Balances Response Structure Source: https://docs.ondo.finance/openapi.json Example structure for the token balances response object. ```json { "tokens": [ ``` -------------------------------- ### GET /v1/assets/all/prices/latest Source: https://docs.ondo.finance/openapi.json Retrieves the latest prices for all supported assets. Supports sorting by price. ```APIDOC ## GET /v1/assets/all/prices/latest ### Description This endpoint retrieves the latest prices for all supported assets. The `primaryMarket` represents the on-chain token while the `underlyingMarket` represents the off-chain collateralized stock. ### Method GET ### Endpoint /v1/assets/all/prices/latest ### Parameters #### Query Parameters - **sort** (string) - Optional - Sort assets by price in 'asc' (ascending) or 'desc' (descending) order. ### Response #### Success Response (200) - **prices** (array) - List of asset price objects. #### Error Responses - **401** - Missing or invalid API key. - **403** - Request denied due to market state, asset state, or insufficient permissions. - **404** - Asset symbol not found. - **500** - Internal server error. ``` -------------------------------- ### OpenAPI Specification for Asset Metadata Source: https://docs.ondo.finance/api-reference/assets/get-metadata-for-all-supported-assets Defines the GET /v1/assets/all/metadata endpoint, including response examples and schema definitions for asset metadata entries. ```yaml openapi: 3.0.4 info: title: GM Backend API description: An API spec for the Ondo GM Backend API. version: 1.0.0 servers: - url: https://api.gm.ondo.finance description: GM Backend API security: [] tags: - name: Attestations description: Get Mint and Redeem Attestations - name: Assets description: Get Asset Price Information - name: Tickers description: Get Ticker Information - name: Chains description: Get On Chain Data - name: Limits description: Get Trading Limits - name: Status description: Get Market and Trading Statuses paths: /v1/assets/all/metadata: get: tags: - Assets summary: Get Metadata for All Supported Assets description: > Returns all metadata for all symbols including identifiers, addresses, and classification tags. For caching details on this endpoint, please see: [Endpoint Caching](https://docs.ondo.finance/api-reference/endpoint-caching). operationId: getAllAssetMetadata responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/MetadataEntry' example: - symbol: AAPLon ticker: AAPL coingeckoId: apple-ondo-tokenized-stock coinmarketCapId: '38037' addresses: - networkChainId: bsc-56 address: '0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4' decimals: 18 - networkChainId: ethereum-1 address: '0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c' decimals: 18 tags: assetClass: Equities instrumentType: Stock - symbol: ABNBon ticker: ABNB coingeckoId: airbnb-ondo-tokenized-stock coinmarketCapId: '38044' addresses: - networkChainId: bsc-56 address: '0xef80743f78d98fc2b47a2253b293152ce8b879ba' decimals: 18 - networkChainId: ethereum-1 address: '0xb035c3d5083bdc80074f380aebc9fcb68aba0a28' decimals: 18 tags: assetClass: Equities instrumentType: Stock - ... '401': description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: error: value: message: missing API key code: MISSING_API_KEY '500': description: >- An internal server error occurred. Please see the returned message and documentation for details. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: error: value: message: >- An internal server error occurred. Please see the returned message and documentation for details. code: INTERNAL_ERROR security: - apiKey: [] components: schemas: MetadataEntry: properties: symbol: type: string example: AAPLon ticker: type: string example: AAPL coingeckoId: type: string nullable: true example: apple-ondo-tokenized-stock addresses: type: array description: Contract addresses for various chains. items: $ref: '#/components/schemas/AssetAddress' example: - networkChainId: bsc-56 address: '0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4' decimals: 18 - networkChainId: ethereum-1 address: '0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c' decimals: 18 tags: type: object properties: assetClass: type: string description: High-level category of the asset example: equities ``` -------------------------------- ### Successful Response Example Source: https://docs.ondo.finance/api-reference/assets/get-enhanced-prices-for-all-supported-assets The response returns an array of asset objects containing symbol, price, price change metrics, and a timestamp. ```json [ { "symbol": "NFLXon", "price": "860.66471", "priceChange24h": "26.80883", "priceChangePct24h": "3.215043587628116264", "timestamp": 1769190970623 }, { "symbol": "QQQon", "price": "533.707886795396811068", "priceChange24h": "0.175407218134272389", "priceChangePct24h": "0.032876577312266724", "timestamp": 1769190970623 }, { "..." } ] ``` -------------------------------- ### Error Response Example Source: https://docs.ondo.finance/api-reference/assets/get-market-data-for-all-supported-assets Example of an error response structure returned by the API. ```json { "message": "missing API key", "code": "MISSING_API_KEY" } ``` ```json { "message": "An internal server error occurred. Please see the returned\nmessage and documentation for details.", "code": "INTERNAL_ERROR" } ``` -------------------------------- ### Shares Multiplier Response Timestamp Example Source: https://docs.ondo.finance/api-reference/assets/get-shares-multiplier-history-for-an-asset Example of the Unix timestamp format used in the response. ```json 1746655938000 ``` -------------------------------- ### Stream Price Updates via grpcurl Source: https://docs.ondo.finance/api-reference/price-streaming Use grpcurl to initiate a gRPC stream for specific asset symbols. Ensure the x-api-key header is included for authentication. ```bash grpcurl \ -H "x-api-key: " \ -d '{"symbols": ["AAPLon", "GOOGLon"]}' \ grpc.gm.ondo.finance:443 \ ondo.gm.backend.v1.BackendService/StreamPriceUpdates ``` -------------------------------- ### Generate Go gRPC Client Source: https://docs.ondo.finance/api-reference/protobuf-schema Command to generate Go source code from the Protobuf definition file using the protoc compiler. ```bash protoc \ --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ grpcapi.proto ``` -------------------------------- ### Session Limits Response Example Source: https://docs.ondo.finance/openapi.json Represents a successful response containing trading limits for a specific symbol across different market sessions. ```json [ { "limits": [ { "symbol": "AAPLon", "premarket": { "tradable": true, "maxAttestationCount": "500", "maxActiveNotionalValue": "10000" }, "regular": { "tradable": true, "maxAttestationCount": "500", "maxActiveNotionalValue": "200000" }, "postmarket": { "tradable": true, "maxAttestationCount": "500", "maxActiveNotionalValue": "200000" }, "overnight": { "tradable": true, "maxAttestationCount": "500", "maxActiveNotionalValue": "200000" }, "offhours": { "tradable": false, "maxAttestationCount": "0", "maxActiveNotionalValue": "0" } }, "..." ], "timestamp": 1769192550134 } ] ``` -------------------------------- ### Error Response Examples Source: https://docs.ondo.finance/api-reference/assets/get-contract-addresses-for-an-asset Examples of error responses returned by the API when requests fail due to validation, authentication, or server issues. ```json { "code": "INVALID_SYMBOL", "message": "invalid symbol; must be at least 3 characters long and end with 'on'", "documentation": "https://docs.ondo.finance/api-reference/error-codes" } ``` ```json { "message": "missing API key", "code": "MISSING_API_KEY" } ``` ```json { "message": "The provided asset symbol does not exist and cannot be found.", "code": "ASSET_NOT_FOUND" } ``` ```json { "message": "An internal server error occurred. Please see the returned message and documentation for details.", "code": "INTERNAL_ERROR" } ``` -------------------------------- ### Error Response Examples Source: https://docs.ondo.finance/api-reference/assets/get-market-data-for-an-asset Standard JSON error response structures for asset not found or internal server errors. ```json message: >- The provided asset symbol does not exist and cannot be found. code: ASSET_NOT_FOUND ``` ```json message: >- An internal server error occurred. Please see the returned message and documentation for details. code: INTERNAL_ERROR ``` -------------------------------- ### RESOURCE_NOT_FOUND Error Source: https://docs.ondo.finance/api-reference/error-codes Returned when the requested resource does not exist. ```json { "code": "RESOURCE_NOT_FOUND", "message": "resource not found" } ``` -------------------------------- ### OpenAPI Specification for Get Token Info Source: https://docs.ondo.finance/api-reference/chains/get-token-info Defines the GET endpoint for retrieving token contract information within the GM Backend API structure. ```yaml openapi: 3.0.4 info: title: GM Backend API description: An API spec for the Ondo GM Backend API. version: 1.0.0 servers: - url: https://api.gm.ondo.finance description: GM Backend API security: [] tags: - name: Attestations description: Get Mint and Redeem Attestations - name: Assets description: Get Asset Price Information - name: Tickers description: Get Ticker Information - name: Chains description: Get On Chain Data - name: Limits description: Get Trading Limits - name: Status description: Get Market and Trading Statuses paths: /v1/chains/{chainId}/tokens/{tokenAddress}/info: get: tags: - Chains summary: Get Token Info description: > This endpoint retrieves contract information about a token on a GM chain. ``` -------------------------------- ### Attestation Response Object Source: https://docs.ondo.finance/api-reference/attestations/request-a-mint-or-redeem-attestation Example structure of an attestation object returned by the API. ```json { "attestationId": "229852750420835981756873903928305653446", "userId": "0x474d0000000000009310097834e2c7af00000000000000000000000000000000", "chainId": "1", "symbol": "AAPLon", "ticker": "AAPL", "assetAddress": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c" } ``` -------------------------------- ### Retrieve All Asset Addresses Source: https://docs.ondo.finance/openapi.json Example response for the /v1/assets/all/addresses endpoint, returning an array of asset symbols and their associated network addresses. ```json [ { "symbol": "AAPLon", "addresses": [ { "networkChainId": "bsc-56", "address": "0x390a684ef9cade28a7ad0dfa61ab1eb3842618c4", "decimals": 18 }, { "networkChainId": "ethereum-1", "address": "0x14c3abf95cb9c93a8b82c1cdcb76d72cb87b2d4c", "decimals": 18 } ] }, { "symbol": "ABNBon", "addresses": [ { "networkChainId": "bsc-56", "address": "0xef80743f78d98fc2b47a2253b293152ce8b879ba", "decimals": 18 }, { "networkChainId": "ethereum-1", "address": "0xb035c3d5083bdc80074f380aebc9fcb68aba0a28", "decimals": 18 } ] }, "..." ] ```