NetIntel
GET netintel.dev/crypto/ohlc
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
Historical OHLC candles for any major crypto asset — hourly or daily, up to 300 candles, with period stats (change %, high, low) — from Coinbase Exchange with Kraken fallback, no API key. Also a price-at-date mode: pass date=YYYY-MM-DD for that day's candle and close. USD, EUR, or GBP quotes; 5min cache.
Resource: netintel.dev/crypto/ohlc
Network: eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0xdaDc335482AD545296Fd7b28518A251fFCbEb9Df
Payment methods: — · Last validation: 2026-09-14 09:23:40.718+00
{
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"properties": {
"vs": {
"type": "string",
"description": "Quote currency: USD (default), EUR or GBP. Aliases: currency, fiat, vs_currency"
},
"date": {
"type": "string",
"description": "YYYY-MM-DD price-at-date mode: that day's single daily candle + its close as price. Mutually exclusive with days/limit"
},
"days": {
"type": "number",
"description": "Lookback window, default 30. Max 300 for 1d, 12 for 1h (300 candles). Alias: period"
},
"limit": {
"type": "number",
"description": "Number of most-recent candles (the usual candle-API param). Capped at 288 for 1h, 300 for 1d. Aliases: count, candles. Use instead of days."
},
"symbol": {
"type": "string",
"description": "One ticker or full name (\"BTC\" or \"bitcoin\"); a leading $ is fine. Aliases: coin, ticker, asset"
},
"interval": {
"type": "string",
"description": "1h or 1d (default 1d). hour/hourly and day/daily accepted. Aliases: granularity, timeframe"
}
}
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"properties": {
"vs": {
"type": "string"
},
"end": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
},
"stale": {
"type": "boolean"
},
"start": {
"type": "string"
},
"stats": {
"type": "object",
"properties": {
"open": {
"type": "number"
},
"close": {
"type": "number"
},
"avg_volume": {
"type": "number"
},
"change_pct": {
"type": [
"number",
"null"
]
},
"period_low": {
"type": "number"
},
"period_high": {
"type": "number"
}
}
},
"source": {
"type": "string",
"description": "coinbase | kraken"
},
"symbol": {
"type": "string"
},
"candles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
},
"open": {
"type": "number"
},
"time": {
"type": "string"
},
"close": {
"type": "number"
},
"volume": {
"type": "number"
}
}
}
},
"findings": {
"type": "array"
},
"interval": {
"type": "string"
},
"candle_count": {
"type": "number"
},
"cache_age_seconds": {
"type": "number"
}
}
}
}
},
"paymentRequirements": [
{
"raw": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xdaDc335482AD545296Fd7b28518A251fFCbEb9Df",
"amount": "20000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xdaDc335482AD545296Fd7b28518A251fFCbEb9Df",
"scheme": "exact",
"network": "eip155:8453",
"amountAtomic": "20000"
},
{
"raw": {
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"payTo": "8FVeybWnB4dYrxTuPK7WzFZNAiEcFVaDLFnKpRwVGr5s",
"amount": "20000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
},
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"payTo": "8FVeybWnB4dYrxTuPK7WzFZNAiEcFVaDLFnKpRwVGr5s",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"amountAtomic": "20000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.