---
title: "Auction"
url: https://docs.truemarkets.co/api/websocket/institutional/auction
description: "Message sent from server containing the latest opening-auction indicative for a subscribed instrument. A status of INVALID indicates the instrument is not currently in an opening auction; updates are emitted while an auction is in progress, plus one final zeroed update (status INVALID) when the auction completes."
---

Docs index: https://docs.truemarkets.co/llms.txt

# Auction

True Markets CeFi WebSocket sends these messages to you.

Address: `/v1/cefi/market`

## Servers

- `wss://api.truemarkets.co` (Production, wss)
- `wss://api.uat.truemarkets.co` (Uat, wss)

## Messages

### auction

Payload: `AuctionPayload`

Example payload:

```json
{
  "seqnum": "string",
  "channel": "AUCTION",
  "update": "SNAPSHOT",
  "data": {
    "type": "OPENING",
    "indicative_price": "string",
    "matched_volume": "string",
    "projected_best_bid_price": "string",
    "projected_best_ask_price": "string",
    "timestamp": "string",
    "status": "INVALID",
    "symbol": "string"
  }
}
```

## Types

```ts
export type AuctionMessage = AuctionPayload;

export type AuctionPayload =
  | {
  /** Current sequence number of the channel. */
  seqnum: string;
  channel: "AUCTION";

  /** SNAPSHOT is sent upon subscription with the current indicative. UPDATE is sent while an opening auction is in progress, on a timer and after each book change, plus once with a zeroed payload (status INVALID) when the auction completes. */
  update: "SNAPSHOT" | "UPDATE";
  data: AuctionIndicative;
}
  | {
  /** Current sequence number of the channel. */
  seqnum: string;
  channel: "AUCTION";
  update: "SNAPSHOT_COMPLETE";

  /** The subscribed item whose snapshot is complete. */
  item: string;
};

export interface AuctionIndicative {
  /** Kind of auction the payload describes, so the channel can carry other auction types (e.g. RFQ, flash) in the future. Currently always OPENING. */
  type?: "OPENING";

  /** Price at which the opening auction would clear if it uncrossed now. */
  indicative_price?: string;

  /** Quantity that would match at the indicative price. */
  matched_volume?: string;

  /** Best bid remaining after the projected uncross. */
  projected_best_bid_price?: string;

  /** Best ask remaining after the projected uncross. */
  projected_best_ask_price?: string;

  /** The Unix UTC timestamp (in nanoseconds) when the indicative was calculated. */
  timestamp?: string;

  /** Health of the indicative. INVALID means the instrument is not currently in an opening auction. */
  status?: "INVALID" | "NORMAL" | "INSUFFICIENT_BUY_INTEREST" | "INSUFFICIENT_SELL_INTEREST" | "NO_CROSS";

  /** Human readable representation of the instrument. */
  symbol?: string;
}
```