TILLA
TILLA DOCS · GETTING STARTED

Authentication

There is only one URL for everyone — you never change it:

https://api.tillacrypto.com

All endpoints live under /v1.

What the API supports

FeatureSupport
HTTPSHTTPS only, TLS 1.2 or newer, HSTS
Authyour key in a header: X-API-Key or Authorization: Bearer
CORSopen to every origin: call it from a browser app, a notebook or a dashboard on any site (no cookies, ever)
Formatsjson, csv, ndjson, parquet with ?format=
Compressiongzip
Rate limitsX-RateLimit-* headers on every keyed answer; 429 with Retry-After
PagingX-More and X-Next-Start headers
LiveServer-Sent Events on /v1/<tier>/stream, plus tick, resume and changes
ErrorsJSON body with the HTTP status; X-Request-Id on every answer
Machine-readableOpenAPI 3, llms.txt and an MCP server for AI agents

Every data call needs a key. Send it in either header:

X-API-Key: tk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxxxxxx

Getting a key. Create a free account and press Generate on your dashboard — or, with no account at all, POST /v1/demo_key returns a free key (one per address per day). A paid plan upgrades the key you already have; nothing to change in your code.

The tier is in the path. GET /v1/<tier>/raw/<lane> serves that tier's slice, and your key must be that tier or higher. A Pro key may call /v1/free/... and is served the Free slice; a Free key calling /v1/pro/... gets 403.

curl -H "X-API-Key: tk_live_xxx" \
  "https://api.tillacrypto.com/v1/free/raw/1min?series=btc_close,eth_close&limit=5"

Formats: json (default), csv, ndjson or parquet on every data call, with ?format=.

Timestamps are UTC: YYYY-MM-DD HH:MM:SS, and YYYY-MM-DD on daily and slower lanes. timestamp is always the first column. A bar labelled T covers the period ending at T — the 12:00:00 hourly bar is 11:00 to 12:00.