REST API overview
The public REST API at https://api.invia.markets mirrors the indexed view
of every Invia offer plus a handful of helpers that make it possible to
build a fully featured trading client without running your own indexer or
RPC node.
Base URL
https://api.invia.marketsAll endpoints live under the /v1 prefix.
Authentication
None. Every endpoint is public and read-only.
Response envelope
Successful responses return JSON with the shape documented per endpoint. Error responses set an HTTP error code and return:
{ "error": "human-readable reason" }CORS
CORS is enabled for any origin. The SDK works in the browser without proxies.
Rate limits
A soft per-IP rate limit applies. SDK consumers should expect to refresh listings every few seconds, not every few hundred milliseconds.
Read endpoints carry cache-control: public, max-age=10 where that is
safe. Browser fetches are cached automatically; long-running daemons
should respect last_slot / indexedAt to avoid hammering the indexer.
Endpoints
| Method | Path | Purpose |
|---|---|---|
GET | /v1/offers | List indexed offers (filtered) |
GET | /v1/offers/:pda | Fetch a single offer |
GET | /v1/offers/:pda/fills | Per-offer fill history |
GET | /v1/fills | Global fills feed (filtered) |
GET | /v1/stats | Protocol-level aggregates |
GET | /v1/makers/:maker/stats | Per-maker aggregates |
GET | /v1/makers/:maker/offers | Maker's own offers |
GET | /v1/tokens | Jupiter-backed metadata for mints |
GET | /v1/trending | Cached Jupiter top organic |
SDK preference
Most consumers should use @invia-app/sdk which wraps every
endpoint with typed inputs and outputs. The raw HTTP shapes are documented
on the next pages for reference and for non-TypeScript clients.