# Invitations

Email invitations to join a workspace.

## Endpoints

- [Accept an invitation](https://developers.lydie.co/api/invitations/accept-an-invitation.md): `POST /v1/invitations/accept`
- [Decline an invitation](https://developers.lydie.co/api/invitations/decline-an-invitation.md): `POST /v1/invitations/decline`
- [Look up an invitation by its token](https://developers.lydie.co/api/invitations/look-up-an-invitation-by-its-token.md): `GET /v1/invitations/lookup`
- [Revoke an invitation](https://developers.lydie.co/api/invitations/revoke-an-invitation.md): `DELETE /v1/invitations/{invitationId}`
- [Resend an invitation](https://developers.lydie.co/api/invitations/resend-an-invitation.md): `POST /v1/invitations/{invitationId}/resend`
- [List pending invitations](https://developers.lydie.co/api/invitations/list-pending-invitations.md): `GET /v1/workspaces/{workspaceId}/invitations`
- [Invite someone by email](https://developers.lydie.co/api/invitations/invite-someone-by-email.md): `POST /v1/workspaces/{workspaceId}/invitations`

## The Invitation object

- `id` (string, required): (1–64 chars)
- `workspaceId` (string, required): (1–64 chars)
- `email` (string, required)
- `role` (string, required): One of: `owner`, `admin`, `member`, `guest`.
- `status` (string, required): One of: `pending`, `accepted`, `declined`, `revoked`.
- `expiresAt` (timestamp, required)
- `documentId` (string, required, nullable)
- `documentLevel` (string, required, nullable): One of: `view`, `comment`, `edit`, `full`.
- `teamspaceIds` (string[], required)
- `invitedBy` (string, required, nullable)
- `createdAt` (timestamp, required)

```json
{
  "id": "string",
  "workspaceId": "01JCQ3TZ0WJ8K4M2X7T9R6N1PA",
  "email": "ada@example.com",
  "role": "owner",
  "status": "pending",
  "expiresAt": "2026-11-12T09:30:00.000Z",
  "documentId": null,
  "documentLevel": null,
  "teamspaceIds": [
    "string"
  ],
  "invitedBy": null,
  "createdAt": "2026-11-12T09:30:00.000Z"
}
```
