> For the complete documentation index, see [llms.txt](https://docs.aevo.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aevo.xyz/api-reference/urls/private-api/postotccreaterequest.md).

# POST /otc/create-request

Create a new otc request

`POST https://api.aevo.xyz/otc/create-request`

> **Authentication required.** Include your `AEVO-KEY` and `AEVO-SECRET` headers. See [Authentication](/api-reference/urls/authentication.md).

## Body Parameters

| Field              | Type    | Required | Description                                                            |
| ------------------ | ------- | -------- | ---------------------------------------------------------------------- |
| `asset`            | string  | No       | Name of underlying asset. Example: `ETH`                               |
| `strike`           | string  | No       | Option strike price. Example: `2500`                                   |
| `expiry`           | string  | No       | Signing key expiry in UNIX timestamp in seconds. Example: `1685520000` |
| `option_type`      | string  | No       | Type of option contract.                                               |
| `amount`           | string  | Yes      | Number of contracts. In 6 decimals fixed number. Example: `1000000`    |
| `indicative_price` | string  | Yes      | Indicative price of the otc request Example: `1000`                    |
| `unwind_id`        | integer | No       | Otc id of position to unwind. Example: `12`                            |

## Example Request

```bash
curl --request POST \
     --url https://api.aevo.xyz/otc/create-request \
     --header 'accept: application/json' \
     --header 'AEVO-KEY: <your-api-key>' \
     --header 'AEVO-SECRET: <your-api-secret>' \
     --header 'content-type: application/json' \
     --data '{ ... }'
```

## Responses

**`200`** — Whether or not request was created successfully

| Field     | Type    | Required | Description                                                 |
| --------- | ------- | -------- | ----------------------------------------------------------- |
| `success` | boolean | Yes      | Request successful if true. Example: `true` Example: `True` |

**`400`** — Bad request.

| Field   | Type   | Required | Description                                     |
| ------- | ------ | -------- | ----------------------------------------------- |
| `error` | string | Yes      | Error message. Example: `ERR_MALFORMED_REQUEST` |

**`401`** — Unauthorized.

| Field   | Type   | Required | Description                            |
| ------- | ------ | -------- | -------------------------------------- |
| `error` | string | Yes      | Error message. Example: `UNAUTHORIZED` |

**`429`** — Rate limit exceeded.

| Field   | Type   | Required | Description                                   |
| ------- | ------ | -------- | --------------------------------------------- |
| `error` | string | Yes      | Error message. Example: `RATE_LIMIT_EXCEEDED` |

**`500`** — Internal server error.

| Field   | Type   | Required | Description                              |
| ------- | ------ | -------- | ---------------------------------------- |
| `error` | string | Yes      | Error message. Example: `INTERNAL_ERROR` |
