InviaInvia
App
REST API/Fills & makers

Fills & makers

Fills are populated by the on-chain signature scanner: the indexer reads recent program signatures, parses each take_offer instruction, and writes the resulting fill to Postgres. The maker endpoints aggregate that view per wallet.

GET /v1/fills

Global fills feed, newest first.

Query parameters

NameTypeNotes
takerstringFilter by taker wallet
makerstringFilter by maker wallet
offerPdastringEquivalent to /v1/offers/:pda/fills plus filters
tokenMintstringFilter by asset mint
paymentMintstringFilter by payment mint
fromTimenumberUnix seconds, inclusive
toTimenumberUnix seconds, inclusive
limitnumberMax 200, default 50
offsetnumberDefault 0

Response

{
  "fills": [
    {
      "signature": "2pwo...",
      "offerPda": "5x...",
      "taker": "E89...",
      "fillAmount": "100000000",
      "paymentAmount": "1000000",
      "feeAmount": "2000",
      "blockTime": "2026-04-26T14:30:00Z",
      "slot": "458271000",
      "tokenMint": "Es9...",
      "paymentMint": "So11...",
      "side": "sell"
    }
  ],
  "limit": 50,
  "offset": 0
}

tokenMint, paymentMint, and side come from the matching offer row and are included as a convenience so consumers don't have to do a second lookup per row.

GET /v1/makers/:maker/stats

Per-maker aggregates.

Response

{
  "maker": "3p...",
  "totalOffers": 14,
  "openOffers": 3,
  "filledOffers": 9,
  "expiredOffers": 2,
  "totalSold": { "Es9...": "120000000000" },
  "totalBought": {}
}

totalSold and totalBought are keyed by token mint and contain the cumulative raw token amount the maker has moved on each side.

GET /v1/makers/:maker/offers

Convenience listing equivalent to /v1/offers?maker=... with the same status / limit / offset parameters.