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:
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New 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:
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email of the user to invite |
role | string | No | One 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:
| Field | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Human-readable label for the token |
role | string | No | One 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:
| Parameter | Type | Description |
|---|---|---|
action | string | Filter by action (substring match, e.g. session.created) |
user_email | string | Filter by user email (exact match) |
resource_type | string | Filter by resource type (e.g. session, app, test_suite) |
time_range | string | One of last-hour, last-day, last-week, last-month |
limit | int | Max results (default 50, max 200) |
offset | int | Pagination 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:
| Field | Type | Required | Description |
|---|---|---|---|
session_timeout | string | No | Default session timeout |
session_permissions | string | No | Default session permissions |
allow_streaming_overage | boolean | No | Keep streaming past the plan’s included minutes by drawing on usage credit (see Billing) |