Developers
Enerlytics API beta
We are opening the first developer-facing API layer for teams that want Enerlytics data outside the dashboard. The current beta is read-oriented and strongest for internal dashboards, research workflows, and downstream alerting rather than full self-serve platform automation.
Approved teams receive scoped API keys. Send the key as x-api-key or Authorization: Bearer <key>. The public beta contract lives under /api/v1, separate from the dashboard's internal browser routes.
What teams get first
A credible beta surface
- Signals, alerts, inventory context, AIS nowcasts, structure reads, and other transformed outputs through stable GET endpoints.
- Request-based onboarding so we can align endpoint access to your workflow instead of over-selling self-serve keys too early.
- Human follow-up on volume, reliability expectations, and where webhook or CSV-style delivery matters most.
- A handful of more differentiated routes are intentionally held for the Team plan so the platform can step up in quality with your needs.
Beta rules
How to think about this API today
- These routes are best treated as beta endpoints: useful now, but not yet versioned with hard backward-compatibility guarantees.
- The strongest fit is internal use: desk dashboards, analyst tooling, Slack bots, and research pipelines.
- We bias the published surface toward derived insight and public-source transforms, not raw subscribed vendor feeds.
Data boundary
What we expose, and what we intentionally do not
The API Beta is designed to make teams feel like they can access a lot of Enerlytics without turning us into a vendor-data redistribution layer. That means we lean hard into transformed surfaces, regime scores, and workflow-ready context.
We do not publish vendor-substitute quote feeds, intraday tape, or broad OHLC history through the API beta.
Those are the surfaces most likely to trip redistribution or exchange licensing rules.
We keep full option chain payloads and bulk contract tables internal for now.
Chain-level machine-to-machine redistribution is where licensing gets sharp fastest.
We expose nowcasts, zone states, and friction-style scores instead of raw vessel-by-vessel datasets.
Derived maritime intelligence is safer and more differentiated than becoming a raw AIS relay.
- Open / Public-source means the underlying data is public enough that we can expose the transformed series comfortably.
- Derived / API-beta safe means the endpoint returns Enerlytics scoring, regime logic, summaries, or composites rather than vendor-substitute raw feeds.
- Restricted / contract review required means we keep that category out of the public API beta unless licensing changes later.
/api/v1/signals/snapshotDerived / API-beta safeBeta PlanSignal Snapshot
Current 1d/5d model read for a single symbol, plus optional history and audit context.
symbol *UI symbol like CL1, CO1, XLE, or USO.historyPageHistory page number for resolved/pending predictions.historyPageSizeRows per page, max 50.historyHorizonall, 1d, or 5d.https://beta.enerlytics.io/api/v1/signals/snapshot?symbol=CL1&historyPage=1&historyPageSize=8&historyHorizon=allcurl -sS "https://beta.enerlytics.io/api/v1/signals/snapshot?symbol=CL1&historyPage=1&historyPageSize=8&historyHorizon=all" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"ok": true,
"symbol": "CL1",
"bias": "Bullish",
"displaySignal": "Bullish",
"isActionable": true,
"reliability": {
"trustLabel": "Medium trust",
"reliabilitySampleSize": 22
},
"horizons": {
"1d": { "confidencePct": 61.4 },
"5d": { "confidencePct": 64.8 }
}
}- This is a transformed signal layer, not a raw prediction table dump.
- Best for explainers, signal audit tools, and model-aware workflows.
/api/v1/alerts/tacticalDerived / API-beta safeBeta PlanTactical Alerts
Aggregated tactical alert feed with price, structure, AIS, inventory, and news context.
regionRegion/zone, for example us_gulf.categoryall, price, structure, ais, inventory, news, or model.minLevellow, med, or high.levelExact level filter if needed.https://beta.enerlytics.io/api/v1/alerts/tactical?region=us_gulf&category=all&minLevel=medcurl -sS "https://beta.enerlytics.io/api/v1/alerts/tactical?region=us_gulf&category=all&minLevel=med" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"ok": true,
"alerts": [
{
"id": "price_impulse_cl1",
"level": "high",
"category": "price",
"title": "WTI impulse extended through intraday highs"
}
]
}- Best fit for downstream alerting, triage, and chat workflows.
- This is an Enerlytics decision layer rather than a vendor feed replay.
/api/v1/insights/inventory-bandsDerived / API-beta safeBeta PlanInventory Bands
Narrative inventory read built from commercial crude stocks, SPR, five-year range, and weekly deltas.
https://beta.enerlytics.io/api/v1/insights/inventory-bandscurl -sS "https://beta.enerlytics.io/api/v1/insights/inventory-bands" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"text": "Commercial U.S. crude stocks drew 7,537 kbbl w/w...",
"stats": {
"crudeInv": 849882,
"wow": -7537,
"spr": 392700,
"total": 1242582,
"bandPosition": 0.28
}
}- Built on public-source EIA data, but returned as Enerlytics interpretation and regime context.
/api/v1/insights/premarket-sessionDerived / API-beta safeBeta PlanPremarket Session Summary
Derived extended-hours scoreboard for energy-linked ETFs and equities, including the latest premarket read, biggest movers, and a plain-English tone check.
symbolsComma-separated symbols like USO,XLE,XOP,BNO. Defaults to an energy watchlist.https://beta.enerlytics.io/api/v1/insights/premarket-session?symbols=USO,XLE,XOP,BNOcurl -sS "https://beta.enerlytics.io/api/v1/insights/premarket-session?symbols=USO,XLE,XOP,BNO" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"coverageWindow": "04:00-09:30 America/New_York",
"sessionDate": "2026-05-22",
"sessionTone": "mixed",
"summary": "Premarket energy trade is mixed so far, with XLE leading at +0.8% vs prior close while USO is softer at -0.3%.",
"leaders": [
{ "symbol": "XLE", "movePct": 0.8 },
{ "symbol": "BNO", "movePct": 0.5 }
]
}- This is a session summary layer, not a raw extended-hours quote stream.
/api/v1/eia/bandsOpen / Public-sourceBeta PlanEIA Bands Series
Chart-ready commercial crude, SPR, and total stocks with five-year band context.
startStart date in YYYY-MM-DD format.endEnd date in YYYY-MM-DD format.https://beta.enerlytics.io/api/v1/eia/bands?start=2021-01-01&end=2026-05-01curl -sS "https://beta.enerlytics.io/api/v1/eia/bands?start=2021-01-01&end=2026-05-01" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"seriesCode": "WCRSTUS1",
"reserveSeriesCode": "WCSSTUS1",
"latestSummary": {
"commercialKbbl": 849882,
"sprKbbl": 392700,
"totalKbbl": 1242582
},
"data": [
{ "d": "2026-05-15", "min": 780100, "max": 1043000, "obs": 849882, "spr": 392700, "total": 1242582 }
]
}- This is the cleanest public-source series we can expose without licensing anxiety.
/api/v1/insights/term-structureDerived / API-beta safeBeta PlanTerm Structure Insight
Prompt/deferred curve regime, persistence, and interpretation for CL1-led structure.
symbolDefaults to CL1. Keeps room for future symbol coverage.https://beta.enerlytics.io/api/v1/insights/term-structure?symbol=CL1curl -sS "https://beta.enerlytics.io/api/v1/insights/term-structure?symbol=CL1" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"symbol": "CL1",
"regime": {
"m1_m2": "backwardation",
"m1_m6": "backwardation",
"m1_m6Persistence": "holding"
},
"meaning": "Prompt crude is staying tighter than deferred barrels...",
"watchNext": "Watch whether inventories, crude-on-water, and Brent-WTI keep reinforcing the same prompt-tightness story..."
}- This is exactly the kind of transformed surface we should lean on: useful, differentiated, and not a raw vendor substitute.
/api/v1/insights/options-positioning-summaryDerived / API-beta safeTeam PlanOptions Positioning Summary
Nearest-expiry options posture for key energy-linked underlyings, summarized into put/call, implied-volatility, and pressure labels.
underlyingsComma-separated underlyings like USO,XLE,XOP. Defaults to the core beta watchlist.https://beta.enerlytics.io/api/v1/insights/options-positioning-summary?underlyings=USO,XLE,XOPcurl -sS "https://beta.enerlytics.io/api/v1/insights/options-positioning-summary?underlyings=USO,XLE,XOP" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"summary": "USO is showing the most defensive posture on the nearest expiry, with put-heavy open interest and elevated implied volatility.",
"items": [
{
"underlying": "USO",
"expirationDate": "2026-05-29",
"putCallRatio": 1.17,
"ivAvg": 0.33,
"positioningLabel": "put-heavy hedging"
}
]
}- This is the aggregate options read, not a machine-to-machine full chain export.
/api/v1/insights/crude-on-water-toplineDerived / API-beta safeBeta PlanCrude on Water Topline
Enerlytics topline read on terrestrial crude-on-water composites and week-over-week shifts.
https://beta.enerlytics.io/api/v1/insights/crude-on-water-toplinecurl -sS "https://beta.enerlytics.io/api/v1/insights/crude-on-water-topline" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"text": "The terrestrial crude-on-water proxy is firming...",
"stats": {
"latestTotal": 512,
"totalPct": 3.4,
"driver": "Middle East export"
}
}- Safe because it is a composite/proxy layer, not a raw vessel position dataset.
/api/v1/insights/arrivals-nowcastDerived / API-beta safeTeam PlanArrivals Nowcast
Near-term tanker arrival nowcast by port based on destination heuristics and vessel motion.
portsComma-separated port codes like HOU,CCT,LAA,BPT.horizonHorizon in hours, default 24.https://beta.enerlytics.io/api/v1/insights/arrivals-nowcast?ports=HOU,CCT,BPT&horizon=24curl -sS "https://beta.enerlytics.io/api/v1/insights/arrivals-nowcast?ports=HOU,CCT,BPT&horizon=24" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"horizon": 24,
"results": {
"HOU": {
"arriving": 3,
"list": [
{ "mmsi": "123456789", "etaHours": 12, "distNm": 143 }
]
}
}
}- This is a derived ETA-style workflow surface, not a bulk AIS position feed.
/api/v1/insights/zone-snapshotDerived / API-beta safeTeam PlanZone Snapshot
Current tanker state, 30-day baseline comparison, and top destinations for a zone.
zoneZone key like global, us_gulf, or hormuz.https://beta.enerlytics.io/api/v1/insights/zone-snapshot?zone=us_gulfcurl -sS "https://beta.enerlytics.io/api/v1/insights/zone-snapshot?zone=us_gulf" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"zone": "us_gulf",
"latest": {
"tankerCount": 47,
"anchoredCount": 12,
"underwayCount": 29
},
"comparisonVs30d": {
"tankerCountPct": 0.18,
"anchoredCountPct": -0.07
}
}- Useful for desks that want a zone-level state signal without raw track redistribution.
/api/v1/insights/chokepoint-frictionDerived / API-beta safeTeam PlanChokepoint Friction
Zone-level terrestrial AIS friction index and supporting tanker-flow metrics.
zoneFriction zone key such as hormuz, suez, or us_gulf.daysLookback window, 30 to 365 days.https://beta.enerlytics.io/api/v1/insights/chokepoint-friction?zone=strait_of_hormuz&days=90curl -sS "https://beta.enerlytics.io/api/v1/insights/chokepoint-friction?zone=strait_of_hormuz&days=90" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"zone": "strait_of_hormuz",
"label": "Strait of Hormuz",
"latest": {
"frictionIndex": 58.4,
"uniqueTankers": 31,
"slowUnderwayShare": 0.29
}
}- This is intentionally a friction score, not a raw AIS route feed.
/api/v1/insights/ais-pressure-compositeDerived / API-beta safeTeam PlanAIS Pressure Composite
Zone-level maritime pressure score combining live tanker state, baseline drift, and friction context into one desk-friendly read.
zoneZone key like strait_of_hormuz, suez_red_sea, us_gulf, or north_sea.https://beta.enerlytics.io/api/v1/insights/ais-pressure-composite?zone=strait_of_hormuzcurl -sS "https://beta.enerlytics.io/api/v1/insights/ais-pressure-composite?zone=strait_of_hormuz" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"zone": "strait_of_hormuz",
"coverageMode": "terrestrial_only",
"satelliteReady": false,
"pressureScore": 64.2,
"regime": "elevated",
"summary": "Terrestrial AIS is showing elevated tanker pressure through the zone, with anchored activity and friction both running above their recent baseline."
}- Today this is explicitly terrestrial-only, with room to absorb satellite coverage later without changing the contract.
/api/v1/news/topDerived / API-beta safeBeta PlanTop Energy News
Deduplicated energy news feed with impact labels, sentiment, and optional text search.
limit1 to 100 rows.offsetPagination offset.window24h, 48h, or 7d.qOptional text filter.https://beta.enerlytics.io/api/v1/news/top?limit=10&window=48hcurl -sS "https://beta.enerlytics.io/api/v1/news/top?limit=10&window=48h" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"items": [
{
"headline": "Kinetik takes FID on $260m Kings Landing II gas processing plant",
"source": "finance.yahoo.com",
"sentiment": "pos",
"oilImpact": "bullish"
}
]
}- We expose the curated, labeled layer rather than the raw ingestion substrate.
/api/v1/developers/alert-webhook-specDerived / API-beta safeTeam PlanAlert Webhook Payload Spec
Reference payload shape for future webhook fanout so teams can build receivers before we turn on broad delivery.
https://beta.enerlytics.io/api/v1/developers/alert-webhook-speccurl -sS "https://beta.enerlytics.io/api/v1/developers/alert-webhook-spec" \
-H "x-api-key: YOUR_API_KEY"Expand sample response
{
"version": "2026-05-beta",
"eventType": "alert.created",
"samplePayload": {
"title": "WTI impulse extended through intraday highs",
"category": "price",
"level": "high",
"routeHref": "/dashboards/alerts?focus=price_impulse_cl1"
}
}- This is a contract/spec surface for integrations, not a live delivery endpoint yet.
Team Access
Request API Beta Access
We are opening read access first for desks, internal tools, and research workflows that want Enerlytics data outside the dashboard. During beta, we focus on derived insight and workflow-ready summaries rather than raw vendor-feed redistribution.
/api/v1 surface. We review endpoint fit first so the access shape matches your workflow instead of handing out one oversized key to everyone.