> ## 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.

# Centaur API

> Quickstart for read-only access to Centaur's data over REST and OAuth-enabled MCP.

export function ServiceSurfaceList() {
  return <ul>
      <li>
        Canonical docs: <code>{docsUrl}</code>
      </li>
      <li>
        MCP endpoint: <code>{mcpUrl}</code>
      </li>
      <li>
        OpenAPI spec: <code>{openApiUrl}</code>
      </li>
      <li>
        Swagger UI: <code>{swaggerUrl}</code>
      </li>
      <li>
        Agent discovery: <code>{skillRepoUrl}</code> and <code>{llmsUrl}</code>
      </li>
    </ul>;
}

export const skillRepoUrl = 'https://github.com/centaur-io/centaur-partners-skill';

export const skillInstallCommand = 'npx skills add https://github.com/centaur-io/centaur-partners-skill';

export function ApiAccessNote() {
  return <>
      REST uses a Centaur API key. MCP prefers OAuth in supported clients; OAuth is available to signed-in users with
      an active, email-verified Centaur account.
    </>;
}

The Centaur API gives developers read-only access to Centaur's data over two surfaces:

* `REST` for direct HTTP integrations and predictable HTTP control.
* `MCP` for agent-native clients such as Claude, Cursor, Codex, and ChatGPT.

## How to get access

<ApiAccessNote />

Once provisioned:

* `REST` uses `x-api-key: <api-key>`
* `MCP` prefers the plain server URL `https://partners.centaur.io/mcp` and lets compatible clients dynamically register themselves before the browser-based OAuth approval flow

## Choose your integration path

<Columns cols={2}>
  <Card title="REST quickstart" icon="database-zap" href="/docs/guides/rest/overview" cta="Use REST" arrow>
    Choose REST when you want a conventional backend integration, predictable request/response behavior, and explicit
    control over retries and pagination.
  </Card>

  <Card title="MCP quickstart" icon="bot" href="/docs/guides/mcp-agents/client-setup" cta="Use MCP" arrow>
    Choose MCP when your users work in Claude, Cursor, Codex, or another MCP-capable client and you want native tool
    calling instead of handwritten HTTP requests.
  </Card>
</Columns>

## REST quickstart

```bash theme={null}
curl -s 'https://partners.centaur.io/api/v1/events?limit=10' \
  -H 'x-api-key: <api-key>'
```

REST is the better fit when:

* you are integrating from a service or backend job
* you want explicit request and retry control
* you want the generated API reference to be your primary technical source

## MCP quickstart

Preferred MCP onboarding uses the plain server URL. In supported clients, Centaur exposes Dynamic Client Registration for public clients before opening the browser sign-in and consent flow:

```text theme={null}
https://partners.centaur.io/mcp
```

MCP is the better fit when:

* your users work in Claude, ChatGPT, Cursor, or Codex
* you want Centaur exposed as a tool instead of a raw HTTP dependency
* you want to pair the MCP surface with the public Centaur skill repo

For most MCP onboarding, start with [Client setup](/docs/guides/mcp-agents/client-setup). Install the [Public skill](/docs/guides/mcp-agents/public-skill) as an optional next step after the client is working.

## What you can read

| Data family         | REST                              | MCP                          | Required scope   |
| ------------------- | --------------------------------- | ---------------------------- | ---------------- |
| Trader discovery    | `GET /api/v1/traders`             | `list_traders`               | `directory.read` |
| Asset discovery     | `GET /api/v1/assets`              | `list_assets`                | `directory.read` |
| Partner feed        | `GET /api/v1/feed`                | `list_feed`                  | `feed.read`      |
| Events              | `GET /api/v1/events`              | `list_events`                | `events.read`    |
| Messages            | `GET /api/v1/messages`            | `list_messages`              | `messages.read`  |
| Channel summaries   | `GET /api/v1/channel-summaries`   | `list_channel_summaries`     | `summaries.read` |
| Aggregate summaries | `GET /api/v1/aggregate-summaries` | `list_aggregate_summaries`   | `summaries.read` |
| Positions           | `GET /api/v1/positions`           | `list_positions`             | `positions.read` |
| Open positions      | `GET /api/v1/positions/open`      | `list_open_positions`        | `positions.read` |
| Trader stats        | `GET /api/v1/traders/stats`       | `list_trader_stats`          | `stats.read`     |
| Asset stats         | `GET /api/v1/assets/stats`        | `list_asset_stats`           | `stats.read`     |
| Trader rankings     | `GET /api/v1/traders/rankings`    | `rank_traders`               | `stats.read`     |
| Activity summaries  | `GET /api/v1/activity-summaries`  | `summarize_message_activity` | `stats.read`     |

Use [Available data reads](/docs/guides/rest/data-reads) for examples and the compact cross-surface capability map. Use [Contract limits](/docs/guides/agent-client-contract-limits) for unsupported single-read requests and agent caveats.

## Service surfaces

<ServiceSurfaceList />

## What this product exposes today

* REST reads under `/api/v1/*`
* MCP reads at `/mcp`
* shared read families across the partner feed, events, messages, Generated Channel Narrative Summaries, Generated Aggregate Narrative Summaries, positions, discovery, stats, rankings, and activity summaries
* server-discovered MCP tools and resources for the current live contract

## What to read next

* [Authentication](/docs/guides/overview/authentication)
* [REST overview](/docs/guides/rest/overview)
* [Available data reads](/docs/guides/rest/data-reads)
* [Contract limits](/docs/guides/agent-client-contract-limits)
* [Client setup](/docs/guides/mcp-agents/client-setup)
* [Public skill](/docs/guides/mcp-agents/public-skill)

Install the public Centaur skill with <code>{skillInstallCommand}</code> or browse it at <a href={skillRepoUrl}>{skillRepoUrl}</a>.
