# userFees

## POST /info

> Request user fees.

```json
{"openapi":"3.1.1","info":{"title":"Hyperliquid API - info/userFees","version":"1.0.0"},"tags":[{"name":"userFees"}],"servers":[{"url":"https://api.hyperliquid.xyz","description":"Mainnet"},{"url":"https://api.hyperliquid-testnet.xyz","description":"Testnet"}],"paths":{"/info":{"post":{"tags":["userFees"],"description":"Request user fees.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"description":"Type of request.","enum":["userFees"]},"user":{"type":"string","pattern":"^0[xX][0-9a-fA-F]+$","minLength":42,"maxLength":42,"description":"User address."}},"required":["type","user"],"description":"Request user fees."}}},"required":true},"responses":{"200":{"description":"User fees.","content":{"application/json":{"schema":{"type":"object","properties":{"dailyUserVlm":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"Date in YYYY-M-D format."},"userCross":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User cross-trade volume."},"userAdd":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User add-liquidity volume."},"exchange":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Exchange total volume."}},"required":["date","userCross","userAdd","exchange"],"description":"Daily user volume metrics record."},"description":"Daily user volume metrics."},"feeSchedule":{"type":"object","properties":{"cross":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Cross-trade fee rate."},"add":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Add-liquidity fee rate."},"spotCross":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Spot cross-trade fee rate."},"spotAdd":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Spot add-liquidity fee rate."},"tiers":{"type":"object","properties":{"vip":{"type":"array","items":{"type":"object","properties":{"ntlCutoff":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Notional volume cutoff."},"cross":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Cross-trade fee rate."},"add":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Add-liquidity fee rate."},"spotCross":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Spot cross-trade fee rate."},"spotAdd":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Spot add-liquidity fee rate."}},"required":["ntlCutoff","cross","add","spotCross","spotAdd"],"description":"VIP fee tier."},"description":"Array of VIP fee tiers."},"mm":{"type":"array","items":{"type":"object","properties":{"makerFractionCutoff":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Maker fraction cutoff."},"add":{"type":"string","pattern":"^-?[0-9]+(\\.[0-9]+)?$","description":"Add-liquidity fee rate."}},"required":["makerFractionCutoff","add"],"description":"Market maker fee tier."},"description":"Array of market maker fee tiers."}},"required":["vip","mm"],"description":"Fee tiers details."},"referralDiscount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Referral discount rate."},"stakingDiscountTiers":{"type":"array","items":{"type":"object","properties":{"bpsOfMaxSupply":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Basis points of maximum supply."},"discount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Discount rate applied."}},"required":["bpsOfMaxSupply","discount"],"description":"Staking discount tier."},"description":"Staking discount tiers details."}},"required":["cross","add","spotCross","spotAdd","tiers","referralDiscount","stakingDiscountTiers"],"description":"Array of staking discount tiers."},"userCrossRate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User cross-trade rate."},"userAddRate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User add-liquidity rate."},"userSpotCrossRate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User spot cross-trade rate."},"userSpotAddRate":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"User spot add-liquidity rate."},"activeReferralDiscount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Active referral discount rate."},"trial":{"anyOf":[{"nullable":true}],"description":"Trial details."},"feeTrialEscrow":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Fee trial escrow amount."},"nextTrialAvailableTimestamp":{"anyOf":[{"nullable":true}],"description":"Timestamp when next trial becomes available."},"stakingLink":{"anyOf":[{"type":"object","properties":{"stakingUser":{"type":"string","pattern":"^0[xX][0-9a-fA-F]+$","minLength":42,"maxLength":42,"description":"Linked account address:\n- When queried by staking account: contains trading account address.\n- When queried by trading account: contains staking account address."},"type":{"enum":["requested","stakingUser","tradingUser"],"description":"Link status:\n- `requested` = link initiated by trading user, awaiting staking user confirmation\n- `stakingUser` = response queried by staking account\n- `tradingUser` = response queried by trading account"}},"required":["stakingUser","type"],"nullable":true}],"description":"Permanent link between staking and trading accounts. Staking user gains full control of trading account funds. Staking user forfeits own fee discounts."},"activeStakingDiscount":{"type":"object","properties":{"bpsOfMaxSupply":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Basis points of maximum supply."},"discount":{"type":"string","pattern":"^[0-9]+(\\.[0-9]+)?$","description":"Discount rate applied."}},"required":["bpsOfMaxSupply","discount"],"description":"Active staking discount details."}},"required":["dailyUserVlm","feeSchedule","userCrossRate","userAddRate","userSpotCrossRate","userSpotAddRate","activeReferralDiscount","trial","feeTrialEscrow","nextTrialAvailableTimestamp","stakingLink","activeStakingDiscount"],"description":"User fees."}}}},"422":{"description":"Failed to deserialize the JSON body into the target type","content":{"text/plain":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"null"}}}}}}}}}
```
