● REST API v1
API Reference
Free, no authentication required, no rate limits. All endpoints return JSON. Data is sourced from public financial feeds and refreshed hourly on the server.
BASE URL
https://your-host
+ /api/v1/<endpoint>
Authentication
None required
Rate Limiting
No limits
Response Format
JSON (UTF-8)
System
GET
/api/v1/health
Server liveness check
Parameters
None
EXAMPLE RESPONSE
{
"status": "ok",
"timestamp": "2026-03-24T22:00:00Z",
"go_version": "go1.22.0"
}
LIVE RESPONSE
POST
/api/v1/update
Trigger manual data refresh
Parameters
None. Fetches all ~250 watchlist symbols and stores results in DB. This also runs automatically every hour.
EXAMPLE RESPONSE
{
"fetched": 251,
"inserted": 0,
"refreshed": 251,
"failed": 1,
"total": 252,
"total_records": 4043,
"duration_ms": 10796,
"success": false,
"errors": ["BRK-B: ..."],
"timestamp": "2026-03-24T22:16:34Z"
}
CURL
curl -X POST /api/v1/update
Market Data
GET
/api/v1/view
All latest quotes or symbol history
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | optional | If provided, returns historical snapshots for this symbol instead of the full market snapshot. |
| limit | integer | optional | Number of historical records to return when symbol is set. Default: 50, max: 500. |
ALL SYMBOLS — GET /api/v1/view
{
"quotes": [
{
"Symbol": "AAPL",
"Name": "Apple Inc.",
"Category": "stock",
"Price": 213.49,
"Change": -1.23,
"ChangePercent": -0.57,
"Open": 214.72,
"High": 215.00,
"Low": 212.10,
"Volume": 54823100,
"FiftyTwoWeekHigh": 237.23,
"FiftyTwoWeekLow": 164.08,
"Currency": "USD",
"MarketState": "REGULAR",
"FetchedAt": "2026-03-24T22:00:00Z"
}
],
"count": 251
}
SYMBOL HISTORY — GET /api/v1/view?symbol=AAPL&limit=5
{
"symbol": "AAPL",
"quotes": [ /* same Quote objects, ordered newest first */ ]
}
LIVE RESPONSE
GET
/api/v1/quote
Live quote for any symbol
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | required | Any valid ticker (e.g. AAPL, BTC-USD, ^GSPC, EURUSD=X, GC=F). Fetches live from upstream and stores in DB. |
EXAMPLE — GET /api/v1/quote?symbol=TSLA
{
"Symbol": "TSLA",
"Name": "Tesla, Inc.",
"Category": "stock",
"Price": 272.15,
"Change": 4.82,
"ChangePercent": 1.80,
"Open": 268.10,
"High": 274.90,
"Low": 265.30,
"Volume": 89241700,
"FiftyTwoWeekHigh": 488.54,
"FiftyTwoWeekLow": 138.80,
"Currency": "USD",
"MarketState": "REGULAR",
"FetchedAt": "2026-03-24T22:00:00Z"
}
LIVE RESPONSE
GET
/api/v1/search
Symbol & name search
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search query — matches symbol or company name. Returns DB results first (with live price data), then falls back to Yahoo Finance symbol search for symbols not yet in DB. |
EXAMPLE — GET /api/v1/search?q=apple
{
"results": [
{
"symbol": "AAPL",
"name": "Apple Inc.",
"exchange": "NASDAQ",
"quoteType": "stock",
"hasData": true,
"price": 213.49,
"change": -1.23,
"changePct": -0.57,
"currency": "USD"
}
],
"count": 3
}
LIVE RESPONSE
GET
/api/v1/info
Symbol metadata & description
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | required | Ticker symbol. Returns enriched metadata: name, sector, industry, description, logo URL. Cached in DB for 7 days — first call may take a moment to fetch. |
EXAMPLE — GET /api/v1/info?symbol=MSFT
{
"Symbol": "MSFT",
"Name": "Microsoft Corporation",
"Description": "Microsoft Corporation is an American multinational technology company...",
"Sector": "Technology",
"Industry": "Software—Infrastructure",
"Exchange": "NASDAQ",
"LogoURL": "https://financialmodelingprep.com/image-stock/MSFT.png",
"UpdatedAt": "2026-03-24T22:00:00Z"
}
LIVE RESPONSE
GET
/api/v1/candles
Daily OHLCV candlestick history
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | required | Ticker symbol. Available for stocks, ETFs, crypto, and commodities. Indices and forex pairs do not have OHLCV history. |
| range | string | optional | Time range. One of: 5d · 1mo · 3mo · 6mo · 1y · 2y · 5y. Default: 3mo. Up to 5 years of daily data is stored. |
EXAMPLE — GET /api/v1/candles?symbol=NVDA&range=5d
{
"symbol": "NVDA",
"range": "5d",
"currency": "USD",
"candles": [
{ "time": "2026-03-18", "open": 112.34, "high": 115.80, "low": 111.20, "close": 114.92, "volume": 201384200 },
{ "time": "2026-03-19", "open": 114.50, "high": 118.30, "low": 113.80, "close": 117.45, "volume": 188293100 }
]
}
LIVE RESPONSE
News
GET
/api/v1/news
Latest news headlines per symbol
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| symbol | string | optional | Filter news to a single ticker. If omitted, returns the latest headlines across all symbols, deduplicated by URL. |
| limit | integer | optional | Number of articles to return. Default: 40, max: 200. |
EXAMPLE — GET /api/v1/news?symbol=AAPL&limit=2
{
"symbol": "AAPL",
"items": [
{
"ID": 4821,
"Symbol": "AAPL",
"Title": "Apple unveils new AI features for iPhone 17",
"URL": "https://finance.yahoo.com/news/...",
"Publisher": "Reuters",
"PublishedAt": "2026-03-24T18:30:00Z",
"Summary": "Apple announced a new suite of AI-powered features...",
"ImageURL": "https://media.reuters.com/...",
"FetchedAt": "2026-03-24T22:00:00Z"
}
],
"count": 1
}
LIVE RESPONSE