Organizations
Manage organizations, members, roles, and invitations.
Organizations
Organizations (workspaces) are the top-level container for agents, policies, API keys, and team members. Every user's first organization is auto-created at signup; additional ones can be created from the dashboard.
List Organizations
GET /v1/orgsAuth: JWT (viewer+)
Returns all organizations the authenticated user belongs to.
curl https://api.checkrd.io/v1/orgs \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
{
"organizations": [
{
"id": "01916a3e-...",
"name": "Acme Corp",
"slug": "acme-corp",
"plan_tier": "team"
}
],
"active_org_id": "01916a3e-..."
}Create an Organization
POST /v1/orgsAuth: JWT (any authenticated user)
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Workspace name. |
The creating user becomes the owner. New workspaces start on the free plan and can be upgraded independently. Free users may own up to 5 free workspaces (paid workspaces do not count); additional workspaces are rate-limited to 10 per hour per user. Returns org_count_exceeded or 429 when limits are reached.
List Members
GET /v1/orgs/:org_id/membersAuth: JWT (member+)
curl https://api.checkrd.io/v1/orgs/01916a3e-.../members \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
{
"members": [
{
"id": "...",
"user_id": "...",
"role": "admin",
"email": "alice@company.com",
"user_name": "Alice",
"accepted_at": "2026-04-10T14:30:00Z"
}
]
}Invite a Member
POST /v1/orgs/:org_id/invitationsAuth: JWT (admin+)
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address. |
role | string | Yes | owner, admin, member, or viewer. |
Subject to plan tier member limits (Free: 1, Team: 20, Enterprise: unlimited).
Update Member Role
PUT /v1/orgs/:org_id/members/:member_id/roleAuth: JWT (admin+)
| Parameter | Type | Required | Description |
|---|---|---|---|
role | string | Yes | New role. |
Remove a Member
DELETE /v1/orgs/:org_id/members/:member_idAuth: JWT (admin+)
Returns { "success": true }.
List Pending Invitations
GET /v1/orgs/:org_id/invitationsAuth: JWT (admin+)
Returns the workspace's pending invitations: who, what role, when they were sent, and when they expire.
Revoke an Invitation
POST /v1/orgs/:org_id/invitations/:invitation_id/revokeAuth: JWT (admin+)
Cancels a pending invitation. The invitee's email link stops working immediately.
Response 200 OK: returns the revoked invitation.
Resend an Invitation
POST /v1/orgs/:org_id/invitations/:invitation_id/resendAuth: JWT (admin+)
Re-sends the invitation email and refreshes the expiration window. Useful when the original email was missed or expired.
Response 200 OK: returns the refreshed invitation.
Get Deletion Status
GET /v1/orgs/:org_id/deletion-statusAuth: JWT (member+)
Workspace deletion uses a 30-day soft-delete grace window before permanent purge (GDPR Article 17 lifecycle). This endpoint returns when the workspace was soft-deleted and when the purge job will execute.
{
"deleted_at": "2026-04-12T09:15:00Z",
"purge_at": "2026-05-12T09:15:00Z",
"purged_at": null
}For an active workspace, deleted_at and purge_at are both null.
Expedite Purge
POST /v1/orgs/:org_id/purgeAuth: JWT (owner only)
Sets purge_at = now() so the next scheduled purge run permanently deletes the workspace and all of its data. Used when a legal compliance request can't wait the full 30-day grace window.
Response 200 OK: returns the updated deletion status.