# Member

> The Member object in the Guv API.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `id` * | string |  |
| `workspace_id` * | string |  |
| `user` | object or any or null |  |
| `email` * | string (email) |  |
| `role` * | [Role](/docs/api/objects/role/) |  |
| `status` * | `invited`, `active` |  |
| `invited_by` | [Actor](/docs/api/objects/actor/) or any or null |  |
| `invite_expires_at` | string (date-time) or null |  |
| `joined_at` | string (date-time) or null |  |
| `created_at` * | string (date-time) |  |

\* always present

## Example

```json
{
  "id": "mem_01jbx2m9k7q4r8t5v6w3y0z1pr",
  "workspace_id": "string",
  "user": {
    "id": "string",
    "name": "string",
    "avatar_url": "string",
    "has_passkey": false
  },
  "email": "ada@example.co.uk",
  "role": "owner",
  "status": "invited",
  "invited_by": {
    "type": "agent",
    "id": "tok_01jbx2m9k7q4r8t5v6w3y0z1tk",
    "display": "Stewart Webb via agent claude-code-on-stewart-laptop",
    "via_agent": {
      "id": "tok_01jbx2m9k7q4r8t5v6w3y0z1tk",
      "name": "claude-code-on-stewart-laptop"
    },
    "on_behalf_of": {
      "id": "usr_01jbx2m9k7q4r8t5v6w3y0z1us",
      "display": "Stewart Webb"
    }
  },
  "invite_expires_at": "2026-10-22T13:05:00Z",
  "joined_at": "2026-10-22T13:05:00Z",
  "created_at": "2026-10-22T13:05:00Z"
}
```

## Used by

- [Invite a member](/docs/api/members/#invite-a-member)
- [Change a member's role](/docs/api/members/#change-a-members-role)
- [Accept a workspace invitation](/docs/api/members/#accept-a-workspace-invitation)
