# Quickstart

Source: https://webagent-docs-staging.lookover.ai/quickstart

> Create an API key, make your first call, and connect your CLI agent in about five minutes.

> **Note: API address**
>
> Examples use the variable `$API_URL`. Set it once: `export API_URL=https://api.us.webagent.lookover.ai`. Webagent is in early access, so the address for your account can differ. The **API keys** page in the dashboard shows it as "API base", followed by `/v1`. Use the address without the `/v1`. Running the API on your own machine? Use `export API_URL=http://localhost:4400`.

### 1. Sign in and create a key [#sign-in-and-create-a-key]

1. Open the dashboard at `https://webagent.lookover.ai` and choose **Continue with Lookover**. Sign in with an email code, a magic link, Google or GitHub. If this is your first time, create your organization when asked. Webagent creates your workspace and a default project.
2. In the sidebar, under **Workspace**, open **API keys**, then **Create key**.
3. Give it a name (for example `laptop`) and pick a role:
   - **Member** runs sessions and skills. This is what you need for testing.
   - **Admin** also manages keys, settings and the team.
4. Copy the key. It is shown **once**. If you lose it, create a new key and revoke the old one.

Only admins can create keys, and the dashboard may ask you to sign in again first. If you see "Only admins can create keys", ask an admin of your organization.

A key looks like this and belongs to one project:

```text
wa_us_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

The part after `wa_` is the region (`us`). A key only works on the API of its own region. A key sent to another region fails with `wrong_region` (HTTP 421).

### 2. Put the key in your shell [#put-the-key-in-your-shell]

```bash
export API_URL=https://api.us.webagent.lookover.ai
export WEBAGENT_API_KEY=wa_us_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

Use your real key. Never paste it into a chat, a ticket or a file in git.

### 3. Make your first call [#make-your-first-call]

Scrape a page. Webagent opens it in a cloud browser and returns the content.

```bash
curl -s "$API_URL/v1/scrape" \
  -H "Authorization: Bearer $WEBAGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://webagent-test-web.pages.dev"}'
```

`https://webagent-test-web.pages.dev` is the Test Arena, a fake site we keep for trying things. You can use any public page instead.

The answer is JSON. Trimmed:

```json
{
  "url": "https://webagent-test-web.pages.dev/",
  "content": { "markdown": "[Test Arena](/)\n\n[Pricing](/pricing/)\n...\n# A practice site for browser agents\n..." },
  "metadata": {
    "title": "Test Arena · a practice site for browser agents",
    "statusCode": 200,
    "language": "en",
    "wordCount": 190
  },
  "links": [
    { "url": "https://webagent-test-web.pages.dev/", "text": "Test Arena", "internal": true },
    { "url": "https://webagent-test-web.pages.dev/pricing/", "text": "Pricing", "internal": true }
  ]
}
```

If you get `401` with `invalid API key`, the key is wrong or revoked. If you get `421` (`wrong_region`), use the API address for the key's region.

### 4. Open a browser session (optional) [#open-a-browser-session-optional]

A session is one cloud browser that stays open until you stop it or it times out. This is the same call the dashboard shows after you create a key.

```bash
curl -s "$API_URL/v1/sessions" \
  -H "Authorization: Bearer $WEBAGENT_API_KEY" \
  -H "Content-Type: application/json" \
  -X POST -d '{}'
```

The reply is the session record, plus a short-lived `token` and `endpoints`. Trimmed:

```json
{
  "id": "sess_us_xxxxxxxxxxxxxxxxxxxxxxxx",
  "status": "live",
  "engine": "chromium",
  "createdAt": "2026-01-01T12:00:00.000Z",
  "token": "...",
  "tokenExpiresAt": "2026-01-01T12:15:00.000Z",
  "endpoints": {
    "http": "https://.../v1/sessions/sess_us_xxxxxxxxxxxxxxxxxxxxxxxx",
    "cdp": "wss://.../v1/sessions/sess_us_xxxxxxxxxxxxxxxxxxxxxxxx/cdp",
    "live": "wss://.../v1/sessions/sess_us_xxxxxxxxxxxxxxxxxxxxxxxx/live"
  }
}
```

The `token` is for the session's own `endpoints`. It is not your API key.

Open **Sessions** in the dashboard to watch it live. Stop it when you are done, so it does not run until the idle timeout:

```bash
curl -s -X DELETE "$API_URL/v1/sessions/sess_us_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Authorization: Bearer $WEBAGENT_API_KEY"
```

### 5. Connect your agent [#connect-your-agent]

The same key works as a Bearer token on the MCP server at `<API_URL>/mcp`. Pick your tool:

- [Claude Code](/qa-testing/claude-code): One `claude mcp add` line.

- [Codex CLI](/qa-testing/codex): One block in `config.toml`.

Then give your agent the [agent setup snippet](/qa-testing/agent-setup) so it knows how to run a smoke test and what to report.

## Good to know [#good-to-know]

- Every request counts against your workspace limits (sessions at the same time, browser memory). See [Limits](/concepts/limits).
- Billing is by browser compute time. See [Billing](/concepts/billing).
- All error codes are in the [error reference](/reference/errors).
- To build against the API from code, see the [API reference](/api-reference).
