ATLAS ETRM API · OpenAPI 3.0

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 · 40+ controllers JWT bearer auth JSON envelopes 100 req / min Versioned docs
atlas-api — quickstart
# ATLAS is deployed per customer — set your base URL
export ATLAS_BASE_URL=https://your-company.stellarblue.eu
 
# 1) Get a JWT (valid 1 hour) — Basic auth on /api/token
curl -u "your_user:your_pass" \
    -X POST $ATLAS_BASE_URL/api/token
→ eyJhbGciOiJIUzI1NiIs...
 
# 2) Call an endpoint with the token
curl -X POST …/api/Deal/GetWithPaging \
    -H "Authorization: Bearer $ATLAS_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"data":{"limit":50,"offset":0}}'
→ { "success": true, "recordCount": 42, "data": [ ... ] }
280+
Endpoints across 40+ controllers
100
Requests per minute per client
1 h
JWT token lifetime via /api/token
HTTPS
Only — SSL required for all calls

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.

POST /api/token → JWT (expires in 1 h)
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 access
Documented HTTP status codes

The API uses standard HTTP response codes — the complete documented set:

200 OK 201 Created 202 Accepted 204 No Content 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 429 Too Many Requests 500 / 502 / 503 Server

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

Every ATLAS deployment serves its own API reference at {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.

Call 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.

Yes — capture deals (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.

The API allows 100 requests per minute per client. Exceeding the limit returns 429 Too Many Requests until the limit resets.

API access is included with your ATLAS ETRM subscription. Contact our team and we will provision your credentials and share the official Postman collection with worked examples.

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.