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

# Getting Started

Lab Atlas gives you two ways to work with your data programmatically:

* **REST API** — a versioned HTTP API (`/api/v1/`) for scripts, integrations, and automation.
* **MCP server** — a Model Context Protocol endpoint (`/mcp`) that lets AI agents (Claude Code, claude.ai, the Anthropic API) read your Lab Atlas data with natural-language prompts.

Both surfaces authenticate with the **same API key**, scoped to your user and organization. Whatever you can see in the web app, your key can see — no more.

{% hint style="info" %}
API and MCP tools are currently limited to Enterprise customers only.
{% endhint %}

### Create an API key

API keys are created from your the Organization Settings dashboard, accessible to **Organization Admins** and **Super Users** in your organization.&#x20;

{% stepper %}
{% step %}

#### Open the API Keys page

Click the **Organization Settings** page from the sidebar → then go to **Developer Tools → API Keys**.
{% endstep %}

{% step %}

#### Create a new key

Click **New API Key**. In the **Create API Key** dialog, fill in:

* **Name** — a label to recognize the key later (max 64 characters).
* **Duration** — how long the key stays valid: **7**, **30**, **90**, or **365** days.

<figure><img src="/files/C9WbGrN7YegMJOnZZy69" alt="" width="563"><figcaption></figcaption></figure>

Then click **Submit**.
{% endstep %}

{% step %}

#### Copy and store the key

Your key is shown once, in the form `lak_<keyId>.<secret>`. Use the **reveal** and **copy** buttons to grab it, then store it somewhere safe (e.g. a secrets manager or environment variable).

{% hint style="warning" %}
This is the **only** time the full key is displayed. If you lose it, revoke it and create a new one.
{% endhint %}
{% endstep %}
{% endstepper %}

You can revoke or delete keys at any time from the same page.

<figure><img src="/files/wbuFcxd3Fe0jRvna9fbf" alt=""><figcaption></figcaption></figure>

### Use the REST API

Pass your key in the `X-API-KEY` header. The base URL is `https://<your-tenant>.labatlas.com/api/v1/`.

```bash
curl https://<your-tenant>.labatlas.com/api/v1/projects \
  -H "X-API-KEY: lak_xxxxxxxx.xxxxxxxxxxxxxxxxxxxx"
```

{% hint style="warning" %}
Use `X-API-KEY` (or `Authorization: ApiKey <key>`). Do **not** use `Authorization: Bearer …` — that scheme is reserved for the internal web client and will be rejected on `/api/v1/`.
{% endhint %}

For the full endpoint list, pagination, permissions model, and error formats, see the [Public API Reference](/rest-api-reference.md).

### Connect via MCP

Point your MCP client at `https://<your-tenant>.labatlas.com/mcp` over **Streamable HTTP**, sending your API key in the `X-API-KEY` header.

{% tabs %}
{% tab title="Claude Code" %}

```bash
export LABATLAS_API_KEY=lak_xxxxxxxx.xxxxxxxxxxxxxxxxxxxx

claude mcp add --transport http labatlas \
  https://<your-tenant>.labatlas.com/mcp \
  --header "X-API-KEY: $LABATLAS_API_KEY"

claude mcp list   # expect: labatlas  ✓ connected
```

{% endtab %}

{% tab title="claude.ai" %}
In **Settings → Connectors**, add a custom connector:

* **URL** — `https://<your-tenant>.labatlas.com/mcp`
* **Transport** — HTTP / Streamable HTTP
* **Header name** — `X-API-KEY`
* **Header value** — your Lab Atlas API key
  {% endtab %}

{% tab title="Anthropic API" %}

```json
{
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://<your-tenant>.labatlas.com/mcp",
      "name": "labatlas",
      "headers": { "X-API-KEY": "lak_xxxxxxxx.xxxxxxxxxxxxxxxxxxxx" }
    }
  ]
}
```

{% endtab %}
{% endtabs %}

For the full tool list, example prompts, and troubleshooting, see the [MCP User Guide](/mcp-server.md).
