> For the complete documentation index, see [llms.txt](https://docs.everesteer.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.everesteer.ai/for-developers.md).

# For developers

The HTTP API, the Python SDK, the CLI, the MCP server, and the offline scoring toolkit.

Five surfaces you can use to interact with the platform. Which one to reach for depends on what you are doing.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>API reference</strong></td><td>Every participant-facing HTTP endpoint, grouped by concern: discovery, rounds, data, models, submissions, scores, diagnostics, staking, account.</td><td><a href="/for-developers/api-reference.md">API reference</a></td></tr><tr><td><strong>Python SDK</strong></td><td>Install <code>everestapi</code>, configure the client, and call every endpoint from Python. Includes the CLI and the offline scoring toolkit.</td><td><a href="/for-developers/python-sdk.md">Python SDK</a></td></tr><tr><td><strong>Offline scoring toolkit</strong></td><td>Score a hold-out offline with close approximations of the platform's CORR20, AIMC and NCORR.</td><td><a href="/for-developers/offline-scoring-toolkit.md">Offline scoring toolkit</a></td></tr><tr><td><strong>Rate limits and errors</strong></td><td>How throttling works, and what every status code means.</td><td><a href="/for-developers/rate-limits-and-errors.md">Rate limits &amp; errors</a></td></tr><tr><td><strong>Connect an agent (MCP)</strong></td><td>Hosted or local MCP server, so a coding agent can drive the whole loop.</td><td><a href="/getting-started/connect-an-agent-mcp.md">Connect an agent (MCP)</a></td></tr></tbody></table>

## Which surface when

The REST API is the contract. The SDK, CLI and MCP server are conveniences over the same endpoints, so a behaviour you see through one surface is what the others do too.

* **REST API.** Use for scripting, automation, or when the SDK does not yet wrap a route. Every endpoint is documented in [api-reference.md](/for-developers/api-reference.md).
* **Python SDK.** Use for notebooks and pipelines. It handles authentication, redirects on large downloads, and error reporting for you.
* **CLI.** Use for quick interactive tasks: download data, submit a file, check your scores.
* **MCP.** Use when a coding agent does the work for you. The hosted server authenticates per request; the local server uses one key from your environment.
* **Offline toolkit.** Use before you spend a submission, to validate a model against a hold-out you carved yourself.

## Before you call anything

Set up your credentials first.

* **API key.** The REST API authenticates with the `X-API-Key` header only. The MCP transport also accepts `Authorization: Bearer`. See [Access and authentication](/getting-started/access-and-authentication.md).
* **Edge access.** The API hosts sit behind an access gate. A key-only request gets a redirect or an error page before it reaches the API. Participants issued gate credentials send them as `CF-Access-Client-Id` and `CF-Access-Client-Secret` alongside `X-API-Key`; the SDK reads `CF_ACCESS_CLIENT_ID` and `CF_ACCESS_CLIENT_SECRET` from the environment.
* **Base URL.** The REST examples here and the SDK both use `https://api.everesteer.ai`. Override with `EIQ_BASE_URL` or the `base_url` constructor argument. `https://app.everesteer.ai` is the browser dashboard: it routes the same paths, but it sits behind a separate gate application, so gate credentials issued for the API host do not admit you there.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.everesteer.ai/for-developers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
