---
title: "Create AMM Instruction"
method: POST
path: "/v2/amm-instructions"
tags: ["amm-instructions"]
---

# Create AMM Instruction

`POST /v2/amm-instructions`

## Request

- Base URL: `https://api.exchange.bullish.com/trading-api`
- URL: `https://api.exchange.bullish.com/trading-api/v2/amm-instructions`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bullish/apis/bullish-trading-api/docs/v2/amm-instructions/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates an AMM instruction, requires [bearer token](/rest/authentication#add-authenticated-request-header) 
in authorization header.

This endpoint uses the [signing format](/rest/authentication#signing-format) which does not require strict field ordering
in the request body. Quantities and prices does not require strict precision. 
E.g. for asset precision of 4 - `100`, `100.0`, `100.00`, `100.000` and `100.0000` are all accepted.

**Ratelimited:** `True`

## Headers

- `BX-SIGNATURE` string, required
- `BX-TIMESTAMP` string, required
- `BX-NONCE` string, required

## Request body

- CreateAMMInstructionCommandV3
  - `commandType` string, required: The command type, it must be 'V3CreateAMMInstruction'
  - `symbol` string, required: market symbol. E.g. `BTCUSDC`
  - `baseQuantity` string, required: see [asset value](/rest/general/price-quantity-precision) format
  - `quoteQuantity` string, required: see [asset value](/rest/general/price-quantity-precision) format
  - `upperBound` string, required: upper bound of price range, in quote currency
  - `lowerBound` string, required: lower bound of price range, in quote currency
  - `feeTierId` string, required: unique fee tier ID, see [Get Market By Symbol](/rest/api/get-market-by-symbol)
  - `tradingAccountId` string, required: unique trading account ID

## Response `200`

Status OK. This means a create AMM instruction command was successfully acknowledged. It does not necessarily mean the instruction was created. To check the current status, query [Get AMM Instruction by ID](/rest/api/get-amm-instruction-by-id-v-2) using the `instructionId` received in the response payload.

- CreateAMMInstructionCommandResponseV3
  - `message` string, required: message
  - `requestId` string, required
  - `instructionId` string, required

## Other responses

- `400`: Bad Request For example, sending a request with the `BX-SIGNATURE` header missing will result in the following response:
- `401`: Not Authenticated
- `403`: Access Forbidden
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/bullish/apis/bullish-trading-api.md) - [All operations](https://skmtc.dev/bullish/apis/bullish-trading-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bullish/apis/bullish-trading-api/revisions/df5d69ccedcf?raw)
