Sign-ins & sessions
Every sign-in attempt (success, failure, interrupted for two-step sign-in) with where it came from, and the sessions currently signed in. Revoke a session to sign that device out.
| Method | Path | Summary |
|---|---|---|
| GET | /v1/admin/tenant/sign-ins | Search the tenant's sign-in logs |
| GET | /v1/admin/tenant/sign-ins/facets | Filter options for the sign-in log report |
| GET | /v1/admin/tenant/sign-ins/export | Export sign-in logs as CSV |
| GET | /v1/admin/tenant/sign-ins/:id | Get a single sign-in, with the activities done in that session |
| GET | /v1/admin/tenant/sessions | List active Bramble Cloud sessions in this tenant |
| DELETE | /v1/admin/tenant/sessions/:id | Revoke (sign out) one session |
#Search the tenant's sign-in logs
/v1/admin/tenant/sign-insSearch the tenant's sign-in logs. >
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):audit.view.
Query parameters
| Name | Type | Description |
|---|---|---|
limit | integer | |
page | integer |
Response 200
| Field | Type | Description |
|---|---|---|
signIns | array of object | |
signIns[].id | integer | |
signIns[].created_at | string (date-time) | |
signIns[].user_id | integer, or null | |
signIns[].user_email | string, or null | |
signIns[].user_name | string, or null | |
signIns[].status | string: "success" | "failure" | "interrupted" | |
signIns[].failure_code | string, or null | |
signIns[].failure_reason | string, or null | |
signIns[].application | string | |
signIns[].interactive | boolean | |
signIns[].auth_method | string, or null | |
signIns[].mfa_result | string, or null | |
signIns[].ip | string, or null | |
signIns[].country | string, or null | |
signIns[].city | string, or null | |
signIns[].browser | string, or null | |
signIns[].os | string, or null | |
total | integer | |
page | integer | |
limit | integer | |
pages | integer |
Example response
{
"signIns": [
{
"id": 42,
"created_at": "2026-11-12T09:30:00.000Z",
"user_id": 7,
"user_email": "alex@example.com",
"user_name": "Example user name",
"status": "success",
"failure_code": "string",
"failure_reason": "string",
"application": "string",
"interactive": true,
"auth_method": "string",
"mfa_result": "string",
"ip": "192.0.2.10",
"country": "string",
"city": "string",
"browser": "string",
"os": "string"
}
],
"total": 3,
"page": 1,
"limit": 1,
"pages": 1
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins' -Headers $headers#Filter options for the sign-in log report
/v1/admin/tenant/sign-ins/facets- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/facets- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):audit.view.
Response 200
| Field | Type | Description |
|---|---|---|
applications | array of any | |
failureCodes | array of any | |
countries | array of any |
Example response
{
"applications": [],
"failureCodes": [],
"countries": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/facets' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/facets', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/facets",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/facets' -Headers $headers#Export sign-in logs as CSV
/v1/admin/tenant/sign-ins/exportExport sign-in logs as CSV. Requires audit.view. Same filters as GET /admin/tenant/sign-ins; capped at 50,000 rows.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/export- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):audit.view.
Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/export' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/export', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/export",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/export' -Headers $headers#Get a single sign-in, with the activities done in that session
/v1/admin/tenant/sign-ins/:id- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):audit.view.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
signIn | object | |
signIn.id | integer | |
signIn.created_at | string (date-time) | |
signIn.tenant_id | integer, or null | |
signIn.user_id | integer, or null | |
signIn.user_email | string, or null | |
signIn.user_name | string, or null | |
signIn.user_type | string, or null | |
signIn.status | string: "success" | "failure" | "interrupted" | |
signIn.failure_code | string, or null | |
signIn.failure_reason | string, or null | |
signIn.application | string | |
signIn.client_id | string, or null | |
signIn.interactive | boolean | |
signIn.auth_method | string, or null | |
signIn.mfa_result | string, or null | |
signIn.policy_name | string, or null | |
signIn.ip | string, or null | |
signIn.client_reported_ip | string, or null | |
signIn.country | string, or null | |
signIn.region | string, or null | |
signIn.city | string, or null | |
signIn.browser | string, or null | |
signIn.os | string, or null | |
signIn.user_agent | string, or null | |
signIn.session_ref | string, or null | |
sessionActivity | any |
Example response
{
"signIn": {
"id": 42,
"created_at": "2026-11-12T09:30:00.000Z",
"tenant_id": 1,
"user_id": 7,
"user_email": "alex@example.com",
"user_name": "Example user name",
"user_type": "string",
"status": "success",
"failure_code": "string",
"failure_reason": "string",
"application": "string",
"client_id": "string",
"interactive": true,
"auth_method": "string",
"mfa_result": "string",
"policy_name": "Example policy name",
"ip": "192.0.2.10",
"client_reported_ip": "192.0.2.10",
"country": "string",
"region": "string",
"city": "string",
"browser": "string",
"os": "string",
"user_agent": "string",
"session_ref": "string"
},
"sessionActivity": null
}Errors
| Status | Message |
|---|---|
| 404 | Not found |
Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/42' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/42', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sign-ins/42' -Headers $headers#List active Bramble Cloud sessions in this tenant
/v1/admin/tenant/sessionsList active Bramble Cloud sessions in this tenant. Requires audit.view. One row per signed-in browser session. Session IDs themselves are never returned — only a short hashed reference that matches sign-in logs and audit events.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Permission (any of):audit.view.
Query parameters
| Name | Type | Description |
|---|---|---|
user_id | number | |
user | any |
Response 200
| Field | Type | Description |
|---|---|---|
sessions | array of any | |
session_ttl_days | array of any |
Example response
{
"sessions": [],
"session_ttl_days": []
}Example request
curl -X GET 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions', {
method: 'GET',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.get(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method GET -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions' -Headers $headers#Revoke (sign out) one session
/v1/admin/tenant/sessions/:idRevoke (sign out) one session. GLOBAL_ADMIN only. The user's current page keeps working until its short-lived access token expires (≤15 min), then they're asked to sign in again.
- Address
https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions/:id- Requires
- Signed-in session,
X-API-Key, or a Bramble app access token (Authorization: Bearer).
Role:GLOBAL_ADMIN.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer |
Response 200
| Field | Type | Description |
|---|---|---|
success | boolean |
Example response
{
"success": true
}Errors
| Status | Message |
|---|---|
| 404 | Session not found |
Example request
curl -X DELETE 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions/42' \
-H "X-API-Key: $BRAMBLE_KEY"const res = await fetch('https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions/42', {
method: 'DELETE',
headers: { 'X-API-Key': process.env.BRAMBLE_KEY },
});
const data = await res.json();import os, requests
r = requests.delete(
"https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions/42",
headers={"X-API-Key": os.environ["BRAMBLE_KEY"]},
)
r.raise_for_status()
data = r.json()$headers = @{ 'X-API-Key' = $env:BRAMBLE_KEY }
Invoke-RestMethod -Method DELETE -Uri 'https://<your-org>.brambleit.cloud/api/v1/admin/tenant/sessions/42' -Headers $headersWas this page helpful?
Thanks for your feedback.