# Check LP token approvals (POST /lp/check_approval)

Operation `check_lp_approval` of the Uniswap API. Base URL: `https://trade-api.gateway.uniswap.org/v1`.

Checks whether the wallet has the required token approvals to perform an LP action (create, increase, decrease, or migrate). Returns any needed approval transactions. If `simulateTransaction` is set to `true`, the response will include gas fees for the approval transactions.

The `action` field specifies which LP operation the approval is for. Different actions may require different approvals (e.g., V2 decrease requires approval of the LP token, V3 migrate requires approval of the V3 NFT).

Parameters: 1 header, 10 body · Request: `application/json` · Auth: apiKey · Responses: 200, 400, 401, 404, 429, 500, 504

## Headers

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `x-api-key` | string | yes | Your API key for authentication. |

## Body

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `walletAddress` | string | yes |  |
| `protocol` | enum | yes | The protocol of the pool. |
| `chainId` | enum | yes | The unique ID of the blockchain. For a list of supported chains see the [FAQ](https://api-docs.uniswap.org/guides/faqs). |
| `lpTokens` | object[] | yes | The tokens requiring approval, each with address and amount. |
| `action` | enum | yes | The LP operation that the approval is needed for. |
| `includeGasInfo` | boolean | no | If true, the response will include gas fee estimates for each approval transaction. |
| `simulateTransaction` | boolean | no | If true, approval transactions will be simulated to verify they succeed. |
| `generatePermitAsTransaction` | boolean | no | If true, permits are returned as on-chain transactions rather than off-chain signatures. |
| `urgency` | enum | no | The urgency level for gas price estimation. Higher urgency results in higher gas price and faster transaction inclusion. Defaults to URGENT if not provided. |
| `v3NftTokenId` | integer | no | The V3 NFT position token ID. Required when approving a V3 position for migration. |

## Responses

- `200` — LP approval check successful.
- `400` — RequestValidationError, Bad Input
- `401` — UnauthorizedError eg. Account is blocked.
- `404` — ResourceNotFound eg. Token allowance not found or Gas info not found.
- `429` — Ratelimited
- `500` — Unexpected error
- `504` — Request duration limit reached.

Interactive playground: https://developers.uniswap.org/docs/api-reference/check_lp_approval
All endpoints: https://developers.uniswap.org/docs/api-reference
