Workspace API
List Invitations
List pending workspace invitations with GET /workspace/invitations.
GET https://api.parcelengineering.com/api/v1/workspace/invitationsReturns workspace invitations that have not yet been accepted or revoked. Each invitation carries a status field with the value Pending (the link is still valid) or Expired (the link has passed its expiry date but was never accepted or revoked).
List invitations costs 0 credits.
The Workspace API requires the Pro plan. A request from a non-Pro workspace receives 403 forbidden.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspace_id | string (UUID) | No | Override the workspace resolved from your API key. Useful for admin tooling. |
Example
curl https://api.parcelengineering.com/api/v1/workspace/invitations \ -H "Authorization: Bearer pcl_your_api_key"const response = await fetch( 'https://api.parcelengineering.com/api/v1/workspace/invitations', { headers: { 'Authorization': 'Bearer pcl_your_api_key', }, });
const { data, metadata } = await response.json();Response
{ "data": { "invitations": [ { "id": "9f8e7d6c-0001-4a3b-8c2d-000000000001", "email": "new.teammate@example.com", "role": "member", "status": "Pending", "sent_at": "2025-06-28T12:00:00.000Z", "expires_at": "2025-07-12T12:00:00.000Z", "created_at": "2025-06-28T12:00:00.000Z" }, { "id": "9f8e7d6c-0002-4a3b-8c2d-000000000002", "email": "old.invite@example.com", "role": "admin", "status": "Expired", "sent_at": "2025-06-01T09:00:00.000Z", "expires_at": "2025-06-15T09:00:00.000Z", "created_at": "2025-06-01T09:00:00.000Z" } ] }, "metadata": { "credits": 0 }}Response fields
| Field | Type | Description |
|---|---|---|
data.invitations | array | One object per open invitation (not accepted, not revoked), ordered by creation date descending. |
data.invitations[].id | string (UUID) | The invitation row id. Use this to revoke the invitation via Revoke an Invitation. |
data.invitations[].email | string | The email address that was invited. |
data.invitations[].role | string | The role that will be assigned when the invitation is accepted: admin or member. |
data.invitations[].status | string | Pending if the invite link is still valid; Expired if the expiry date has passed without the invite being accepted or revoked. |
data.invitations[].sent_at | string (ISO 8601) or null | When the invite email was dispatched. null if delivery has not been attempted. |
data.invitations[].expires_at | string (ISO 8601) | When the invitation link expires. |
data.invitations[].created_at | string (ISO 8601) | When the invitation record was created. |
metadata.credits | integer | Always 0. |