The ATLAS ETRM API
for third-party systems
The ATLAS ETRM API exposes the platform’s trading, portfolio, market and back-office data to third-party applications through 280+ versioned endpoints. Every request runs over HTTPS, uses JWT bearer authentication, and speaks JSON envelopes — documented live with examples.
280+ endpoints across the platform
Every controller mirrors a real area of the ATLAS ETRM — from deal capture and master data to time series, invoices and the ATLASi market-operations suite — so your integration talks to the same engine your teams use every day.
Deals & Trade Capture
Paged and filtered deal access (GetWithPaging, GetByIds, by portfolio or company), deal capture via Post, plus collections, clusters, orders and external-ID mapping.
Master Data
Companies, counterparties, business units, books, fees, folders and payment terms — keep your CRM and ERP in sync with one source of truth.
Assets & Time Series
Assets with their relationships, time series upserts (Timeseries/Post), series collections and real-time measurements from the field.
Documents & Alerts
Documents attached to entities (DocumentManager), alert rules and per-entity custom fields — automate the paperwork around your trades.
Bidding & Exchanges
Spot orders and available spot markets, XBID contracts and bidding entities — query the markets you trade and drive orders programmatically.
Invoices & Payments
Retrieve invoices and payments and pull business-intelligence reports for settlement and finance teams.
Business Intelligence
BI reports on demand — BiReports/GetReport lets your dashboards and analytics pull the numbers they need.
ATLASi Market Operations
A dedicated 84-endpoint suite for market operators — DAM, Forward Market, ISP, RTBEM, Market Results and Standing Data.
Clear, always-current documentation
Everything is versioned per release: the interactive endpoint reference (each deployment
serves its own copy at {base-url}/docs), the machine-readable OpenAPI schema, and official
worked examples as a ready-to-import Postman collection.
Get started in minutes
Request a token from POST /api/token using Basic auth, then call any endpoint with
Authorization: Bearer <token>. Tokens are valid for one hour.
# Set once — each ATLAS deployment has its own base URL export ATLAS_BASE_URL="https://your-company.stellarblue.eu" # 1) Get a JWT — Basic auth against /api/token (valid 1 hour) curl -u "your_user:your_password" -X POST \ "$ATLAS_BASE_URL/api/token" # → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # 2) Call any endpoint with the token (JSON envelope in) curl -X POST "$ATLAS_BASE_URL/api/Deal/GetWithPaging" \ -H "Authorization: Bearer $ATLAS_TOKEN" \ -H "Content-Type: application/json" \ -d '{"data":{"limit":50,"offset":0}}' # → { "success": true, "recordCount": 42, "data": [ ... ] }
# Plain HTTP — no SDK required import requests BASE = "https://your-company.stellarblue.eu" # set to your deployment # 1) Token via Basic auth — returns the JWT (1 hour) token = requests.post(f"{BASE}/api/token", auth=("your_user", "your_password")).text # 2) Any endpoint — envelope in, envelope out resp = requests.post( f"{BASE}/api/Deal/GetWithPaging", headers={"Authorization": f"Bearer {token}"}, json={"data": {"limit": 50, "offset": 0}}, ).json() print(resp["success"], resp["recordCount"]) # True 42
// Plain fetch — no SDK required const BASE = "https://your-company.stellarblue.eu"; // your deployment's host // 1) Token via Basic auth — returns the raw JWT string const token = await fetch(`${BASE}/api/token`, { method: "POST", headers: { Authorization: "Basic " + btoa("user:password") }, }).then((r) => r.text()); // 2) Call any endpoint with the bearer token const res = await fetch(`${BASE}/api/Deal/GetWithPaging`, { method: "POST", headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" }, body: JSON.stringify({ data: { limit: 50, offset: 0 } }), }); const body = await res.json(); // { success, recordCount, data }
Base URL: https://<your-company>.stellarblue.eu — ATLAS runs a dedicated deployment per customer · HTTPS required · JSON responses · Tokens valid 1 hour · 100 req/min per client
Secure by design
All connections are HTTPS-only and authenticated with short-lived JWT bearer tokens issued by the platform.
JWT bearer tokens
Call POST /api/token with your credentials (sent via Basic auth) to receive a JWT
that is valid for one hour. Send it on every request as
Authorization: Bearer <token>. A 401 Unauthorized means the token is
missing, invalid or expired.
HTTPS only
All connections must use SSL/TLS over HTTPS to protect credentials and data in transit. Credentials are never sent over unencrypted channels, and access follows the user’s role-based permissions inside ATLAS ETRM.
TLS required · role-based accessDocumented HTTP status codes
The API uses standard HTTP response codes — the complete documented set:
Consistent and predictable
Every endpoint follows the pattern POST /api/<Controller>/<Action> and exchanges
JSON envelopes. Browse the complete, searchable catalog in the interactive reference.
Simple envelopes
Requests wrap their payload in {"data": ...} and responses come back as
{"success": bool, "recordCount": n, "data": ...} — predictable to integrate against.
Versioned reference
Documentation and the OpenAPI schema are published per release (e.g. v2026.08.05),
so your integration always targets a fixed, reproducible contract.
Rate limited
100 requests per minute per client. Exceeding the limit returns
429 Too Many Requests until the limit resets.
// Standard JSON response envelope — straight from the published spec { "success": true, "recordCount": 42, "data": [ { "id": 1034, "externalId": "EXT-2026-001", "name": "EEX Day-Ahead", "bookId": 12, "counterPartyName": "EFOS" } ] }
API documentation & tooling
One contract, published four ways — use whichever fits your workflow. Every deployment serves its own copy of the reference.
- Interactive reference — Swagger UI with every endpoint, per deployment at
{base-url}/docs - OpenAPI schema — versioned per release (
openapi/v2026.08.05.json) for client generation - Postman collection — official worked examples, ready to import
- Webhooks & envelopes — event catalogue and JSON formats in the same reference
# Single source of truth Interactive docs: {ATLAS_BASE_URL}/docs OpenAPI schema : {ATLAS_BASE_URL}/openapi/v2026.08.05.json Examples : Official Postman collection (linked in the docs) # ATLAS is deployed per customer — {ATLAS_BASE_URL} is your host, # e.g. https://your-company.stellarblue.eu (public demo: etrm-api-demo.stellarblue.eu) # Generate a typed client from the schema in any language openapi-generator generate -i openapi-v2026.08.05.json \ -g python -o ./atlas_client
Real-time events with webhooks
The REST actions give you request → response. Webhooks give you the other half — ATLAS pushes events to your own endpoint the moment something changes.
- Signed JSON deliveries (
HMAC) — verify every event really comes from ATLAS - Automatic retries with backoff, plus a replayable event history
- Subscribe per event type from the platform admin
- Typical events: deal captured or updated, order & bid status, settlement & invoice ready, time series ingested, report generated
# Example webhook delivery — POSTed to your endpoint POST /webhooks/atlas HTTP/1.1 Content-Type: application/json X-Atlas-Event: deal.updated X-Atlas-Signature: sha256=... { "eventId": "evt_01J...", "eventType": "deal.updated", "occurredAt": "2026-09-04T09:00:00Z", "data": { "id": 1034, "externalId": "EXT-2026-001" } }
API FAQ
{base-url}/docs. You can explore the full endpoint catalog and schema today on the public demo deployment at etrm-api-demo.stellarblue.eu/docs.POST /api/token with your username and password (Basic auth) to receive a JWT valid for one hour. Send it as Authorization: Bearer <token> on every request. All connections are HTTPS-only.Deal/Post), synchronise external IDs, and work with orders, SpotOrders, XBID and the ATLASi market-operations suite. Access follows the role of the authenticated ATLAS user.429 Too Many Requests until the limit resets.Ready to build on ATLAS?
Tell us what you want to connect — we'll provision your API credentials, walk you through the token flow and help you go live against the demo environment.
