# Create a V3 or V4 LP position (POST /lp/create)

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

Creates a new LP position in a V3 or V4 pool (including full-range positions). You can create a position in an existing pool by providing `existingPool` parameters, or create a new pool by providing `newPool` parameters (fee, tick spacing, initial price, and optionally hooks for V4). The position's price range is specified via either `priceBounds` or `tickBounds`. The server computes the dependent token amount. If `simulateTransaction` is set to `true`, the response will include the gas fee.

Parameters: 1 header, 16 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 |  |
| `existingPool` | object | no | Parameters for an existing pool. Provide either existingPool or newPool, not both. |
| `newPool` | object | no | Parameters for creating a new pool. Provide either existingPool or newPool, not both. |
| `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). |
| `protocol` | enum | yes | The protocol of the pool. |
| `independentToken` | object | yes | The token whose amount you are specifying. |
| `dependentToken` | object | no | The other token. The server computes the required amount. If provided, the amount is used as a maximum. |
| `priceBounds` | object | no | Price bounds for the position range. Provide either priceBounds or tickBounds, not both. |
| `tickBounds` | object | no | Tick bounds for the position range. Provide either priceBounds or tickBounds, not both. |
| `slippageTolerance` | number | no | Slippage tolerance as a decimal (e.g., 0.5 for 0.5%). |
| `deadline` | integer | no | Unix timestamp after which the transaction will revert. |
| `simulateTransaction` | boolean | no | If true, the response will include the gas fee. |
| `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. |
| `batchPermitData` | object | no | Batch permit data for V4 positions. |
| `signature` | string | no | The signed permit. |
| `nativeTokenBalance` | string | no | The wallet's native token balance, used for wrapping calculations when one of the tokens is the native token. |

## Responses

- `200` — Create V3/V4 position successful.
- `400` — RequestValidationError, Bad Input
- `401` — UnauthorizedError eg. Account is blocked.
- `404` — ResourceNotFound eg. Cant Find LP Position.
- `429` — Ratelimited
- `500` — Unexpected error
- `504` — Request duration limit reached.

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