Historical USD candles for one token as FOMO charts it
Historical USD candles for one token as FOMO charts it: t (bucket start, unix ms), o, h, l, c and v (USD volume) for the 300 buckets ending at to, optionally trimmed to those at or after from. period picks the bucket size (5m, 30m, 1h, 4h, 12h). Use for price history and chart analysis.
Answeringour last check, 2026-10-19
1 of 1checks answered this week
245 msmedian answer time
$0.001listed price per call
$0.001price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://fomo.x4o2.com/v1/token/:chain/:address/candles
| Category | Market data |
|---|---|
| Provider host | fomo.x4o2.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-19 | valid payment request | 402 | $0.001 | 245 ms |
Example input (from the provider)
{
"method": "GET",
"pathParams": {
"address": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump",
"chain": "solana"
},
"queryParams": {
"maxAge": 5,
"period": "1h",
"stale": 0
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"pathParams": {
"properties": {
"address": {
"description": "Token mint (Solana) or contract address (EVM)",
"type": "string"
},
"chain": {
"description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id",
"type": "string"
}
},
"required": [
"chain",
"address"
],
"type": "object"
},
"queryParams": {
"properties": {
"from": {
"description": "Drop buckets before this time, unix ms",
"minimum": 0,
"type": "integer"
},
"maxAge": {
"description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed",
"minimum": 0,
"type": "integer"
},
"period": {
"default": "1h",
"description": "Bucket size",
"enum": [
"5m",
"30m",
"1h",
"4h",
"12h"
],
"type": "string"
},
"stale": {
"description": "1 returns any cached copy immediately and refreshes in the background",
"enum": [
0,
1
],
"type": "integer"
},
"to": {
"description": "Last bucket at or before this time, unix ms (default: now)",
"minimum": 0,
"type": "integer"
}
},
"required": [],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"data": {
"items": {
"properties": {
"c": {
"type": [
"number",
"null"
]
},
"h": {
"type": [
"number",
"null"
]
},
"l": {
"type": [
"number",
"null"
]
},
"o": {
"type": [
"number",
"null"
]
},
"t": {
"type": [
"number",
"null"
]
},
"v": {
"type": [
"number",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"type": [
"array",
"null"
]
},
"meta": {
"description": "Freshness of the response",
"properties": {
"ageMs": {
"description": "Age of the oldest part when served, ms",
"type": "integer"
},
"observedAt": {
"description": "Unix ms when the oldest part was observed upstream",
"type": "integer"
},
"parts": {
"description": "observedAt and source per upstream part",
"type": "object"
},
"source": {
"enum": [
"cache",
"fresh",
"stale"
],
"type": "string"
}
},
"required": [
"observedAt",
"ageMs",
"source"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}