Skip to content

Demonstration data — not live and not venue-verified. Equity perpetuals are derivatives, not shares.

Why this label

EPIC Data API

Normalised equity-perpetual data

Market, reference, funding, liquidity, specification and risk fields under one contract. This page documents it. It does not serve a live feed.

Audience: quant developers, brokers, research platforms, risk teams, market makers and media. Keys, rate limits, webhooks and a sandbox would exist on a licensed gateway. Sample keys in Settings do not authorise an external call.

EndpointPurpose
GET /v1/marketsNormalised contract list
GET /v1/markets/{market_id}One contract
GET /v1/underlyingsUnderlying directory
GET /v1/underlyings/{ticker}One underlying and its venues
GET /v1/venuesVenue directory
GET /v1/venues/{venue_id}Venue profile
GET /v1/fundingCurrent funding
GET /v1/funding/historyFunding history
GET /v1/basisCurrent basis
GET /v1/basis/historyBasis history
GET /v1/liquiditySpread, depth, volume, open interest
GET /v1/reference-pricesReference anchors
GET /v1/market-statusCash-session state
GET /v1/corporate-actionsEvents and venue treatments
GET /v1/eligibilityStated access phrases
GET /v1/risk-disclosuresDisclosure matrix
GET /v1/specificationsEffective-dated specs
GET /v1/methodologyMethod identifiers
GET /v1/changesPublic change log
GET /v1/alertsAccount alerts, scoped key
GET /v1/statusFeed status
GET /v1/dispersionCross-venue mark and funding ranges
GET /v1/screenFilter the normalised book
GET /v1/bookConstructed depth ladder for one contract
GET /v1/pathsConstructed path ending at the snapshot
GET /v1/calendarEvents, holidays and funding clocks
GET /v1/fieldsField dictionary

Streams that a licence would include

Funding, mark, reference, basis, liquidity, market status, corporate actions, specification changes, risk-disclosure changes. Not connected here.

Sandbox console

{
  "data": [
    {
      "market_id": "northline:NVDA",
      "symbol": "NL-NVDA-PERP",
      "venue": "northline",
      "mark_price": 178.7297,
      "reference_price": 178.4,
      "basis_pct": 0.1848,
      "funding_rate": 0.00009679,
      "funding_direction": "Longs pay shorts",
      "source": "EPIC demonstration dataset",
      "captured_at": "2026-09-25T20:00:00Z",
      "methodology": "demo-snapshot-v1",
      "verified": false
    },
    {
      "market_id": "harbor:NVDA",
      "symbol": "HNVDAPERP",
      "venue": "harbor",
      "mark_price": 177.6402,
      "reference_price": 178.4,
      "basis_pct": -0.4259,
      "funding_rate": -0.0001158,
      "funding_direction": "Shorts pay longs",
      "source": "EPIC demonstration dataset",
      "captured_at": "2026-09-25T20:00:00Z",
      "methodology": "demo-snapshot-v1",
      "verified": false
    }
  ],
  "demo": true
}

curl

curl https://api.equityperpetual.com/v1/markets?underlying=NVDA \
  -H "Authorization: Bearer $EPIC_KEY"

That host is documentation. The response shape is the JSON beside this panel, generated in the browser from the demonstration book.

TypeScript

const res = await fetch(url, { headers: { Authorization: `Bearer ${key}` }});
const body = await res.json();
body.data.forEach((row) => row.verified);

Python

import requests
r = requests.get(url, headers={"Authorization": f"Bearer {key}"})
assert r.json()["demo"] is True