# HTTP — `GET /v1/fees`

Fee rates per venue market, in basis points, as decimal strings. Public
endpoint.

```http
GET /v1/fees
GET /v1/fees?user=0xd8da6bf26964af9d7eed9e03e53415d37aa96045
```

| Query | Meaning |
| --- | --- |
| `user` | Optional EVM address. The response then shows the rates settlement uses for that user, including a Mosaiq rate negotiated for it. An address without negotiated terms gets the default rates. A malformed address is a 400. |

| Field | Meaning |
| --- | --- |
| `fees.venue` | Venue maker/taker rate charged to the user, after any Mosaiq subsidy. |
| `fees.tessera` | Mosaiq maker/taker rate on top of the venue rate. With `user`, the rate negotiated for that user on that venue, if any. |
| `fees.total` | Sum applied to fill notional. |

```jsonc
{
  "status": "ok",
  "data": {
    "markets": [
      {
        "a": "BTC",
        "venue": "hyperliquid",
        "venueSymbol": "BTC",
        "venueMarketId": "0",
        "fees": {
          "venue": { "maker": "0", "taker": "1.44" },
          "tessera": { "maker": "0", "taker": "0.30" },
          "total": { "maker": "0", "taker": "1.74" }
        }
      },
      {
        "a": "BTC",
        "venue": "lighter",
        "venueSymbol": "BTC",
        "venueMarketId": "1",
        "fees": {
          "venue": { "maker": "0.28", "taker": "1.96" },
          "tessera": { "maker": "0", "taker": "0.30" },
          "total": { "maker": "0.28", "taker": "2.26" }
        }
      }
    ]
  },
  "server_time_ms": 1710000000000
}
```

Published rates may lag changes to venue fee tiers. Charged fees are computed
from confirmed fill notional and reported per fill in
`userFills[].fees`. See [Fees](/concepts/fees).
