> ## Documentation Index
> Fetch the complete documentation index at: https://partners.centaur.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Request and Response Envelopes

> Understand the normalized REST envelope and how MCP structured content maps to historical lists, open positions, and stats.

## Historical list REST success envelope

```json theme={null}
{
  "success": true,
  "data": {
    "results": [],
    "meta": {
      "hasMore": false,
      "nextCursor": null,
      "appliedTimeRange": {
        "startTime": "2026-03-01T00:00:00.000Z",
        "endTime": "2026-03-31T23:59:59.999Z"
      }
    }
  },
  "requestId": "c8e2c6e4-80dd-4ffc-9d66-4e31bf64c6b8"
}
```

Historical list envelopes are used by the partner feed, events, messages, position history, and generated summary reads.

## Open positions REST success envelope

Open positions use the same outer envelope, but `data.meta` only contains:

* `hasMore`
* `nextCursor`

## Stats REST success envelope

Stats responses use the same outer envelope and return:

* `filtersApplied`
* `results`
* `meta.requestedTraderIds` and `meta.missingTraderIds` for trader stats
* `meta.requestedAssetIds` and `meta.missingAssetIds` for asset stats

The applied time bounds for stats reads are returned in `data.filtersApplied.appliedTimeRange`.

## REST error envelope

```json theme={null}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Unauthorized"
  },
  "requestId": "3d66726f-3fd9-4592-a88d-b1e076eb5f22"
}
```

## MCP mapping

* MCP list tools return structured content with the same `results` and `meta` shape as the matching REST reads.
* MCP stats tools return the same `filtersApplied`, `results`, and `meta` shape as the matching REST reads.
* MCP errors are returned through the MCP response model instead of the REST envelope.
* Preserve the REST `requestId` when debugging HTTP failures with Centaur support.

## Current-price freshness

Open-position rows include current mark fields when pricing is available. They do not currently include a separate `priceAsOf` timestamp. Treat current marks as best-effort live marks for the request, not as audited settlement prices.

## Price denomination

Prices are denominated in the quote currency of the asset's preferred market, exposed as a nullable `quoteSymbol` field (for example `USDT`, `USDC`, or `CAD`) on position and event payloads. Do not assume every price is in US dollars: assets on non-USD markets, such as TSX equities quoted in CAD, report prices in their native quote currency. `quoteSymbol` reflects the asset's current preferred market rather than the market the trade originally executed on, so treat it as the display denomination for the row's price fields.

## Related pages

* [Errors](/docs/api-reference/conventions/errors)
* [Events guide](/docs/guides/rest/events)
