Быстрый тест
Запросы выполняются на текущий origin (рекомендуется отдавать этот файл с https://marketdata.fin-plan.org).
POST
/v1/dynamics/batch
Диапазон: (1) from/till, (2) period(+asof), (3) если ничего не передали — всё время жизни актива.
ver: ""|latest (default) или число. ver=all не поддерживается.
ver: ""|latest (default) или число. ver=all не поддерживается.
Assets
Если задано хотя бы одно из from/till — period/asof игнорируются.
GET
/v1/{typeCode}/{assetCode}/last
GET
/v1/{typeCode}/{assetCode}/prices
POST
/v1/prices/batch
Ограничение тела: 2 MiB. assets: 1..200. limit/offset — per-asset.
Ответ
HTTP: —
—
Краткая документация
Формат дат: YYYY-MM-DD · Диапазоны включительные (>=from, <=till)
GET /healthz
GET /v1/types
GET /v1/{typeCode}/{assetCode}/last
GET /v1/{typeCode}/{assetCode}/prices
GET /v1/{typeCode}/{assetCode}/prices/{date}
POST /v1/prices/batch
POST /v1/dynamics/batch
Назначение: старт/финиш, abs/pct, min/max, points по каждому активу.
Request
{
"assets": [{"type":"share_usa","code":"aapl"}],
"from": "YYYY-MM-DD",
"till": "YYYY-MM-DD",
"period": "day|week|month|quarter|year",
"asof": "YYYY-MM-DD",
"ver": "latest|<number>|"
}
Диапазон
- from/till задано хотя бы одно → явный диапазон (period/asof игнорируются).
- Иначе используется period (+ asof, default: today UTC).
- Если нет ни from/till, ни period → весь срок жизни актива.
Response
{
"meta": {"from":"...","till":"...","period":"...","asof":"...","ver":"..."},
"data": [{
"type": {"id":2,"name":"...","code":"share_usa"},
"asset_code": "AAPL",
"data": {
"start": {"date":"YYYY-MM-DD","price": 123.45},
"end": {"date":"YYYY-MM-DD","price": 130.00},
"change": {"abs": 6.55, "pct": 5.305},
"range": {"min": 120.10, "max": 131.20},
"points": 31
}
}]
}
{
"error": "code",
"details": {"k":"v"}
}
Типовые коды
- bad_json, bad_assets, bad_date, bad_period, bad_range
- unknown_type, not_found
- db_error
- bad_ver (для /v1/dynamics/batch)
Примечание: сервер нормализует asset_code в UPPER. typeCode — как в /v1/types (обычно lower).