Skip to content

Reference REST API Organizations

Organizations API

Manage organization membership, issue and revoke API tokens, review the audit log, and read or update org-wide session defaults over the REST API.

These endpoints manage your organization: team members and invitations, API tokens, the audit log, and org-wide session defaults. Authentication, error shapes and rate limits are covered in the REST API overview.

List Organizations

List all organizations the authenticated user belongs to.

GET /api/v1/organizations/

Auth: Bearer token required.

Response:

[
  {
    "id": 1,
    "name": "example.com",
    "created_at": "2025-01-15T10:30:00"
  }
]

Get Organization

GET /api/v1/organizations/{org_id}

Auth: Bearer token required. Viewer role or above.

Response:

{
  "id": 1,
  "name": "example.com",
  "created_at": "2025-01-15T10:30:00"
}

Update Organization

PATCH /api/v1/organizations/{org_id}

Auth: Bearer token required. Admin role.

Request body:

FieldTypeRequiredDescription
namestringNoNew organization name

Response:

{
  "id": 1,
  "name": "New Name"
}

Team Members

List Members

GET /api/v1/organizations/{org_id}/members

Auth: Bearer token required. Viewer role or above.

Response:

[
  {
    "id": 1,
    "user_id": 1,
    "email": "admin@example.com",
    "role": "admin",
    "joined_at": "2025-01-15T10:30:00"
  }
]

Invite Member

Creates an email-bound invitation. The invitee receives an email with a link to join; invites expire after 7 days, and re-inviting the same address replaces any outstanding invite.

POST /api/v1/organizations/{org_id}/invites

Auth: Bearer token required. Admin role.

Request body:

FieldTypeRequiredDescription
emailstringYesEmail of the user to invite
rolestringNoOne of admin, developer, viewer. Default: developer

Response:

{
  "token": "xxxxxxxxxxxxxxxxxxxxxxxx",
  "expires_at": "2026-07-10T12:00:00",
  "email": "dev@example.com"
}

Errors:

  • 400 — User is already a member, or the role is invalid.

Remove Member

DELETE /api/v1/organizations/{org_id}/members/{member_id}

Auth: Bearer token required. Admin role.

Response:

{
  "status": "removed"
}

API tokens

API tokens provide programmatic access to the VibeView API. They work the same way as Bearer tokens obtained from login.

List API tokens

GET /api/v1/organizations/{org_id}/api-tokens

Auth: Bearer token required. Developer role or above.

Response:

[
  {
    "id": 1,
    "label": "CI Pipeline",
    "token_prefix": "tok_abc12345****",
    "created_by": "admin@example.com",
    "role": "developer",
    "used": false,
    "created_at": "2025-01-15T10:30:00"
  }
]

Create API token

POST /api/v1/organizations/{org_id}/api-tokens

Auth: Bearer token required. Admin role.

Request body:

FieldTypeRequiredDescription
labelstringYesHuman-readable label for the token
rolestringNoOne of admin, developer, viewer. Default: developer

Response:

{
  "token": "tok_...",
  "id": 1,
  "label": "CI Pipeline"
}

The full token value is only returned once at creation time. Store it securely.

Delete API token

DELETE /api/v1/organizations/{org_id}/api-tokens/{token_id}

Auth: Bearer token required. Admin role.

Response:

{
  "status": "deleted"
}

Audit events

List audit events

GET /api/v1/organizations/{org_id}/audit-events

Auth: Bearer token required. Viewer role or above.

Query parameters:

ParameterTypeDescription
actionstringFilter by action (substring match, e.g. session.created)
user_emailstringFilter by user email (exact match)
resource_typestringFilter by resource type (e.g. session, app, test_suite)
time_rangestringOne of last-hour, last-day, last-week, last-month
limitintMax results (default 50, max 200)
offsetintPagination offset (default 0)

Response:

{
  "total": 150,
  "events": [
    {
      "id": 1,
      "user_email": "admin@example.com",
      "action": "session.created",
      "resource_type": "session",
      "resource_id": "abc-123",
      "details": null,
      "created_at": "2025-01-15T10:30:00"
    }
  ]
}

Export audit events (CSV)

GET /api/v1/organizations/{org_id}/audit-events/csv

Auth: Bearer token required. Viewer role or above.

Returns a CSV file download with columns: Date, User, Action, Resource Type, Resource ID, Details.


Session Defaults

Get Session Defaults

GET /api/v1/organizations/{org_id}/session-defaults

Auth: Bearer token required. Viewer role or above.

Response:

{
  "session_timeout": "30m",
  "session_permissions": "full",
  "allow_streaming_overage": false
}

Update Session Defaults

PATCH /api/v1/organizations/{org_id}/session-defaults

Auth: Bearer token required. Admin role.

Request body:

FieldTypeRequiredDescription
session_timeoutstringNoDefault session timeout
session_permissionsstringNoDefault session permissions
allow_streaming_overagebooleanNoKeep streaming past the plan’s included minutes by drawing on usage credit (see Billing)

Last updated 8 Sep 2026 Something wrong on this page? Tell us

Search the docs