# whoami

Who this key belongs to, plus endpoints and limits.

`GET /v1/me` · MCP tool `whoami` · scope `read` · stable · since 2026-09-17

Call first. Returns the creator this key is bound to, the key's scopes, the request limits, and the exact URLs for the REST API, the MCP endpoint and photo uploads.

## Returns

200: Whoami.

- `creator` (object, required): The creator this key is bound to.
  - `creatorId` (string, required): The creator's id.
  - `slug` (string, required): The creator's URL slug.
  - `displayName` (string, required): The public brand name.
  - `role` (string, required): The key owner's role on the account. One of `owner`, `editor`.
- `key` (object, required): The key.
  - `name` (string, required): The key's name.
  - `scopes` (array of strings, required): What the key may do. One of `read`, `write`, `publish`.
- `limits` (object, required): Request limits.
  - `requestsPerMinutePerKey` (number, required): Requests per minute for this key.
  - `requestsPerHourPerCreator` (number, required): Requests per hour across the creator's keys.
  - `uploadsPerMinutePerKey` (number, required): Photo uploads per minute for this key (a batch counts each file).
  - `maxUploadBytes` (number, required): The largest photo accepted, in bytes.
- `endpoints` (object, required): The URLs to call, on the Sceniq domain.
  - `rest` (string, required): REST base URL.
  - `mcp` (string, required): MCP endpoint.
  - `upload` (string, required): Photo upload.
  - `uploadBatch` (string, required): Batch photo upload.
  - `openapi` (string, required): OpenAPI document.
  - `skill` (string, required): The authoring guide as a SKILL.md.
  - `docs` (string, required): The developer page, with the way into these docs.
- `directEndpoints` (object or null, required): The backend origin the Sceniq URLs proxy to, for harnesses without the proxy.
  - `rest` (string, required): REST base URL.
  - `mcp` (string, required): MCP endpoint.
  - `upload` (string, required): Photo upload.
  - `uploadBatch` (string, required): Batch photo upload.
  - `openapi` (string, required): OpenAPI document.
- `dashboard` (object, required): Studio links.
  - `settingsUrl` (string, required): Studio settings, where keys are made.
- `authoringGuideVersion` (string, required): The authoring guide's version; reload it when it changes.
- `publishing` (string, required): What this key may publish, in plain words.

## Examples

### A key with read and write

```bash
curl "https://sceniq.earth/api/v1/me" \
  -H "Authorization: Bearer $SCENIQ_API_KEY"
```

MCP `tools/call`:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "whoami",
    "arguments": {}
  }
}
```

Response 200:

```json
{
  "creator": {
    "creatorId": "k97c2m4vx8r1q0d6s5t3n9p2w7y4h8b1",
    "slug": "mara-lindgren",
    "displayName": "Mara Lindgren",
    "role": "owner"
  },
  "key": {
    "name": "Claude Code on the laptop",
    "scopes": [
      "read",
      "write"
    ]
  },
  "limits": {
    "requestsPerMinutePerKey": 300,
    "requestsPerHourPerCreator": 5000,
    "uploadsPerMinutePerKey": 60,
    "maxUploadBytes": 6291456
  },
  "endpoints": {
    "rest": "https://sceniq.earth/api/v1",
    "mcp": "https://sceniq.earth/api/mcp",
    "upload": "https://sceniq.earth/api/v1/media/upload",
    "uploadBatch": "https://sceniq.earth/api/v1/media/upload-batch",
    "openapi": "https://sceniq.earth/api/v1/openapi.json",
    "skill": "https://sceniq.earth/developers/skill.md",
    "docs": "https://sceniq.earth/developers"
  },
  "directEndpoints": {
    "rest": "https://quiet-heron-512.convex.site/v1",
    "mcp": "https://quiet-heron-512.convex.site/mcp",
    "upload": "https://quiet-heron-512.convex.site/v1/media/upload",
    "uploadBatch": "https://quiet-heron-512.convex.site/v1/media/upload-batch",
    "openapi": "https://quiet-heron-512.convex.site/v1/openapi.json"
  },
  "dashboard": {
    "settingsUrl": "https://creators.sceniq.earth/settings"
  },
  "authoringGuideVersion": "2026-09-30.3",
  "publishing": "This key cannot publish. A new guide always ends with two clicks only the creator makes in the studio: Publish guide and Publish sales page; get_guide_readiness handoff lists what is left with its links. Hand the creator the reviewUrl, or ask them to mint a key with the publish option for publish_changes on a live guide."
}
```

### A key with the publish option

```bash
curl "https://sceniq.earth/api/v1/me" \
  -H "Authorization: Bearer $SCENIQ_API_KEY"
```

MCP `tools/call`:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "whoami",
    "arguments": {}
  }
}
```

Response 200:

```json
{
  "creator": {
    "creatorId": "k97c2m4vx8r1q0d6s5t3n9p2w7y4h8b1",
    "slug": "mara-lindgren",
    "displayName": "Mara Lindgren",
    "role": "owner"
  },
  "key": {
    "name": "Claude Desktop, can publish",
    "scopes": [
      "read",
      "write",
      "publish"
    ]
  },
  "limits": {
    "requestsPerMinutePerKey": 300,
    "requestsPerHourPerCreator": 5000,
    "uploadsPerMinutePerKey": 60,
    "maxUploadBytes": 6291456
  },
  "endpoints": {
    "rest": "https://sceniq.earth/api/v1",
    "mcp": "https://sceniq.earth/api/mcp",
    "upload": "https://sceniq.earth/api/v1/media/upload",
    "uploadBatch": "https://sceniq.earth/api/v1/media/upload-batch",
    "openapi": "https://sceniq.earth/api/v1/openapi.json",
    "skill": "https://sceniq.earth/developers/skill.md",
    "docs": "https://sceniq.earth/developers"
  },
  "directEndpoints": {
    "rest": "https://quiet-heron-512.convex.site/v1",
    "mcp": "https://quiet-heron-512.convex.site/mcp",
    "upload": "https://quiet-heron-512.convex.site/v1/media/upload",
    "uploadBatch": "https://quiet-heron-512.convex.site/v1/media/upload-batch",
    "openapi": "https://quiet-heron-512.convex.site/v1/openapi.json"
  },
  "dashboard": {
    "settingsUrl": "https://creators.sceniq.earth/settings"
  },
  "authoringGuideVersion": "2026-09-30.3",
  "publishing": "This key can publish a live guide's changes: only when the creator asks, after get_publish_status shows no blocking items (publish_changes, then poll get_publish_status). A new guide always ends with two clicks only the creator makes in the studio: Publish guide (putting the draft on sale) and Publish sales page; get_guide_readiness handoff lists what is left with its links. Store visibility and the creator agreement stay in the dashboard too."
}
```

## Errors

- `unauthenticated` (401): The request carries no key. Send it as Authorization: Bearer sk_sceniq_... (or X-Api-Key).
- `invalid_api_key` (401): The key is unknown, revoked or expired.
- `forbidden` (403): The key belongs to a creator account that is no longer active.
- `rate_limited` (429): Over a limit: requests per key per minute, per creator per hour, uploads per key per minute, or check_links per guide per hour.
- `internal_error` (500): An unexpected failure. The message is hidden on purpose.

Reference: https://developers.sceniq.earth/reference/whoami
