---
title: "Fills of followed entities after a cursor"
method: GET
path: "/v1/account/fills"
tags: ["Push"]
---

# Fills of followed entities after a cursor

`GET /v1/account/fills`

## Request

- Base URL: `https://api.pmwallets.com`
- URL: `https://api.pmwallets.com/v1/account/fills`
- Auth: API key in header `x-api-key`

Polling alternative to the WebSocket: fills of your active subscriptions after the cursor, oldest first. Start without a cursor, pass `next` back until null, store the last one. Free. Kept 60 days (truncated = part of the range is gone).

## Query parameters

- `sinceBlock` integer
- `sinceLogIndex` integer
- `limit` integer

## Response `200`

OK

- object
  - `rows` Fill[]
    - `eventId` string, required: `chain:block:blockHash:txHash:logIndex`; stable across retries and replays. Deduplicate on it.
    - `chain` integer, required: 137 (Polygon).
    - `entityId` string, required: The subscribed entity (0x address).
    - `wallet` string, required: The address inside the entity that traded (0x).
    - `ts` string, required: Block time, UTC, `YYYY-MM-DD HH:MM:SS`.
    - `block` integer, required
    - `blockHash` string, required
    - `txHash` string, required
    - `logIndex` integer, required
    - `exchange` string, required: Which exchange contract matched it, e.g. pm_ctf_v2.
    - `side` 'BUY' | 'SELL', required
    - `role` 'maker' | 'taker', required
    - `tokenId` string, required: Polymarket outcome token id (uint256 as a decimal string).
    - `price` string, required: Decimal string, e.g. "0.570000".
    - `shares` string, required: Integer string, 1e-6 share units ("3200000000" = 3,200 shares).
    - `usdc` string, required: Integer string, 1e-6 USDC units ("1824000000" = $1,824).
    - `fee` string, required: Integer string, 1e-6 USDC units.
  - `next` object, nullable: Pass back as query params; null = caught up.
    - `sinceBlock` integer
    - `sinceLogIndex` integer
  - `subscriptions` integer: Active subscriptions in scope (0 = nothing to replay).
  - `retainedFrom` integer: Oldest block still kept (absent when subscriptions is 0).
  - `truncated` boolean: Part of the asked range is older than retention.

## Other responses

- `400`: Invalid parameter or body; `message` names what was expected.
- `401`: No valid API key (missing, malformed, unknown or revoked).

---

[API](https://skmtc.dev/pmwallets/apis/pmwallets-api.md) · [All operations](https://skmtc.dev/pmwallets/apis/pmwallets-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pmwallets/apis/pmwallets-api/revisions/d5023fb40430?raw)
