Access historical prices and ML-powered predictions for 40,000+ stocks, ETFs, and cryptocurrencies via a simple REST API.
Paid endpoints require an API key passed in the x-api-key header. Get your key by signing up
on the homepage.
curl -H "x-api-key: YOUR_API_KEY" \ https://api.bako.co/v1/history?symbol=AAPL
The /v1/symbols endpoint is free and does not require an API key.
Search and browse all available symbols. No API key required.
| Parameter | Type | Description |
|---|---|---|
| type | string optional | stock, etf, or crypto. Omit for all types. |
| search | string optional | Partial match on ticker symbol (e.g., APP matches AAPL). |
| limit | integer optional | Results per page. Default: 100, max: 1000. |
| offset | integer optional | Pagination offset. Default: 0. |
{
"total": 34236,
"limit": 2,
"offset": 0,
"count": 2,
"data": [
{ "symbol": "AAPL", "type": "Stock", "exchange": "NASDAQ", "startDate": "1980-12-12", "endDate": "2026-06-18" },
{ "symbol": "AAPB", "type": "ETF", "exchange": "BATS", "startDate": "2021-10-28", "endDate": "2026-06-18" }
]
}
Retrieve historical close prices for a symbol.
| Parameter | Type | Description |
|---|---|---|
| symbol | string required | Ticker symbol (e.g., AAPL, btc). |
| startDate | string optional | ISO date string (e.g., 2024-01-01). |
| endDate | string optional | ISO date string (e.g., 2025-01-01). |
{
"symbol": "AAPL",
"count": 3,
"data": [
{ "date": "2024-01-02", "price": 185.64 },
{ "date": "2024-01-03", "price": 184.25 },
{ "date": "2024-01-04", "price": 181.91 }
]
}
Get ML-powered price predictions. Returns up to 100 days of forecasted prices. Predictions are generated daily using Vertex AI (TimesFM) and TensorFlow.js models, enhanced with real-time news analysis.
| Parameter | Type | Description |
|---|---|---|
| symbol | string required | Ticker symbol (e.g., AAPL, btc). |
| date | string optional | Prediction date (YYYY-MM-DD). Defaults to latest. |
{
"symbol": "AAPL",
"predictionDate": "2026-06-20",
"horizon": 100,
"data": [
{ "date": "2026-06-21", "price": 198.45 },
{ "date": "2026-06-22", "price": 199.12 },
...
]
}
The API uses standard HTTP status codes:
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing required parameters |
| 401 | Unauthorized — invalid or missing API key |
| 404 | Not found — symbol or prediction data not available |
| 429 | Rate limited — daily quota exceeded |
| 500 | Server error |
API calls are rate-limited per API key on a daily basis. When you exceed your daily quota, the API
returns a 429 status code. Usage resets at midnight UTC.
Upgrade your plan for higher limits, or contact us for enterprise needs.