Market data
OREE covers prices, indexes, and trading results, while UEEX adds the BCM BASE benchmark.
Developer API · Alvo platform
Connect Alvo to internal portals, BI, partner products, or trader workflows. V1 prepares verifiable calculations, explanations, risk reports, and audit trails, but it does not submit market orders without the responsible trader.
Integration layers
OREE covers prices, indexes, and trading results, while UEEX adds the BCM BASE benchmark.
Strategy, BESS, and backtest endpoints share the same PricePoint model.
Risk reports, audit events, API key mode, and rate limits for a controlled launch.
Security model
ALVO_REQUIRE_API_KEY=true moves endpoints into key-protected mode. The key is accepted through x-alvo-api-key or Authorization: Bearer. Every response includes no-store, X-Alvo-API-Version, and security mode headers.
Workflow
GET /api/oree/prices, /api/oree/indexes, /api/oree/trading-results, and /api/ueex/electricity-indexes or your own CSV/import layer.
POST /api/strategy/plan and POST /api/bess/plan.
POST /api/risk/report before export or approval.
POST /api/audit/events for key actions.
POST /api/notifications/subscriptions for PWA channels without automatic order submission.
Endpoints
/api/healthOperational readiness for API, security mode, rate limits, engines, and market data dependencies.
/api/oree/pricesMonthly DAM or IDM price book from public Market Operator data.
/api/oree/indexesBase, Peak, OffPeak, min, max, and weighted-average DAM prices by date.
/api/oree/trading-resultsDaily DAM/IDM results with hourly price, matched buy/sell volumes, and declared volumes.
/api/ueex/electricity-indexesPublic Ukrainian Energy Exchange BCM BASE indexes for benchmark context.
/api/forecastMonthly probabilistic forecast: hourly p10/p50/p90 bands, the served model, and its skill (rMAE vs the seasonal-naive benchmark).
/api/strategy/planRecommended buy/sell hours, expected result, spreads, volume, and fees.
/api/bess/planCharge/discharge cycles, profit with efficiency, degradation, and equivalent cycles.
/api/backtest/summaryMulti-day strategy + BESS performance, hit rate, best/worst days, and daily rows.
/api/risk/reportData coverage, anomalies, exposure, BESS cycles, and guardrails before trader approval.
/api/ai/trading-briefLocalized deterministic brief for the trader in Ukrainian or English.
/api/billing/plansPublic contract for plans, AI/API limits, add-ons, and overage policy before future checkout.
/api/audit/eventsTyped prices_loaded, csv_imported, ai_brief_generated, and plan_exported events for the action log.
/api/audit/eventsTenant-scoped list of recent events (audit.read role only when RBAC is enforced). Supports limit and before cursor for pagination.
/api/coupling/flowsHourly MW flows for a UA border (default UA↔PL): leg.fromTo, leg.toFrom, netFlowMw. Live from ENTSO-E A11; fixture when token absent.
/api/multi-zone/pricesHourly day-ahead prices for UA neighbours (PL, SK, HU, RO) and DE-LU as the EU benchmark, in each zone's native currency. Live from ENTSO-E A44; fixture when token absent.
/api/system-operationsHourly UA load + generation mix (nuclear / coal / gas / hydro / wind / solar). Live from ENTSO-E A65 + A75; fixture when UA TSO doesn't publish (today).
/api/account/api-keysMint a tenant-scoped API key for programmatic access. Plaintext is returned exactly once — save it. Requires api.manage role (owner).
/api/account/api-keysActive API keys for the tenant (without plaintext): name, prefix, lastUsedAt, createdAt.
/api/account/api-keys/{id}Soft-revoke a key (writes revokedAt + actorId). Revoked keys cannot be restored — issue a new one.
/api/notifications/subscriptionsWeb Push contract for price updates, risk alerts, BESS windows, and export readiness without trading action.
curl -X POST "$ALVO_URL/api/risk/report" \
-H "content-type: application/json" \
-H "x-alvo-api-key: $ALVO_API_KEY" \
-d '{
"tradeDate": "13.05.2026",
"prices": [
{ "hour": 0, "priceUahMwh": 5575 },
{ "hour": 1, "priceUahMwh": 5100 },
{ "hour": 2, "priceUahMwh": 100 },
{ "hour": 3, "priceUahMwh": 70 },
{ "hour": 4, "priceUahMwh": 100 },
{ "hour": 5, "priceUahMwh": 4800 },
{ "hour": 6, "priceUahMwh": 5880 },
{ "hour": 7, "priceUahMwh": 5267 },
{ "hour": 8, "priceUahMwh": 3878 },
{ "hour": 9, "priceUahMwh": 3050 },
{ "hour": 10, "priceUahMwh": 49 },
{ "hour": 11, "priceUahMwh": 10 },
{ "hour": 12, "priceUahMwh": 11 },
{ "hour": 13, "priceUahMwh": 11 },
{ "hour": 14, "priceUahMwh": 10 },
{ "hour": 15, "priceUahMwh": 12 },
{ "hour": 16, "priceUahMwh": 110 },
{ "hour": 17, "priceUahMwh": 1900 },
{ "hour": 18, "priceUahMwh": 6200 },
{ "hour": 19, "priceUahMwh": 7400 },
{ "hour": 20, "priceUahMwh": 6900 },
{ "hour": 21, "priceUahMwh": 6100 },
{ "hour": 22, "priceUahMwh": 5400 },
{ "hour": 23, "priceUahMwh": 4800 }
],
"strategySettings": {
"volumeMwh": 5,
"minSpreadUah": 250,
"maxTradesPerDay": 4,
"feeUahPerMwh": 12
},
"bessSettings": {
"capacityMwh": 10,
"powerMw": 5,
"roundTripEfficiency": 0.9,
"maxCyclesPerDay": 2,
"degradationCostUahMwh": 80
}
}'{
"tradeDate": "13.05.2026",
"report": {
"overallStatus": "needsReview",
"score": 76,
"reviewCount": 3,
"blockCount": 0
}
}Use the workspace to verify logic manually, then use OpenAPI JSON for SDKs, Postman, contract tests, or partner integrations.