Asher Core

API Documentation

The AsherCore API is a plain HTTPS + JSON interface to our market-data platform. Every endpoint is a GET, every response is JSON, and the base URL is https://ashercore.com. No SDK required.

Introduction

AsherCore serves normalized market data — OHLCV candles, live prices, funding rates, order books and a full instrument catalog — across crypto, equities and forex, all from our own store. You get one key that spans every asset class.

# The canonical "hello world" — 3 hourly BTC candles
curl "https://ashercore.com/api/market/candles?coin=BTC&interval=1h&limit=3" \
  -H "Authorization: Bearer YOUR_ASHERCORE_KEY"

Authentication

Authenticate every request with your API key, available in your dashboard. Pass it either as a bearer token in the Authorization header (recommended) or as a key query parameter.

# Header (preferred)
-H "Authorization: Bearer core_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# …or query param
?key=core_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keep your key server-side. Anyone with it can spend your quota. Rotate it anytime from the dashboard — the old key stops working immediately.

Rate limits & quotas

Each plan sets a monthly call quota and a per-second rate limit. Limits are returned on every response as headers:

HeaderMeaning
X-RateLimit-LimitRequests allowed per second on your plan.
X-RateLimit-RemainingCalls left in your monthly quota.
Retry-AfterSeconds to wait after a 429.
PlanMonthly callsRateHistory
Sandbox10,0001 / sec30 days
Starter500,00010 / secFull
Growth5,000,00050 / secFull
Scale25,000,000200 / secFull

Errors

AsherCore uses standard HTTP status codes. Error bodies carry an error string.

CodeMeaning
200OK.
400Bad request — e.g. an unsupported interval.
401Missing or invalid API key.
429Rate limit or monthly quota exceeded.
500Server error — retry with backoff.

Candles

GET/api/market/candles

OHLCV candles for any instrument, at the native base interval resampled to your requested timeframe.

ParamTypeDescription
coin requiredstringTicker, e.g. BTC, ETH, AAPL, EURUSD.
intervalstring1m · 5m · 15m · 1h · 4h · 1D · 1W. Default 1h.
limitintBars to return, 10–5000. Default 200.
beforeintUnix-seconds cursor for scroll-back — returns bars strictly older than this.
venuestringOptional venue override — one of /api/market/venues.
// Response
{
  "coin": "BTC",
  "interval": "1h",
  "exchange": "Binance",
  "source": "Binance Spot",
  "candles": [
    { "time": 1723420800, "open": 61240.1, "high": 61510.0,
      "low": 61180.4, "close": 61432.7, "volume": 812.44 }
  ]
}

Catalog

GET/api/market/catalog

The full instrument universe — every symbol we ingest, pre-tagged with venue and asset class. No parameters. Cached ~5 minutes.

{ "updated": 1723420800000, "count": 2506,
  "coins": [ { "symbol": "BTC", "venue": "binance", "class": "crypto" } ] }

Coins

GET/api/market/coins

The fast, cached snapshot of priced majors — last price and change for the top instruments. Ideal for a default watchlist view.

Quote

GET/api/market/quote

Latest quote for a single instrument.

ParamTypeDescription
coin requiredstringTicker, e.g. ETH.

Mids

GET/api/market/mids

Live mid prices — the low-latency map of ticker → price for building tickers and dashboards.

Funding

GET/api/market/funding

Perpetual funding rates by instrument. Pair with /api/market/funding-radar for a ranked, cross-venue view of the richest funding.

Order book

GET/api/market/orderbook

Order-book depth snapshot for an instrument (bids/asks). Growth plan and above.

ParamTypeDescription
coin requiredstringTicker, e.g. BTC.

Screener

GET/api/market/screener

A ranked, filterable slice of the universe — perfect for discovery UIs and dynamic watchlists.

Venues

GET/api/market/venues

The venues we ingest and their coverage metadata — use the returned ids as the venue parameter on /api/market/candles.

Ready to build? Grab a free key and make your first call in under a minute. Questions? hello@ashercore.com.