REST API/Offers
Offers
The offers endpoint surfaces every indexed offer along with its current status. It is the canonical view of the order book.
GET /v1/offers
Query parameters
| Name | Type | Notes |
|---|---|---|
status | "open" | "filled" | "expired" | Defaults to open |
maker | string | Base58 wallet address |
tokenMint | string | Filter by asset mint |
paymentMint | string | Filter by payment mint |
side | "sell" | "buy" | |
limit | number | Max 200, default 50 |
offset | number | Default 0 |
Response
{
"offers": [
{
"pda": "5x...",
"maker": "3p...",
"tokenMint": "Es9...",
"paymentMint": "So11...",
"side": "sell",
"nonce": "1742...",
"originalSize": "500000000000",
"remainingSize": "500000000000",
"pricePerToken": "10000000000",
"priceScale": 12,
"minFill": "50000000000",
"createdAt": "2026-04-26T14:20:00Z",
"expiresAt": "2026-05-03T14:20:00Z",
"status": "open",
"lastSlot": "458270000",
"indexedAt": "2026-04-26T14:20:05Z"
}
],
"limit": 50,
"offset": 0
}Example
curl 'https://api.invia.markets/v1/offers?status=open&side=sell&limit=20'GET /v1/offers/:pda
Returns a single offer row by PDA. 404 if the offer is unknown to the
indexer.
curl https://api.invia.markets/v1/offers/5x...GET /v1/offers/:pda/fills
Returns the per-offer fill history newest-first.
Response
{
"fills": [
{
"signature": "2pwo...",
"taker": "4o...",
"fillAmount": "100000000",
"paymentAmount": "1000000",
"feeAmount": "2000",
"blockTime": "2026-04-26T14:30:00Z",
"slot": "458271000"
}
]
}fillAmount is in raw token units, paymentAmount and feeAmount are in
raw payment-mint units. Decode with fmtTokenAmount or apply the mint's
decimals manually.