Cardano Price APIAPI ReferencePrice API

Price API Reference

The Price API provides access to historical price data for Cardano DeFi tokens and trading pairs across various decentralized exchanges (DEXs).

Base URL

/api/v1

Authentication

All endpoints require Bearer token authentication.

Authorization: Bearer YOUR_API_TOKEN

Get Historical Price Data

GET /history

Returns historical price data for a given symbol/trading pair.

Note: This endpoint will not return bars for time segments that have 0 volume. If no trading activity occurred in a given time interval, it will return empty arrays.

Parameters

ParameterTypeRequiredDescription
symbolstringThe unique identifier for the symbol to get historical price data
resolutionstringTime resolution: 1min, 5min, 15min, 60min, 1d
fromnumberStart time as Unix timestamp (seconds)
tonumberEnd time as Unix timestamp (seconds)
include_tvlbooleanInclude TVL data (denominated in first token units)

Example Request

curl -X GET "https://api.charli3.io/api/v1/history?symbol=fa8dee6cf0627a82a2610019596758fc36c1ebc4b7e389fdabc44857fdf5c9b0e29ac56f1a584bccd487c445ad45383c6347d03d39869f759daad68284781723&resolution=60min&from=1735689600&to=1735776000" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response Format

Successful Response:

{
  "s": "ok",
  "t": [1547942400, 1547942460, 1547942520],
  "o": [3667, 3662.25, 3664.29],
  "h": [3667.24, 3664.47, 3664.3],
  "l": [3661.55, 3661.9, 3662.43],
  "c": [3662.25, 3663.13, 3664.01],
  "v": [34.7336, 2.4413, 11.7075],
  "tvl": [103000.0, 100000.0, 100000.0]
}

Response Fields:

  • s: Status ("ok" for success, "error" for failure)
  • t: Bar timestamps (Unix timestamps in UTC)
  • o: Open prices
  • h: High prices
  • l: Low prices
  • c: Close prices
  • v: Volume data
  • tvl: Total Value Locked (optional, if include_tvl=true)

Empty Response (No Data):

{
  "s": "ok",
  "t": [],
  "o": [],
  "h": [],
  "l": [],
  "c": [],
  "v": []
}

Get Available Trading Pairs

GET /symbol_info

Returns information about available trading symbols/pairs for a specific DEX group.

Important: It’s not recommended to call this endpoint without specifying a group parameter, as the response will be very large (17,000+ pools).

Parameters

ParameterTypeRequiredDescription
groupstringDEX group name (e.g., MinswapV2, SundaeSwap, Aggregate)

Example Request

curl -X GET "https://api.charli3.io/api/v1/symbol_info?group=MinswapV2" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response Format

{
  "s": "ok",
  "symbol": ["ADA.SNEK_MinswapV2_Pool1", "ADA.DJED_MinswapV2_Pool2"],
  "description": ["ADA/SNEK on MinswapV2", "ADA/DJED on MinswapV2"],
  "currency": ["279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f534e454b", "8db269c3ec630e06ae29f74bc39edd1f87c819f1056206e879a1cd61446a65644d6963726f555344"],
  "base-currency": ["", ""],
  "exchange-listed": ["MinswapV2", "MinswapV2"],
  "exchange-traded": ["MinswapV2", "MinswapV2"],
  "ticker": ["fa8dee6cf0627a82a2610019596758fc36c1ebc4b7e389fdabc44857fdf5c9b0", "b752b73a8a38773b7499a6f9d516ecd14fb68e4c14b1e9a81cc8dac15e"],
  "type": ["spot", "spot"],
  "timezone": ["Etc/UTC", "Etc/UTC"],
  "session-regular": ["24x7", "24x7"],
  "pricescale": [100000, 1000000],
  "minmovement": [1.0, 1.0],
  "has-intraday": [true, true]
}

Get Available DEX Groups

GET /groups

Returns a list of all available DEX groups/protocols.

Example Request

curl -X GET "https://api.charli3.io/api/v1/groups" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Response Format

{
  "s": "ok",
  "d": {
    "groups": [
      {"id": "MinswapV2"},
      {"id": "SundaeSwap"},
      {"id": "Minswap"},
      {"id": "Aggregate"}
    ]
  }
}

Aggregate Price Data

When using the /groups endpoint, there’s a special group called Aggregate. This group provides aggregate price data across all pools on Cardano for a given trading pair.

Read more info about this feature here.

Example Usage

Refer to how-to guides in Use Cases section:

  1. How-to query price history.
  2. How-to query trading pairs info.

Error Responses

All endpoints may return error responses in the following format:

{
  "s": "error",
  "errmsg": "Error message describing what went wrong"
}

Rate Limiting

Please refer to your API plan for rate limiting information. Contact support if you need higher limits for your use case. If you don’t have a subscription yet choose the plan.