---
title: "Index"
url: https://docs.truemarkets.co/api/websocket/institutional/index-message
description: "Message sent from server with the exchange's own view of a subscribed price index after each one-second bar applies: the bar, the feed state, and the settlement value on the bar that closes a settlement window. An up/down outcome market opens at the settlement value of the window ending at its open time (its strike) and resolves YES when the settlement value of the window ending at its expiry is strictly above it, so a client can check a verdict from this stream rather than trust it. Items are observable ids as strings; an outcome instrument's terms.resolver_id names its observable."
---

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

# Index

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

### index

Payload: `IndexPayload`

Example payload:

```json
{
  "seqnum": "string",
  "channel": "INDEX",
  "update": "SNAPSHOT",
  "data": {
    "observable_id": "string",
    "interval_start": "string",
    "interval_end": "string",
    "last": "string",
    "twap": "string",
    "low": "string",
    "high": "string",
    "settlement_value": "string",
    "state": "ACTIVE"
  }
}
```

## Types

```ts
export type IndexMessage = IndexPayload;

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

  /** SNAPSHOT is sent upon subscription with the exchange's last view of the index. UPDATE is sent once per applied bar (about once a second) and once when the feed drops. */
  update: "SNAPSHOT" | "UPDATE";
  data: Index;
}
  | {
  /** Current sequence number of the channel. */
  seqnum: string;
  channel: "INDEX";
  update: "SNAPSHOT_COMPLETE";

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

export interface Index {
  /** Exchange id of the observable (the price index) this message describes; the subscribed item. */
  observable_id?: string;

  /** Start of the applied bar, UTC Unix epoch in nanoseconds, exclusive. Zero on a feed-state message. */
  interval_start?: string;

  /** End of the applied bar, UTC Unix epoch in nanoseconds, inclusive; the exchange's tail for the index. */
  interval_end?: string;

  /** Last index print in the bar. */
  last?: string;

  /** Duration-weighted mean of the index over the bar. */
  twap?: string;
  low?: string;
  high?: string;

  /** When this bar closes a fully covered settlement window, the window's duration-weighted mean, which is the value an up/down market opening or expiring at `interval_end` uses as its strike or verdict. "0" on every other bar. */
  settlement_value?: string;

  /** Feed health as last reported by the exchange's ingest. STALE is sent the moment the upstream feed drops and clears on the next applied bar. */
  state?: "ACTIVE" | "STALE";
}
```