# HTTP — `GET /v1/userFunding`

Returns a user's settled perpetual-funding history. This is a public read
endpoint, like [`GET /v1/clearinghouseState`](/api/clearinghouse-state), and
does not require an API key.

```http
GET /v1/userFunding?user=0x0000000000000000000000000000000000000001&startTime=1780000000000&endTime=1780086400000
```

| Query parameter | Required | Meaning |
| --- | --- | --- |
| `user` | yes | EVM account address. |
| `startTime` | yes | Inclusive start time in Unix milliseconds. |
| `endTime` | no | Inclusive end time in Unix milliseconds; defaults to current time. |

```jsonc
{
  "status": "ok",
  "data": {
    "user": "0x0000000000000000000000000000000000000001",
    "userFundings": [
      {
        "fundingId": "2a4d4983-9057-4da9-bcd7-0aa0e4185bb0",
        "fundingTimeMs": 1780000000000,
        "a": "BTC",
        "venue": "hyperliquid",
        "amountUsdc": "-3.625312",
        "positionSize": "49.1477",
        "fundingRate": "0.0000417",
        "oraclePx": "1768.42"
      }
    ]
  },
  "server_time_ms": 1780086400100
}
```

Each entry in `data.userFundings` contains:

| Field | Type | Meaning |
| --- | --- | --- |
| `fundingId` | `string` | Stable Mosaiq settlement ID. |
| `fundingTimeMs` | `number` | Funding period settlement time in Unix milliseconds. |
| `a` | `string` | Canonical Mosaiq asset. |
| `venue` | `string` | Venue on which the position accrued funding. |
| `amountUsdc` | `string` | Exact signed USDC cash delta settled by Mosaiq. |
| `positionSize` | `string` | Signed position size used for this settlement. |
| `fundingRate` | `string` | Funding rate applied for the period. |
| `oraclePx` | `string` | Venue oracle price used for settlement. |

Decimal values are strings so clients do not lose precision through JSON
floating-point parsing.

`amountUsdc` uses the account's point of view:

* positive means the user received funding;
* negative means the user paid funding.

`fundingTimeMs` is not the later database-write time. Two positions in the same
asset on different venues remain distinct because every entry includes both
`a` and `venue`.

## Pagination

Results are chronological. A response contains 500 settlements per page, plus
any remaining settlements sharing the final funding timestamp. To continue,
set the next request's `startTime` to `last.fundingTimeMs + 1`. The complete
boundary timestamp is returned together, so this cannot skip another asset or
venue settled in the same funding interval.

This follows Hyperliquid's public `userFunding` time-range semantics while
preserving Mosaiq's multi-venue identity and standard REST response envelope.

:::note\[Different from `GET /v1/funding`]
[`GET /v1/funding`](/api/funding) reports deposit and withdrawal request status.
It does not return perpetual-funding payments.
:::
