---
title: "Who am I"
url: https://docs.light-ai.app/api-reference/account/get-me.md
canonical_url: https://docs.light-ai.app/api-reference/account/get-me
last_updated: 2026-10-13
summary: "GET /v1/me: The credential's organization (or partner), effective scopes (key ∩ grant ∩ plan), entitlements, limits and API version."
api_status: beta
related:
  - https://docs.light-ai.app/api-reference/account
---

# Who am I

> GET /v1/me: The credential's organization (or partner), effective scopes (key ∩ grant ∩ plan), entitlements, limits and API version.

`GET /v1/me`

The credential's organization (or partner), effective scopes (key ∩ grant ∩ plan), entitlements, limits and API version. Doubles as an authenticated health check. Partner keys add `Light-AI-Organization` to see one connected organization.

|   |   |
| --- | --- |
| Credential | API key: `Authorization: Bearer lai_live_…` (or `lai_test_…`). Partner keys add `Light-AI-Organization`. |
| Test mode | Works with test keys (test objects only). |

## Headers

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `Light-AI-Organization` | string |  | Partner keys: the connected organization to act for (`org_…`). Organization keys may omit it. Id prefix `org_`. |
| `Light-AI-Version` | string |  | Pin a dated API version (defaults to the key's version). One of: `2026-11-01`. |

## Response 200

The principal.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | Always `principal`. |
| `livemode` | boolean | yes | false for objects created with a test key. |
| `key` | object | yes |  |
| `key.id` | string | yes | Id prefix `key_`. |
| `key.name` | string | yes |  |
| `key.livemode` | boolean | yes | false for objects created with a test key. |
| `key.scopes` | string[] | yes | One of: `leads:read`, `leads:write`, `clients:read`, `clients:write`, `projects:read`, `projects:write`, `quotes:read`, `quotes:write`, `quotes:share_link`, `quotes:asset_links`, `webhooks:manage`, `events:read`, `mockups:read`, `mockups:write`, `forms:read`, `forms:write`. |
| `key.expires_at` | timestamp \| null | yes | RFC 3339 timestamp (UTC, milliseconds). |
| `key.expires_in_days` | integer \| null | yes |  |
| `key.replaced_by` | string \| null | yes | Id prefix `key_`. |
| `partner` | object \| null | yes |  |
| `partner.id` | string | yes | Id prefix `ptr_`. |
| `partner.object` | string | yes | Always `partner`. |
| `partner.legal_name` | string | yes |  |
| `partner.display_name` | string | yes |  |
| `partner.verified_domain` | string | yes |  |
| `partner.status` | string | yes |  |
| `partner.verified` | boolean | yes |  |
| `partner.active_grants` | integer | yes |  |
| `organization` | object \| null | yes |  |
| `organization.id` | string | yes | Id prefix `org_`. |
| `organization.name` | string \| null | yes |  |
| `organization.timezone` | string \| null | yes |  |
| `organization.paused` | boolean | yes |  |
| `grant` | object \| null | yes |  |
| `grant.id` | string | yes | Id prefix `grant_`. |
| `grant.scopes` | string[] | yes | One of: `leads:read`, `leads:write`, `clients:read`, `clients:write`, `projects:read`, `projects:write`, `quotes:read`, `quotes:write`, `quotes:share_link`, `quotes:asset_links`, `webhooks:manage`, `events:read`, `mockups:read`, `mockups:write`, `forms:read`, `forms:write`. |
| `grant.external_reference` | string \| null | yes |  |
| `grant.metadata` | object | yes |  |
| `scopes` | string[] | yes | Effective scopes: key ∩ grant ∩ the organization's plan. One of: `leads:read`, `leads:write`, `clients:read`, `clients:write`, `projects:read`, `projects:write`, `quotes:read`, `quotes:write`, `quotes:share_link`, `quotes:asset_links`, `webhooks:manage`, `events:read`, `mockups:read`, `mockups:write`, `forms:read`, `forms:write`. |
| `entitlements` | object \| null | yes |  |
| `limits` | object | yes |  |
| `limits.reads_per_minute` | integer | yes |  |
| `limits.writes_per_minute` | integer | yes |  |
| `limits.lead_daily_cap` | integer \| null | yes |  |
| `api_version` | string | yes |  |

## Errors

| Status | Meaning |
| --- | --- |
| `400` | Bad request. [`bad_request`](https://docs.light-ai.app/errors#bad_request), [`test_mode_mismatch`](https://docs.light-ai.app/errors#test_mode_mismatch), [`test_mode_unsupported`](https://docs.light-ai.app/errors#test_mode_unsupported), [`unsupported_api_version`](https://docs.light-ai.app/errors#unsupported_api_version) |
| `401` | Missing or invalid credential. [`authentication_required`](https://docs.light-ai.app/errors#authentication_required), [`invalid_api_key`](https://docs.light-ai.app/errors#invalid_api_key), [`api_key_revoked`](https://docs.light-ai.app/errors#api_key_revoked), [`api_key_expired`](https://docs.light-ai.app/errors#api_key_expired), [`api_key_suspended`](https://docs.light-ai.app/errors#api_key_suspended) |
| `403` | Not allowed. [`insufficient_scope`](https://docs.light-ai.app/errors#insufficient_scope), [`plan_upgrade_required`](https://docs.light-ai.app/errors#plan_upgrade_required), [`organization_paused`](https://docs.light-ai.app/errors#organization_paused), [`organization_off_season`](https://docs.light-ai.app/errors#organization_off_season), [`api_disabled`](https://docs.light-ai.app/errors#api_disabled), [`api_access_not_enabled`](https://docs.light-ai.app/errors#api_access_not_enabled), [`ip_not_allowed`](https://docs.light-ai.app/errors#ip_not_allowed), [`forbidden`](https://docs.light-ai.app/errors#forbidden) |
| `404` | Not found (also for objects of other organizations and for organizations without an active grant). |
| `422` | Validation failed. [`idempotency_key_reused`](https://docs.light-ai.app/errors#idempotency_key_reused) |
| `429` | Rate limited or daily cap reached. See Retry-After and the RateLimit headers. [`rate_limited`](https://docs.light-ai.app/errors#rate_limited), [`daily_cap_reached`](https://docs.light-ai.app/errors#daily_cap_reached) |
| `500` | Unexpected server error. Safe to retry with exponential backoff; quote the Request-Id to support. [`internal_error`](https://docs.light-ai.app/errors#internal_error) |
| `503` | Temporarily unavailable. Retry with exponential backoff. [`service_unavailable`](https://docs.light-ai.app/errors#service_unavailable) |

## Examples

**Request**

curl:

```bash
curl -X GET "https://api.light-ai.app/v1/me" \
  -H "Authorization: Bearer $LIGHT_AI_API_KEY"
```

JavaScript:

```javascript
const response = await fetch('https://api.light-ai.app/v1/me', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.LIGHT_AI_API_KEY}`,
  },
});
const data = await response.json();
```

Python:

```python
import os, uuid, requests

response = requests.get(
    "https://api.light-ai.app/v1/me",
    headers={
        "Authorization": f"Bearer {os.environ['LIGHT_AI_API_KEY']}",
    },
    timeout=30,
)
data = response.json()
```

**Response 200**

```json
{
  "object": "principal",
  "livemode": false,
  "key": {
    "id": "key_3f9c2a7be41d…",
    "name": "Dana Reyes",
    "livemode": false,
    "scopes": [
      "leads:read"
    ],
    "expires_at": "2026-10-12T14:03:11.000Z",
    "expires_in_days": 0,
    "replaced_by": "key_3f9c2a7be41d…"
  },
  "partner": {
    "id": "ptr_3f9c2a7be41d…",
    "object": "partner",
    "legal_name": "string",
    "display_name": "Dana Reyes",
    "verified_domain": "string",
    "status": "string",
    "verified": true,
    "active_grants": 0
  },
  "organization": {
    "id": "org_3f9c2a7be41d…",
    "name": "Dana Reyes",
    "timezone": "string",
    "paused": true
  },
  "grant": {
    "id": "grant_3f9c2a7be41d…",
    "scopes": [
      "leads:read"
    ],
    "external_reference": "string",
    "metadata": {}
  },
  "scopes": [
    "leads:read"
  ],
  "entitlements": {},
  "limits": {
    "reads_per_minute": 0,
    "writes_per_minute": 0,
    "lead_daily_cap": 0
  },
  "api_version": "2026-11-01"
}
```
