> ## Documentation Index
> Fetch the complete documentation index at: https://docs.centaur.io/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 requires OAuth and 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://mcp.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="/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="/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://api.centaur.io/v2/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://mcp.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](/guides/mcp-agents/client-setup). Install the [Public skill](/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 directory | `GET /v2/traders` | `list_trader_directory` | `directory.read` |
| Trader activity | `GET /v2/traders/activity` | `list_trader_activity` | `stats.read` |
| Asset discovery | `GET /v2/assets` | `list_assets` | `directory.read` |
| Partner feed | `GET /v2/feed` | `list_feed` | `feed.read` |
| Events | `GET /v2/events` | `list_events` | `events.read` |
| Messages | `GET /v2/messages` | `list_messages` | `messages.read` |
| Channel summaries | `GET /v2/channel-summaries` | `list_channel_summaries` | `summaries.read` |
| Aggregate summaries | `GET /v2/aggregate-summaries` | `list_aggregate_summaries` | `summaries.read` |
| Positions | `GET /v2/positions` | `list_positions` | `positions.read` |
| Open positions | `GET /v2/positions/open` | `list_open_positions` | `positions.read` |
| Trader stats | `GET /v2/traders/stats` | `list_trader_stats` | `stats.read` |
| Asset stats | `GET /v2/assets/stats` | `list_asset_stats` | `stats.read` |
| Trader rankings | `GET /v2/traders/rankings` | `rank_traders` | `stats.read` |
| Activity summaries | `GET /v2/activity-summaries` | `summarize_message_activity` | `stats.read` |

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

## Service surfaces

<ServiceSurfaceList />

## What this product exposes today

* REST reads under `/v2/*`
* 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](/guides/overview/authentication)
* [REST overview](/guides/rest/overview)
* [Available data reads](/guides/rest/data-reads)
* [Contract limits](/guides/agent-client-contract-limits)
* [Client setup](/guides/mcp-agents/client-setup)
* [Public skill](/guides/mcp-agents/public-skill)

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