Invites
Invites let you add new members to a workspace via email. Invites expire after 7 days.
POST /workspaces/:wsId/invites
Send an invite email. Creates a pending invite with a unique token.
Role: admin+
curl -X POST https://nobsredir.com/api/workspaces/ws_abc123/invites \ -H "X-API-Key: nobs_your_key" \ -H "Content-Type: application/json" \ -d '{"email": "newmember@example.com", "role": "editor"}'Body:
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address to invite |
role | string | no | Role to assign: owner, admin, editor, viewer. Default: viewer. |
Response 201:
{ "id": "inv_abc123", "email": "newmember@example.com", "role": "editor", "token": "tok_a1b2c3d4e5f6...", "expires_at": "2025-01-27T14:00:00.000Z"}Errors:
400- Invalid email or role402- Member limit reached for your plan409- User is already a member, or invite already pending for this email
GET /workspaces/:wsId/invites
List all pending (unaccepted, unexpired) invites.
Role: admin+
curl https://nobsredir.com/api/workspaces/ws_abc123/invites \ -H "X-API-Key: nobs_your_key"Response 200:
{ "invites": [ { "id": "inv_abc123", "workspace_id": "ws_abc123", "email": "newmember@example.com", "role": "editor", "token": "tok_a1b2c3d4e5f6...", "invited_by": "usr_abc123", "invited_by_email": "owner@example.com", "expires_at": "2025-01-27T14:00:00.000Z", "accepted_at": null, "created_at": "2025-01-20T14:00:00.000Z" } ]}DELETE /workspaces/:wsId/invites/:id
Revoke a pending invite.
Role: admin+
curl -X DELETE https://nobsredir.com/api/workspaces/ws_abc123/invites/inv_abc123 \ -H "X-API-Key: nobs_your_key"Response 200:
{"ok": true}