Skip to main content
GET
Get token OHLCV history
Batch Support Available: This endpoint supports batch queries via POST method for fetching OHLCV data for up to 10 tokens in a single request. Jump to Batch Query section
Timestamps are in MS (JavaScript timestamps).

Overview

This endpoint retrieves OHLCV candlestick data for a token by its contract address. It automatically resolves the largest pool for the token and includes pre-bonding curve data when available. Use GET for a single token or POST for batch requests (up to 10 tokens). For direct pool/market queries by pool address, use Market OHLCV History instead.

GET Request (Single Token)

Query Parameters

Step-by-Step Tutorial and Video Walkthrough

  • Check out the guide: Here

Usage Example

POST Request (Batch)

Request Body

Send an array of token queries directly (minimum 1, maximum 10 per request). Each item uses the same parameters as the GET request.

Example

Response Format

Response fields use abbreviated naming for optimal payload size:

GET Response Example

POST Response Example

Period Options

  • 1s - 1 second
  • 5s - 5 seconds
  • 15s - 15 seconds
  • 30s - 30 seconds
  • 1m - 1 minute
  • 5m - 5 minutes
  • 15m - 15 minutes
  • 30m - 30 minutes
  • 1h - 1 hour
  • 4h - 4 hours
  • 6h - 6 hours
  • 1d - 1 day
  • 1w - 1 week

FAQ

Mobula’s period is not the same format as TradingView’s ResolutionString. Treat them as different contracts and map values in your datafeed before calling Mobula.Often maps cleanly (Mobula normalizes case):
  • Seconds: TV 1S, 5S, … → Mobula 1s, 5s, …
  • Minute numerals: 1, 5, 15, 301m, 5m, 15m, 30m
  • Hour-style minute counts: 601h; 2404h; 3606h; 72012h
  • Days / weeks: 1D1d, 1W1w
Important mismatch — TV 1M (one month):
TradingView uses 1M for one month. Mobula lowercases the string, so 1M becomes 1m, which means one minute, not one month. Never forward TV’s monthly resolution unchanged.
Not a direct match:
  • Tick bars (1T, 5T, …) — Mobula serves time-based OHLCV candles, not tick aggregation.
  • Unrecognized strings — fall back to a default period (commonly 1h for unknown non-empty values, or 5m when period is omitted on this endpoint).
Supported candle periods (canonical):
1s, 5s, 15s, 30s, 1m, 5m, 15m, 30m, 1h, 4h, 6h, 12h, 1d, 1w.
Aliases such as 5min or 601h are accepted by the API layer. Do not use 1month / TV-style monthly here: they normalize to 1M, which this OHLCV history service does not support.
Recommendation: Add an explicit tradingViewResolutionToMobulaPeriod(resolution) (or equivalent) in your integration instead of passing TV resolutions straight through.

Features

  • Pre-bonding data: Automatically includes bonding curve data for tokens that graduated from bonding curves (e.g., pump.fun tokens)
  • Auto pool resolution: Automatically finds the largest liquidity pool for the token

Notes

  • Maximum 2000 candles per request. If no amount is specified and a date range is provided, the default cap is 2000. Without a date range, the default is 300 candles.
  • Maximum 10 tokens per POST request
  • Rate limit: 5 credits (GET), 10 credits (POST)
  • This endpoint uses mode: token internally to include pre-bonding curve history when available

Query Parameters

address
string
required

Token contract address

chainId
string

Blockchain chain ID (e.g., "evm:56", "solana:solana")

from

Start date (timestamp or ISO string)

to

End date (timestamp or ISO string)

period
string

Candle period (e.g., "5m", "1h", "1d")

amount
number | null

Maximum number of candles (max 2000)

usd

Return USD prices (default: true)

fill

Forward-fill empty candles between trades so the series has no gaps (default: false)

enableAssetHistory

For major assets, serve periods >= 1h from the asset-level price history (deep history, e.g. BTC since 2013) instead of pool swaps (default: false)

Response

200 - application/json

Token OHLCV history response

data
object[]
required