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

# Quickstart

> Authenticate and call your first Atlas endpoint.

This guide takes you from zero to a successful authenticated request against the
Atlas API.

<Note>
  While the custom domain is being set up, the API is served from
  `https://api-atlaswork.vercel.app`. Endpoints are mounted under `/api`.
</Note>

## 1. Get an API key

API keys are created and revoked from the [dashboard](https://web-atlaswork.vercel.app).
A key is shown in full exactly once, at creation — store it somewhere safe.

A new account starts with a free credit grant, so you can create, review, and
send a real envelope before entering any payment details.

## 2. Make an authenticated request

Every `/api/v1` request carries your API key as a bearer token (the
`x-api-key` header also works). Start with the authenticated `ping` endpoint,
which proves your key is valid:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api-atlaswork.vercel.app/api/v1/ping \
    -H "Authorization: Bearer $ATLAS_API_KEY"
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch("https://api-atlaswork.vercel.app/api/v1/ping", {
    headers: { Authorization: `Bearer ${process.env.ATLAS_API_KEY}` },
  });
  const body = await res.json();
  console.log(body); // { "pong": true }
  ```

  ```python Python theme={null}
  import os, requests

  res = requests.get(
      "https://api-atlaswork.vercel.app/api/v1/ping",
      headers={"Authorization": f"Bearer {os.environ['ATLAS_API_KEY']}"},
  )
  print(res.json())  # { "pong": True }
  ```
</CodeGroup>

A valid key returns:

```json theme={null}
{ "pong": true }
```

A missing or invalid key returns `401` with the standard error envelope:

```json theme={null}
{ "code": "unauthorized", "message": "Missing or invalid API key" }
```

## 3. Explore the API

Browse the full, always-current surface in the
[API reference](/api-reference/introduction) — it's generated from the live
OpenAPI document, so it never drifts from the running API.

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/guides/authentication">
    API keys, signer tokens, and the one-method-per-prefix rule.
  </Card>

  <Card title="Idempotency" icon="rotate" href="/guides/idempotency">
    Make retries safe on every state-changing call.
  </Card>

  <Card title="Webhooks" icon="bell" href="/guides/webhooks">
    Track the envelope lifecycle without polling.
  </Card>

  <Card title="MCP server" icon="robot" href="/mcp/overview">
    Drive signing from an AI agent.
  </Card>
</CardGroup>
