# Invites

> Requires owner or admin.

Source: https://warmerly.com/docs/workspaces/invites

## List pending invites

```text
GET /workspaces/{id}/invites
```

Requires `owner` or `admin`.

```json
{
  "invites": [
    {
      "id": "b2f9...",
      "email": "new.hire@acme.com",
      "role": "member",
      "status": "pending",
      "createdAt": "2026-06-01T09:00:00.000Z",
      "expiresAt": "2026-06-08T09:00:00.000Z"
    }
  ]
}
```

## Invite a member

```text
POST /workspaces/{id}/invites
```

Requires `owner` or `admin`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | Yes | Invitee's email address. |
| `role` | `"admin"` \\| `"member"` | Yes | Role granted on acceptance. You cannot invite someone directly as `owner`. |

```bash
curl https://app.warmerly.com/api/v1/workspaces/8f14e45f-ceea-4c6a-8c8d-6b1a5b5c9c1a/invites \
  -X POST \
  -H "X-Api-Key: wmv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "email": "new.hire@acme.com", "role": "member" }'
```

```json
{
  "invite": {
    "id": "b2f9...",
    "email": "new.hire@acme.com",
    "role": "member",
    "status": "pending",
    "createdAt": "2026-06-01T09:00:00.000Z",
    "expiresAt": "2026-06-08T09:00:00.000Z"
  }
}
```

`201 Created` on success. The email is lowercased. If the email already belongs to a member, returns `409 conflict`. A new invite replaces any existing pending invite for the same email. Invites expire after 7 days. If email sending is configured, an invite email is sent automatically; the invite is still created if sending fails.

Your own email address must be verified, otherwise this returns `403` with `error.code` `email_not_verified`. Invites are also rate limited: 20 per hour and 50 per day per person, 30 per hour and 100 per day per workspace, and 3 per day to any one recipient address. Going over returns `429 too_many_requests` with a `Retry-After` header.

## More from Workspaces & Projects

- [Members](https://warmerly.com/docs/workspaces/members): Requires owner or admin.
- [Projects](https://warmerly.com/docs/workspaces/projects): A project hangs off a workspace and is what campaigns, mailboxes, and inbox data attach to via X-Project-Id.…
- [Workspace housekeeping](https://warmerly.com/docs/workspaces/workspace-housekeeping): activate switches which workspace is "current" for session-based (dashboard) use and returns { "ok": true }.…
