---
title: "Create an IOI for a visible upcoming offering."
method: POST
path: "/v1/private-markets/iois"
tags: ["Private Markets"]
---

# Create an IOI for a visible upcoming offering.

`POST /v1/private-markets/iois`

## Request

- Base URL: `https://api.clearstreet.com`
- URL: `https://api.clearstreet.com/v1/private-markets/iois`
- Auth: HTTP bearer

## Query parameters

- `account_id` integer, required

## Request body

- CreateIoiRequest: Create an indication of interest.
  - `nda_acceptance` NdaAcceptanceRequest: Explicit electronic acceptance of the NDA rendered by the client.
    - `accepted` boolean, required: Must be true; confirms affirmative assent.
    - `agreement_id` string, uuid, required: Exact agreement id returned by offering detail.
    - `authority_confirmed` boolean, required: Must be true; confirms the signer may bind the account-holder entity.
  - `notional_amount` string, required
  - `offering_id` string, uuid, required

## Response `201`

IOI created

- object
  - `error` ApiError: A direct mapping of tonic::Status, for use in HTTP responses.
    - `code` integer, required: The error code is used to identify the nature of the error. It corresponds to an HTTP status code.
    - `details` object[]
    - `message` string, required: A human-readable message providing more details about the error.
  - `metadata` ResponseMetadata, required: Metadata for the response. This will always contain a request ID which can be used to identify the request to Clear Street for tracing, and optionally may include pagination data.
    - `next_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `page_number` integer, nullable: Pagination. Included if this was a GET (list) response
    - `previous_page_token` string, byte, nullable: Base64URL-encoded pagination token
    - `request_id` string, required: A unique ID for this request, generated upon ingestion of the request.
    - `total_items` integer, nullable: Total number of items available (not just in this page).
    - `total_pages` integer, nullable: Total number of pages available.
  - `data` IoiListingResource, required: IOI list item with the campaign identity needed to render it.
    - `account_id` integer, required
    - `created_at` string, date-time, required
    - `currency` 'USD', required: Terms currency.
    - `id` string, uuid, required
    - `nda_acceptance` NdaAcceptanceResource: Public evidence that an NDA version was accepted. Signing IP and other provenance remain audit-only and are never returned by this API.
      - `accepted_at` string, date-time, required
      - `agreement_id` string, uuid, required
      - `version` integer, required
    - `notional_amount` string, required
    - `offering_id` string, uuid, required
    - `updated_at` string, date-time, required
    - `company` IoiCompanyResource, required: Company identity embedded in an IOI list item.
      - `id` string, uuid, required
      - `name` string, required
    - `offering` IoiOfferingResource, required: Offering identity embedded in an IOI list item.
      - `headline` string, required
      - `id` string, uuid, required

## Other responses

- `400`: Invalid or irrelevant NDA acceptance
- `401`: Unauthenticated
- `403`: Caller lacks Trade permission or the entity has not attested
- `404`: Account or offering not found
- `409`: Duplicate live IOI or below-minimum notional
- `422`: Current NDA acceptance required
- `500`: Internal server error

## Changes

- **2026-10-16** `1bd9eddeffc8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/clear-street/apis/clear-street-trading-api/changes/v1/private-markets/iois/post.md)

---

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