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

# Account and API keys

> Create an account, create an API key scoped to one workspace, and use it from the SDK, MCP clients and the REST API.

You need an account for everything. You need an API key only when something outside the dashboard talks to Cyberwave: an AI coding tool, the Python SDK, the CLI or your own HTTP client.

## Create an account

[Sign up](https://cyberwave.com/signup), verify your email, and create or join a workspace. The dashboard, the built-in agents and the Playground need nothing else.

## Create an API key

**1. Open Profile → Access**

Go to [Profile → Access](https://cyberwave.com/profile?tab=access) and select **Create Token**.

**2. Scope it to one workspace**

Name the key (for example, **Quickstart**) and select **one workspace**. A key that covers several workspaces makes every request name one, or it fails with `400 workspace_required`.

**3. Copy it now**

The key is shown once. If you miss it, create a new one.

> [!WARNING]
>
> Never commit a key or paste it into a shared chat. Keep it in an environment variable or your client's secret settings.

## Use your key

**Terminal**

Paste the key at a hidden prompt, so it stays out of your shell history:

```bash theme={null}
printf 'Cyberwave API key: '
read -rs CYBERWAVE_API_KEY
printf '\n'
export CYBERWAVE_API_KEY
```

**Python SDK**

The SDK reads `CYBERWAVE_API_KEY` from the environment:

```python theme={null}
from cyberwave import Cyberwave

cw = Cyberwave()
```

`Cyberwave(api_key="...")` also works. Avoid it in code you share.

**MCP client**

Send the key as `Authorization: Bearer <key>` to `https://mcp.cyberwave.com/mcp`. See [Connect your AI tool](https://docs.cyberwave.com/ai/connect-your-ai-tool.md).

**REST API**

```bash theme={null}
curl "https://api.cyberwave.com/api/v1/assets/" \
  -H "Authorization: Bearer $CYBERWAVE_API_KEY"
```

## Environment variables

| Variable | Use |
| - | - |
| `CYBERWAVE_API_KEY` | Your API key. Required. |
| `CYBERWAVE_WORKSPACE_ID` | Workspace UUID. Needed when the key covers several workspaces. |
| `CYBERWAVE_ENVIRONMENT_ID` | Default environment UUID. Skips auto-creating a Quickstart Environment. |
| `CYBERWAVE_BASE_URL` | API base URL. Default `https://api.cyberwave.com`. |
| `CYBERWAVE_MQTT_HOST` / `CYBERWAVE_MQTT_PORT` | MQTT broker. Default `mqtt.cyberwave.com`, port `8883` with TLS. |

## If something fails

| Error | Fix |
| - | - |
| `No API key found` | Export `CYBERWAVE_API_KEY` in the terminal that runs your code. |
| `401` / `AUTH_ERROR` | The key is wrong or revoked. Create a new one. |
| `400 workspace_required` | Set `CYBERWAVE_WORKSPACE_ID`, or use a key scoped to one workspace. |
| `403` | Check your role in the workspace and the key's scope. |
| MQTT connection failed | Allow outbound TCP 8883. See [Network and firewall](https://docs.cyberwave.com/enterprise/network-and-firewall.md). |

## Go deeper

> **[API tokens](https://docs.cyberwave.com/feature-reference/api-tokens.md)**
>
> Token types, service tokens, scopes and roles.

> **[Credits and billing](https://docs.cyberwave.com/billing/credits.md)**
>
> What uses credits, and how to check your balance.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.