---
title: Users and me
description: Read the workspace your API key belongs to and the people in it.
product: signal
section: api
order: 23
---

# Users and me

`GET /me` tells you which workspace a key belongs to. `GET /users` lists the workspace's people, whose IDs you use in `owner_id` and similar fields.

## Get the key's workspace

`GET /me` · Scope: none (any valid key)

Returns the workspace that owns the API key. Use it to check a key, and to read the workspace's `currency` and `timezone`.

### The workspace object

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | Workspace ID. |
| `name` | string | |
| `slug` | string | |
| `email` | string or null | |
| `phone` | string or null | |
| `website` | string or null | |
| `timezone` | string or null | IANA time zone, such as `America/Chicago`. |
| `currency` | string or null | ISO 4217 code. Deal values, plot prices and other amounts without their own currency are in this currency. |
| `logo_url` | string or null | |
| `created_at` | string | ISO 8601 timestamp. |

### Example

```bash
curl https://crm.empiraa.app/api/v1/me \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
const res = await fetch("https://crm.empiraa.app/api/v1/me", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data: workspace } = await res.json();
```

### Response `200`

```json
{
  "data": {
    "id": "cm1a2b3c40000xy12z3a4b5c6",
    "name": "Northwind Sales",
    "slug": "northwind-sales",
    "email": "sales@northwind.example",
    "phone": "+1 415 555 0100",
    "website": "https://northwind.example",
    "timezone": "America/Los_Angeles",
    "currency": "USD",
    "logo_url": null,
    "created_at": "2026-03-02T18:21:07.000Z"
  },
  "meta": { "cursor": null },
  "error": null
}
```

### Errors

| Status | Code | When |
| --- | --- | --- |
| 401 | `MISSING_API_KEY` or `INVALID_API_KEY` | See [Authentication](../authentication.md#authentication-errors). |

---

## The user object

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | The user ID. This is the value to use in `owner_id`, `assigned_user_id` and similar fields. |
| `name` | string | |
| `email` | string | |
| `job_title` | string or null | |
| `avatar_url` | string or null | |
| `is_active` | boolean | `false` for deactivated users. |
| `role` | string | The role's display name, such as `Admin`. |
| `role_code` | string or null | The role's code. |
| `member_id` | string | The user's membership in this workspace. Not used elsewhere in the API. |
| `joined_at` | string or null | When the user joined the workspace. |

```json
{
  "id": "5b8d1f3a-7e2c-4a9b-b6d4-1c3e5f7a9b20",
  "name": "Jordan Smith",
  "email": "jordan.smith@northwind.example",
  "job_title": "Account Executive",
  "avatar_url": null,
  "is_active": true,
  "role": "Member",
  "role_code": "member",
  "member_id": "8e0a2c4d-6f1b-4d3e-a5c7-9e1b3d5f7a26",
  "joined_at": "2026-03-04T10:12:44.000Z"
}
```

---

## List users

`GET /users` · Scope: `users:read`

Returns every member of the workspace in one response. `meta.total` is the number returned.

### Example

```bash
curl https://crm.empiraa.app/api/v1/users \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
const res = await fetch("https://crm.empiraa.app/api/v1/users", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const { data: users } = await res.json();
const activeUsers = users.filter((u) => u.is_active);
```

### Response `200`

```json
{
  "data": [
    {
      "id": "5b8d1f3a-7e2c-4a9b-b6d4-1c3e5f7a9b20",
      "name": "Jordan Smith",
      "email": "jordan.smith@northwind.example",
      "job_title": "Account Executive",
      "avatar_url": null,
      "is_active": true,
      "role": "Member",
      "role_code": "member",
      "member_id": "8e0a2c4d-6f1b-4d3e-a5c7-9e1b3d5f7a26",
      "joined_at": "2026-03-04T10:12:44.000Z"
    }
  ],
  "meta": { "cursor": null, "total": 1 },
  "error": null
}
```

---

## Get a user

`GET /users/{id}` · Scope: `users:read`

### Path parameters

| Parameter | Type | Notes |
| --- | --- | --- |
| `id` | string | User ID (not `member_id`). |

### Example

```bash
curl https://crm.empiraa.app/api/v1/users/5b8d1f3a-7e2c-4a9b-b6d4-1c3e5f7a9b20 \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```js
await fetch("https://crm.empiraa.app/api/v1/users/5b8d1f3a-7e2c-4a9b-b6d4-1c3e5f7a9b20", {
  headers: { Authorization: "Bearer YOUR_API_KEY" },
});
```

### Response `200`

The [user object](#the-user-object) in `data`.

### Errors

| Status | Code | When |
| --- | --- | --- |
| 404 | `NOT_FOUND` | No user with that ID in this workspace. |
