---
title: "Get the account"
description: "Retrieve the workspace a credential belongs to, its plan and limits, what the credential may do and what Lookio offers. Call it first."
canonical: "https://lookio.app/docs/api/account/get-account"
updated: "2026-10-17"
---

# Get the account

Requires `account:read`.

Call this endpoint first. It verifies the credential and tells you, before you build anything on it, which workspace it belongs to, the plan and its limits, the scopes the credential holds, and what Lookio offers: the query modes with their credit prices and the file formats it reads. It also says whether this credential's answers are kept in conversations it can continue.

An API key and a personal connection answer differently: a connection is narrowed by its owner's permissions, and an API key never holds the `admin` scope, and keeps its own conversations rather than a person's chats. See [Authentication](/docs/api/authentication#what-a-credential-can-really-do).

```http
GET https://api.lookio.app/v1/account
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Response

**200**: Retrieve the authenticated workspace

- `data` (`object`, required)
- `data.workspace` (`object`, required)
- `data.workspace.id` (`string`, required)
- `data.workspace.name` (`string`, required)
- `data.workspace.slug` (`string`, required)
- `data.workspace.plan` (`string`, required)
- `data.credit_balance` (`integer`, required)
- `data.entitlements` (`object`, required)
- `data.entitlements.seats` (`integer | null`, required): Members the plan allows. Null is unlimited.
- `data.entitlements.word_allowance` (`integer | null`, required): Words the workspace may keep indexed on its plan. Null is unlimited. `GET /v1/usage` says how many are stored.
- `data.entitlements.assistants` (`integer | null`, required): Assistants the plan allows. Null is unlimited. Creating one more is refused with `feature_not_available`.
- `data.entitlements.widgets` (`integer | null`, required): Widgets the plan allows. Null is unlimited. Creating one more is refused with `feature_not_available`.
- `data.entitlements.pages_per_month` (`integer | null`, required): Pages read a month (file pages and web pages, new or changed only). Null is unlimited. `GET /v1/usage` says how many are used.
- `data.credential` (`object`, required)
- `data.credential.id` (`string`, required)
- `data.credential.kind` (`enum<string>`, required, one of: `api_key, oauth`)
- `data.credential.name` (`string,null`, required)
- `data.credential.prefix` (`string`, required)
- `data.credential.scopes` (`enum<string>[]`, required)
- `data.credential.created_at` (`string`, required)
- `data.credential.expires_at` (`string,null`, required)
- `data.capabilities` (`object`, required)
- `data.capabilities.query_modes` (`object[]`, required)
- `data.capabilities.query_modes.id` (`enum<string>`, required, one of: `eco, flash, deep`)
- `data.capabilities.query_modes.label` (`string`, required)
- `data.capabilities.query_modes.credits` (`integer`, required): Credits a question costs in this mode, whatever the answer and its length.
- `data.capabilities.query_modes.description` (`string`, required)
- `data.capabilities.query_modes.available` (`boolean`, required)
- `data.capabilities.default_query_mode` (`enum<string>`, required, one of: `eco, flash, deep`)
- `data.capabilities.supported_formats` (`object[]`, required)
- `data.capabilities.supported_formats.id` (`string`, required)
- `data.capabilities.supported_formats.label` (`string`, required)
- `data.capabilities.supported_formats.extensions` (`string[]`, required)
- `data.capabilities.supported_formats.max_bytes` (`integer`, required): The largest file of this family, in bytes.
- `data.capabilities.conversations` (`boolean`, required): True when this credential's answers are kept in conversations it can continue with `conversation_id`: a person's chats, and an API key's conversations (unless a question sends `store: false`).
- `data.capabilities.webhooks` (`boolean`, required)
- `request_id` (`string`, required)

```json
{
  "data": {
    "workspace": {
      "id": "<string>",
      "name": "<string>",
      "slug": "<string>",
      "plan": "<string>"
    },
    "credit_balance": 123,
    "entitlements": {
      "seats": 123,
      "word_allowance": 123,
      "assistants": 123,
      "widgets": 123,
      "pages_per_month": 123
    },
    "credential": {
      "id": "<string>",
      "kind": "api_key",
      "name": null,
      "prefix": "<string>",
      "scopes": [
        "account:read"
      ],
      "created_at": "<string>",
      "expires_at": null
    },
    "capabilities": {
      "query_modes": [
        {
          "id": "eco",
          "label": "<string>",
          "credits": 123,
          "description": "<string>",
          "available": true
        }
      ],
      "default_query_mode": "eco",
      "supported_formats": [
        {
          "id": "<string>",
          "label": "<string>",
          "extensions": [
            "<string>"
          ],
          "max_bytes": 123
        }
      ],
      "conversations": true,
      "webhooks": true
    }
  },
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request GET \
  --url 'https://api.lookio.app/v1/account' \
  --header 'Authorization: <api-key>'
```
