Skip to main content

Tenants API

The Tenants API manages your organization's settings, team members, API keys, and audit trail. All endpoints require JWT authentication.

Current Tenant

GET /api/tenants/current

Returns the currently active tenant.

Response

{
"data": {
"id": "t_abc123",
"name": "Acme Corp",
"slug": "acme-corp",
"settings": {},
"createdAt": "2024-06-01T00:00:00Z",
"updatedAt": "2025-01-15T12:00:00Z"
}
}

Update Tenant

PATCH /api/tenants/current

Partial update — only provided fields are modified.

Request Body

{
"name": "Acme Corporation",
"settings": { "defaultLocale": "en" }
}

Team Members

List Members

GET /api/tenants/members

Response

{
"data": [
{
"id": "m_abc",
"tenantId": "t_abc123",
"userId": "u_456",
"email": "admin@acme.com",
"role": "OWNER",
"invitedBy": null,
"isPending": false,
"inviteEmailStatus": "SENT",
"inviteResendCount": 0,
"createdAt": "2024-06-01T00:00:00Z",
"updatedAt": "2024-06-01T00:00:00Z"
}
]
}

Invite Member

POST /api/tenants/members

Request Body

{
"email": "editor@acme.com",
"role": "EDITOR"
}

Available roles: OWNER, ADMIN, EDITOR, VIEWER.

Get Member

GET /api/tenants/members/:id

Update Member Role

PATCH /api/tenants/members/:id

OWNER role required.

Request Body

{
"role": "ADMIN"
}

Remove Member

DELETE /api/tenants/members/:id

Resend Invite

POST /api/tenants/members/:id/resend-invite

Maximum of 2 resends per invite.

POST /api/tenants/invites/link

Generates a shareable invite link for a given role.

Request Body

{
"role": "VIEWER"
}

Response

{
"data": { "link": "https://app.breakground.io/invite/token_abc123" }
}

API Keys

List API Keys

GET /api/tenants/api-keys

Response

{
"data": [
{
"id": "key_abc",
"name": "Production SDK",
"keyPrefix": "wfx_a1b2c3",
"tenantId": "t_abc123",
"createdAt": "2025-01-01T00:00:00Z",
"expiresAt": "2026-01-01T00:00:00Z",
"lastUsedAt": "2025-01-20T15:30:00Z"
}
]
}

Create API Key

POST /api/tenants/api-keys

Request Body

{
"name": "Production SDK",
"expiresAt": "2026-01-01T00:00:00Z"
}
FieldTypeRequiredDescription
namestring (1-100)YesDisplay name for the key
expiresAtdatetimeNoExpiration date (no expiration if omitted)

Response201 Created

The full key is returned only once at creation. Store it securely.

{
"data": {
"id": "key_abc",
"name": "Production SDK",
"key": "wfx_a1b2c3d4e5f6...",
"keyPrefix": "wfx_a1b2c3",
"createdAt": "2025-01-01T00:00:00Z",
"expiresAt": "2026-01-01T00:00:00Z"
},
"warning": "Store this key securely. It will not be shown again."
}

Get API Key

GET /api/tenants/api-keys/:id

Returns key metadata (the full key value is never returned after creation).

Revoke API Key

DELETE /api/tenants/api-keys/:id

Permanently revokes the key. Any SDK instances using this key will stop working.

Audit Logs

GET /api/tenants/audit-logs

Returns a paginated audit trail of all actions performed within the tenant.

Response

{
"data": [
{
"id": "log_abc",
"action": "FLOW_PUBLISHED",
"entityType": "flow",
"entityId": "flow_abc",
"actorId": "u_456",
"ipAddress": "192.168.1.1",
"metadata": {},
"createdAt": "2025-01-20T14:30:00Z"
}
],
"meta": { "total": 500, "page": 1, "limit": 20, "totalPages": 25 }
}

Audit Log Actions

CategoryActions
AuthUSER_LOGIN, USER_LOGOUT
FlowsFLOW_CREATED, FLOW_UPDATED, FLOW_PUBLISHED, FLOW_ARCHIVED
ContentCONTENT_CREATED, CONTENT_UPDATED, CONTENT_ARCHIVED
AudiencesAUDIENCE_CREATED, AUDIENCE_UPDATED, AUDIENCE_DELETED
JourneysJOURNEY_CREATED, JOURNEY_UPDATED, JOURNEY_PUBLISHED, JOURNEY_PAUSED, JOURNEY_ARCHIVED
ExperimentsEXPERIMENT_CREATED, EXPERIMENT_UPDATED, EXPERIMENT_STARTED, EXPERIMENT_STOPPED, EXPERIMENT_ARCHIVED
TeamMEMBER_INVITED, MEMBER_REMOVED, MEMBER_ROLE_CHANGED
API KeysAPI_KEY_CREATED, API_KEY_REVOKED
SettingsTENANT_SETTINGS_UPDATED
AIAI_CONFIG_CREATED, AI_CONFIG_UPDATED, AI_CONFIG_DELETED