Skip to content
noBSredir

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+

Terminal window
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:

FieldTypeRequiredDescription
emailstringyesEmail address to invite
rolestringnoRole 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 role
  • 402 - Member limit reached for your plan
  • 409 - User is already a member, or invite already pending for this email

GET /workspaces/:wsId/invites

List all pending (unaccepted, unexpired) invites.

Role: admin+

Terminal window
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+

Terminal window
curl -X DELETE https://nobsredir.com/api/workspaces/ws_abc123/invites/inv_abc123 \
-H "X-API-Key: nobs_your_key"

Response 200:

{"ok": true}