Introduction
Stateless REST API for tenant apps and the platform control plane: multi-tenant isolation, Sanctum tokens, RBAC, device registry, and multi-channel push.
Base path: **`/api/v1`**. Browser and mobile clients authenticate with Sanctum Bearer tokens. Integration-enabled routes can instead accept a scoped tenant key.
## Two API surfaces
| Surface | Prefix | Auth | Tenant header |
|---------|--------|------|----------------|
| **Tenant product** | `/api/v1/*` (auth, users, push, …) | Sanctum Bearer from `POST /auth/login` | **`X-Tenant`** required (tenant slug or id) |
| **Platform control plane** | `/api/v1/central/*` | Central operator token from `POST /central/auth/login` | **Do not** send `X-Tenant` |
Public bootstrap routes (`GET /health`, `GET /public/tenants/{slug}`) do not require authentication.
## Headers
| Header | Required | Purpose |
|--------|----------|---------|
| `X-Api-Key` | Integration routes only | Per-tenant integration secret with the route's required ability |
| `X-Tenant` | Tenant routes | Organization slug or id (`demo` in seeded data) |
| `Authorization: Bearer {token}` | Authenticated routes | Sanctum personal access token (tenant or central) |
| `x-access-token` | Optional alt | Same token as Bearer |
| `X-Device-Name` | Recommended | Human label for device / token listing |
| `X-App-Version` | Recommended | Client version for support / targeting |
| `Accept` | Recommended | `application/json` |
## Response envelope
```json
{ "status": "success", "message": "…", "data": {} }
```
Errors use the same shape with `status: "error"` (or Laravel validation under `errors`).
## Tenant auth + device registry
On **`POST /auth/register`** and **`POST /auth/login`**, optional body fields upsert a `device_tokens` row for push audiences:
- `platform` — `web` \| `ios` \| `android`
- `provider` — `webpush` \| `fcm` \| `apns`
- `token` — stable browser client id **or** FCM/APNs push token
- `device_name`, `app_version`
Login returns `user`, a Sanctum `token`, and an optional `device` registry row. Registration creates an unlicensed account and returns no token or device until an administrator grants a seat; clients can then log in and register/update devices via **`POST /devices`**.
**Password recovery:** `POST /auth/forgot-password` then `POST /auth/reset-password` (email link uses `FRONTEND_URL`).
**Email verification:** register sends a link; `POST /auth/email/verify` (id + hash) and authenticated `POST /auth/email/resend`. Login is not blocked until verified. Profile: `PATCH /auth/profile`, password: `PATCH /auth/password`.
**Web push delivery** still needs a browser subscription (`POST /push/subscribe` with VAPID). Device tokens power FCM/APNs delivery when those credentials are set, and always appear in admin recipient pick-lists.
## Admin push broadcast (tenant-scoped)
Permission: `notifications.send`. Requires initialized tenant context (`X-Tenant`). Audiences: `all_users`, `users`, `all_devices`, `devices`. When targeting `users` or `devices`, IDs must belong to the current tenant.
## Platform control plane
Central routes manage tenants, operators, per-tenant database backups, cache flush, legacy host-key configuration status, and ops dashboard tickets (Telescope / Horizon / Pulse). Host operations live under **Central — Host Operations** (`POST /central/cache/flush`, `GET /central/config/api-key`). The host-key endpoint reports only configuration status and a fingerprint; it never returns the secret.
<aside>Code samples for each endpoint appear in the dark panel (language tabs: bash / javascript). The control-plane SPA embeds Swagger UI against <code>/docs/openapi.yaml</code>.</aside>
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_ACCESS_TOKEN}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Tenant routes: obtain a Sanctum token from POST /api/v1/auth/login (with X-Tenant). Registration creates an unlicensed account without a token until an administrator grants a seat.
Central routes: obtain a platform operator token from POST /api/v1/central/auth/login (no X-Tenant).
Send the token as Authorization: Bearer {token} (or x-access-token).
Routes explicitly enabled for machine integrations can use a per-tenant X-Api-Key with the declared ability instead of a Bearer token. The legacy host API_KEY is server-side compatibility only and is not an identity or authorization grant.
Tenant-scoped routes additionally require X-Tenant (slug or id). Optional device headers: X-Device-Name, X-App-Version.
Configuration & System Diagnostics
Health checks and admin configuration. GET /health is unauthenticated beyond API key (mobile bootstrap).
Health Check
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/health" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/health"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (200):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 30120d56-87ac-4795-99cd-ea6ca992af6b
vary: Origin
{
"status": "success",
"message": "Service is healthy.",
"data": {
"status": "operational",
"app": "App Template",
"app_version": "1.0.0",
"version": "1.0.0",
"timestamp": "2026-09-04T13:56:45+00:00",
"server_time": "2026-09-04T13:56:45+00:00",
"services": {
"database": "ok",
"cache": "configured",
"queue": "configured"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Dashboard Telemetry & Stats
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/config/dashboard-stats" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/config/dashboard-stats"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: be14b1c4-15ee-4c50-a83f-8471b1f82a46
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Legal Documents
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/config/legal" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/config/legal"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 0d713ff0-df5c-4e3f-9e8f-06ffc3a0b41b
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Legal Documents
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/config/legal" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"privacy_policy\": \"architecto\",
\"terms_and_conditions\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/config/legal"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"privacy_policy": "architecto",
"terms_and_conditions": "architecto"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Login Branding
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/config/login-branding" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/config/login-branding"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: fccb884f-b3d0-4bf6-bda1-ea6c0cf54146
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Upload Login Background
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/config/login-branding/upload" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--form "image=@/tmp/phpps0ot3gr295c4YPjga6" const url = new URL(
"http://localhost:8000/api/v1/config/login-branding/upload"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
"X-Tenant": "demo",
};
const body = new FormData();
body.append('image', document.querySelector('input[name="image"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Login Background URL
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/config/login-branding" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"login_background_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
"http://localhost:8000/api/v1/config/login-branding"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"login_background_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Remove Login Background
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/config/login-branding" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/config/login-branding"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Public — Organization Lookup
Resolve tenant branding before login. API key only — no Bearer token or X-Tenant header.
Resolve Public Organization
Returns the organization name for a slug or id. Used by tenant login screens.
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/public/tenants/acme" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/public/tenants/acme"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: ce4866de-47aa-45d3-be53-658024a436dd
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Authentication
Platform operator login for the control plane (/central SPA). Tokens use the central Sanctum guard — do not send X-Tenant.
Central Login
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"email\": \"gbailey@example.net\",
\"password\": \"|]|{+-\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"email": "gbailey@example.net",
"password": "|]|{+-"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central Profile
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/auth/me" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/auth/me"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 167f3d54-d851-459d-9277-acf5282e7b5c
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central Logout
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/logout" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/auth/logout"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Dashboard & Activity
Central Dashboard Snapshot
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/dashboard" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/dashboard"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 0f7151b6-59af-4a1b-8172-4124225e6891
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central Activity Log
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/activity" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/activity"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 5bff2f32-4556-490b-84e7-b8e2ce84d8a1
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Tenants & Hierarchy
Provision and manage tenant organizations from the platform control plane.
List Tenants
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"page\": 16,
\"per_page\": 22,
\"search\": \"g\",
\"status\": \"active\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"page": 16,
"per_page": 22,
"search": "g",
"status": "active"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 66729f6d-d9be-4755-b2a6-8d053be2202a
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Tenant
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/tenants" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"slug\": \"b\",
\"name\": \"n\",
\"parent\": \"g\",
\"super_admin\": {
\"name\": \"b\",
\"email\": \"zbailey@example.net\",
\"password\": \"architecto\"
},
\"admin\": {
\"name\": \"n\",
\"email\": \"ashly64@example.com\"
},
\"user_license_limit\": 1
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"slug": "b",
"name": "n",
"parent": "g",
"super_admin": {
"name": "b",
"email": "zbailey@example.net",
"password": "architecto"
},
"admin": {
"name": "n",
"email": "ashly64@example.com"
},
"user_license_limit": 1
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Tenant Hierarchy Tree
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/tree" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/tree"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 92a7a801-c801-4b0b-950c-b70474d3503e
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Show Tenant
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: a98845e7-6826-4321-b0a9-2246955d8406
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Set Tenant Parent
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/central/tenants/acme/parent" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"parent\": \"b\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/parent"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"parent": "b"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Tenant
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/central/tenants/acme" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"slug\": \"b\",
\"name\": \"n\",
\"status\": \"active\",
\"user_license_limit\": 7,
\"api_rate_limit\": 16,
\"allowed_ips\": [
\"m\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"slug": "b",
"name": "n",
"status": "active",
"user_license_limit": 7,
"api_rate_limit": 16,
"allowed_ips": [
"m"
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Tenant
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/central/tenants/acme" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"confirm_slug\": \"b\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"confirm_slug": "b"
};
fetch(url, {
method: "DELETE",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Tenant User
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/central/tenants/acme/users/564" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"is_active\": false,
\"has_license\": true
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/users/564"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"is_active": false,
"has_license": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Impersonate Tenant User
requires authentication
Starts a support session and returns a short-lived tenant Sanctum token.
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/tenants/acme/users/564/impersonate" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/users/564/impersonate"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Tenant Access
Cross-tenant visibility policies and per-user grants.
Show Tenant Access
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme/access" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/access"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 30a9e976-7007-4b34-9d62-becbd813eb42
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Upsert Tenant Access Policy
requires authentication
Example request:
curl --request PUT \
"http://localhost:8000/api/v1/central/tenants/acme/access/policies" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"source\": \"b\",
\"level\": \"monitor\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/access/policies"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"source": "b",
"level": "monitor"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Upsert Tenant Access Grant
requires authentication
Example request:
curl --request PUT \
"http://localhost:8000/api/v1/central/tenants/acme/access/grants" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"source\": \"b\",
\"user_id\": 22,
\"level\": \"monitor\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/access/grants"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"source": "b",
"user_id": 22,
"level": "monitor"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Tenant Access Grant
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/central/tenants/acme/access/grants/564" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/access/grants/564"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Tenant Backups
Per-tenant database dumps stored on the platform host.
List Tenant Backups
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme/backups" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/backups"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 1eee393d-3768-446e-9ecb-b19829c7b816
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Tenant Backup
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/tenants/acme/backups" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/backups"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Download Tenant Backup
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme/backups/db_backup_-.w.zip" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/backups/db_backup_-.w.zip"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 392df036-74b6-4d1c-8fac-bb74ac98ffb5
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Tenant Backup
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/central/tenants/acme/backups/db_backup_-.w.zip" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/backups/db_backup_-.w.zip"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Platform Operators
List Platform Operators
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/operators" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/operators"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 6e941665-ba00-4762-b7e0-f6fc19bdf6c8
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Platform Operator
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/operators" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"email\": \"zbailey@example.net\",
\"password\": \"architecto\",
\"role\": \"platform-super\",
\"is_active\": false
}"
const url = new URL(
"http://localhost:8000/api/v1/central/operators"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"email": "zbailey@example.net",
"password": "architecto",
"role": "platform-super",
"is_active": false
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Platform Operator
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/central/operators/564" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"email\": \"zbailey@example.net\",
\"role\": \"platform-admin\",
\"is_active\": true
}"
const url = new URL(
"http://localhost:8000/api/v1/central/operators/564"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"email": "zbailey@example.net",
"role": "platform-admin",
"is_active": true
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Platform Operator
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/central/operators/564" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/operators/564"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Host Operations
Platform-wide cache operations and legacy API-key configuration status.
Flush Application Cache
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/cache/flush" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/cache/flush"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
API Key Configuration Status
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/config/api-key" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/config/api-key"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: a20b2dca-71ca-4971-bfb0-5d92834ac4a3
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Central — Ops Dashboards
Issue short-lived access tickets for Telescope, Horizon, and Pulse.
Issue Telescope Access Ticket
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/telescope/ticket" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/telescope/ticket"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Issue Horizon Access Ticket
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/horizon/ticket" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/horizon/ticket"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Issue Pulse Access Ticket
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/pulse/ticket" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/pulse/ticket"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Authentication
Endpoints for managing user authentication and access tokens.
User Registration
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/register" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"email\": \"zbailey@example.net\",
\"password\": \"architecto\",
\"device_name\": \"n\",
\"platform\": \"web\",
\"provider\": \"webpush\",
\"token\": \"g\",
\"app_version\": \"z\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/register"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"email": "zbailey@example.net",
"password": "architecto",
"device_name": "n",
"platform": "web",
"provider": "webpush",
"token": "g",
"app_version": "z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Login
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/login" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"email\": \"gbailey@example.net\",
\"password\": \"architecto\",
\"device_name\": \"n\",
\"platform\": \"ios\",
\"provider\": \"apns\",
\"token\": \"g\",
\"app_version\": \"z\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/login"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"email": "gbailey@example.net",
"password": "architecto",
"device_name": "n",
"platform": "ios",
"provider": "apns",
"token": "g",
"app_version": "z"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Forgot Password
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/forgot-password" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"email\": \"gbailey@example.net\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/forgot-password"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"email": "gbailey@example.net"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Reset Password
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/reset-password" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"email\": \"gbailey@example.net\",
\"token\": \"architecto\",
\"password\": \"architecto\",
\"password_confirmation\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/reset-password"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"email": "gbailey@example.net",
"token": "architecto",
"password": "architecto",
"password_confirmation": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Verify Email
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/email/verify" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"id\": 16,
\"hash\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/email/verify"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"id": 16,
"hash": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Details By Access Token
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/auth/user-by-token" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"token\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/user-by-token"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"token": "architecto"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 1fbbaab1-9cc2-422c-8f66-e0c6677a31c8
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Logout
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/logout" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/logout"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Current User Profile
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/auth/me" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/me"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 86381cdc-efce-46f1-afaf-63820d0c47ee
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Profile
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/auth/profile" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"email\": \"zbailey@example.net\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/profile"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"email": "zbailey@example.net"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Resend Email Verification
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/email/resend" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/email/resend"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Change Password
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/auth/password" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"current_password\": \"architecto\",
\"password\": \"architecto\",
\"password_confirmation\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/password"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"current_password": "architecto",
"password": "architecto",
"password_confirmation": "architecto"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Access Tokens
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/auth/tokens" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/tokens"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: c191b570-addf-4b5d-987f-803411fce00c
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Revoke Access Token
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/auth/tokens/architecto" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/tokens/architecto"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Device Registry
Register mobile / web device tokens for multi-channel push (FCM, APNs, Web Push linkage).
List Devices
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/devices" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/devices"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 391a5c6c-3e46-4769-b0f2-5630697c2a79
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Register or Update Device
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/devices" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"platform\": \"ios\",
\"provider\": \"webpush\",
\"token\": \"b\",
\"device_name\": \"n\",
\"app_version\": \"g\"
}"
const url = new URL(
"http://localhost:8000/api/v1/devices"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"platform": "ios",
"provider": "webpush",
"token": "b",
"device_name": "n",
"app_version": "g"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Revoke Device
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/devices" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"token\": \"b\",
\"provider\": \"webpush\"
}"
const url = new URL(
"http://localhost:8000/api/v1/devices"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"token": "b",
"provider": "webpush"
};
fetch(url, {
method: "DELETE",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Push Notifications
Endpoints for browser Web Push subscriptions and multi-channel notification dispatch.
Save Push Subscription
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/push/subscribe" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"endpoint\": \"b\",
\"keys\": {
\"p256dh\": \"architecto\",
\"auth\": \"architecto\"
},
\"content_encoding\": \"aesgcm\"
}"
const url = new URL(
"http://localhost:8000/api/v1/push/subscribe"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"endpoint": "b",
"keys": {
"p256dh": "architecto",
"auth": "architecto"
},
"content_encoding": "aesgcm"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unsubscribe Push Notification
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/push/unsubscribe" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"endpoint\": \"b\"
}"
const url = new URL(
"http://localhost:8000/api/v1/push/unsubscribe"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"endpoint": "b"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Send Push Notification (self)
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/push/send" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"title\": \"b\",
\"body\": \"n\",
\"icon\": \"g\",
\"url\": \"http:\\/\\/www.okuneva.com\\/fugiat-sunt-nihil-accusantium-harum-mollitia.html\",
\"providers\": [
\"apns\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/push/send"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"title": "b",
"body": "n",
"icon": "g",
"url": "http:\/\/www.okuneva.com\/fugiat-sunt-nihil-accusantium-harum-mollitia.html",
"providers": [
"apns"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Broadcast Recipients
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/push/recipients" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/push/recipients"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 7e632972-db17-49c3-8b18-c2a2695726d5
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Broadcast Push Notification
requires authentication
Requires tenant context (X-Tenant) and notifications.send. When audience is users or devices,
the supplied IDs must belong to the current tenant.
Example request:
curl --request POST \
"http://localhost:8000/api/v1/push/broadcast" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"title\": \"b\",
\"body\": \"n\",
\"icon\": \"g\",
\"url\": \"http:\\/\\/www.okuneva.com\\/fugiat-sunt-nihil-accusantium-harum-mollitia.html\",
\"audience\": \"all_devices\",
\"user_ids\": [
16
],
\"device_keys\": [
\"device_642\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/push/broadcast"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"title": "b",
"body": "n",
"icon": "g",
"url": "http:\/\/www.okuneva.com\/fugiat-sunt-nihil-accusantium-harum-mollitia.html",
"audience": "all_devices",
"user_ids": [
16
],
"device_keys": [
"device_642"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Notifications — Inbox
List Inbox Notifications
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/notifications" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"page\": 16,
\"per_page\": 22,
\"unread_only\": 1,
\"category\": \"broadcast\",
\"simple\": 0
}"
const url = new URL(
"http://localhost:8000/api/v1/notifications"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"page": 16,
"per_page": 22,
"unread_only": 1,
"category": "broadcast",
"simple": 0
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 60d9f587-3636-47e1-a1f2-432afccbc3dd
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Unread Notification Count
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/notifications/unread-count" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/notifications/unread-count"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 078b8901-adcf-47b0-a006-a46bf17d7bd6
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Mark All Notifications Read
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/notifications/read-all" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/notifications/read-all"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Sent Broadcast Batches
requires authentication
Requires notifications.send.
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/notifications/sent-batches" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/notifications/sent-batches"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 0d33d9a4-902b-44ac-a790-a79620eb3584
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Mark Notification Read
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/notifications/architecto/read" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/notifications/architecto/read"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
User Management
Endpoints for querying, managing, impersonating, and exporting users.
Export User Data
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/users/export" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"format\": \"xls\"
}"
const url = new URL(
"http://localhost:8000/api/v1/users/export"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"format": "xls"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 2bbc99e6-ff2c-43ba-a9a2-4ed9e51a424b
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Impersonate User
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/users/1/impersonate" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/users/1/impersonate"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Stop Impersonating User
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/users/stop-impersonating" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/users/stop-impersonating"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Users (Filtered & Sorted)
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/users" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"per_page\": 1,
\"filter\": {
\"name\": \"n\",
\"email\": \"ashly64@example.com\"
},
\"sort\": \"v\",
\"include\": \"d\"
}"
const url = new URL(
"http://localhost:8000/api/v1/users"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"per_page": 1,
"filter": {
"name": "n",
"email": "ashly64@example.com"
},
"sort": "v",
"include": "d"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 7760a9e3-cbf7-4d5b-b5b3-5043586c91f3
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get User Details
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/users/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/users/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: ae65eb79-994e-4d1b-8213-054a1e24f4a0
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create User
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/users" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"password\": \"architecto\",
\"is_active\": true,
\"has_license\": false,
\"roles\": [
\"architecto\"
],
\"email\": \"zbailey@example.net\",
\"username\": \"i\"
}"
const url = new URL(
"http://localhost:8000/api/v1/users"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"password": "architecto",
"is_active": true,
"has_license": false,
"roles": [
"architecto"
],
"email": "zbailey@example.net",
"username": "i"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update User
requires authentication
Example request:
curl --request PUT \
"http://localhost:8000/api/v1/users/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"is_active\": false,
\"has_license\": true,
\"roles\": [
\"architecto\"
],
\"email\": \"zbailey@example.net\",
\"username\": \"i\"
}"
const url = new URL(
"http://localhost:8000/api/v1/users/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"is_active": false,
"has_license": true,
"roles": [
"architecto"
],
"email": "zbailey@example.net",
"username": "i"
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update User
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/users/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"is_active\": false,
\"has_license\": true,
\"roles\": [
\"architecto\"
],
\"email\": \"zbailey@example.net\",
\"username\": \"i\"
}"
const url = new URL(
"http://localhost:8000/api/v1/users/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"is_active": false,
"has_license": true,
"roles": [
"architecto"
],
"email": "zbailey@example.net",
"username": "i"
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete User
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/users/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/users/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Restore User
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/users/1/restore" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/users/1/restore"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Role & Permission Management
Endpoints for managing RBAC Roles and Permissions.
List Permissions
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/permissions" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"filter\": {
\"name\": \"b\"
}
}"
const url = new URL(
"http://localhost:8000/api/v1/permissions"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"filter": {
"name": "b"
}
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 0423d3f2-f1c9-4675-86ce-2a6ce1697e98
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Roles
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/roles" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/roles"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: e50301d9-489d-47d0-a9a9-2e013ae06cbc
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get Role Details
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/roles/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/roles/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 3b5842ed-4077-4513-ae66-c09d32d2b53b
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Create Role
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/roles" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"architecto\",
\"display_name\": \"n\",
\"permissions\": [
\"architecto\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/roles"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "architecto",
"display_name": "n",
"permissions": [
"architecto"
]
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Role
requires authentication
Example request:
curl --request PUT \
"http://localhost:8000/api/v1/roles/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"architecto\",
\"display_name\": \"n\",
\"permissions\": [
\"architecto\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/roles/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "architecto",
"display_name": "n",
"permissions": [
"architecto"
]
};
fetch(url, {
method: "PUT",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Update Role
requires authentication
Example request:
curl --request PATCH \
"http://localhost:8000/api/v1/roles/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"architecto\",
\"display_name\": \"n\",
\"permissions\": [
\"architecto\"
]
}"
const url = new URL(
"http://localhost:8000/api/v1/roles/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "architecto",
"display_name": "n",
"permissions": [
"architecto"
]
};
fetch(url, {
method: "PATCH",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Delete Role
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/roles/1" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/roles/1"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Restore Role
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/roles/1/restore" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/roles/1/restore"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Audit Trail & Activity Logs
Endpoints for monitoring administrator and user action audit logs.
Export Activity Logs
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/activity-logs/export" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"format\": \"csv\"
}"
const url = new URL(
"http://localhost:8000/api/v1/activity-logs/export"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"format": "csv"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 1d3231b9-517b-4011-8f78-ee902a4a8245
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
List Activity Logs
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/activity-logs" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"per_page\": 1,
\"filter\": {
\"log_name\": \"n\",
\"description\": \"Animi quos velit et fugiat.\",
\"event\": \"d\",
\"from\": \"2026-09-04T13:56:46\",
\"to\": \"2026-09-04T13:56:46\"
},
\"sort\": \"l\",
\"include\": \"j\"
}"
const url = new URL(
"http://localhost:8000/api/v1/activity-logs"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"per_page": 1,
"filter": {
"log_name": "n",
"description": "Animi quos velit et fugiat.",
"event": "d",
"from": "2026-09-04T13:56:46",
"to": "2026-09-04T13:56:46"
},
"sort": "l",
"include": "j"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 9c9845bb-44f1-4311-b356-3b7d24aee0f3
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Endpoints
POST api/v1/central/auth/two-factor/verify
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/two-factor/verify" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"challenge_token\": \"bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnn\",
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/verify"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"challenge_token": "bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnn",
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/central/auth/two-factor/status
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/auth/two-factor/status" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/status"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 7ff149f4-3e75-4a37-accf-7aed4ecbf6a0
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/auth/two-factor/setup
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/two-factor/setup" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/setup"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/auth/two-factor/confirm
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/two-factor/confirm" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"bngzmi\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/confirm"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "bngzmi"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/auth/two-factor/disable
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/two-factor/disable" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/disable"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/auth/two-factor/recovery-codes
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/auth/two-factor/recovery-codes" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/auth/two-factor/recovery-codes"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/tenants/{tenant}/export
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/tenants/acme/export" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/export"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/central/tenants/{tenant}/exports/{filename}
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme/exports/tenant_export_--..zip" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/exports/tenant_export_--..zip"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: cd146292-8090-486f-9f83-367266af6c3f
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/central/tenants/{tenant}/api-keys
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/central/tenants/acme/api-keys" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/api-keys"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 4ba123a2-25e0-4421-b746-beb163f0e3c3
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/central/tenants/{tenant}/api-keys
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/central/tenants/acme/api-keys" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"name\": \"b\",
\"abilities\": [
\"z_e6zpjx\"
],
\"expires_at\": \"2052-09-28\"
}"
const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/api-keys"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"name": "b",
"abilities": [
"z_e6zpjx"
],
"expires_at": "2052-09-28"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
DELETE api/v1/central/tenants/{tenant}/api-keys/{apiKey}
requires authentication
Example request:
curl --request DELETE \
"http://localhost:8000/api/v1/central/tenants/acme/api-keys/564" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/central/tenants/acme/api-keys/564"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/chat/conversations
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/chat/conversations" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/chat/conversations"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 25fb06bf-c125-4190-a3df-bccc0cb300fc
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/chat/conversations
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/chat/conversations" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"recipient_id\": 16
}"
const url = new URL(
"http://localhost:8000/api/v1/chat/conversations"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"recipient_id": 16
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/chat/conversations/{conversation}/messages
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/chat/conversations/architecto/messages" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"before_id\": 16,
\"since_id\": 39,
\"limit\": 7
}"
const url = new URL(
"http://localhost:8000/api/v1/chat/conversations/architecto/messages"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"before_id": 16,
"since_id": 39,
"limit": 7
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: b76a69fe-8dc8-4ed3-863b-c57df9ae79cb
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/chat/conversations/{conversation}/messages
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/chat/conversations/architecto/messages" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"body\": \"b\"
}"
const url = new URL(
"http://localhost:8000/api/v1/chat/conversations/architecto/messages"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"body": "b"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/chat/conversations/{conversation}/read
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/chat/conversations/architecto/read" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/chat/conversations/architecto/read"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/chat/unread-count
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/chat/unread-count" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/chat/unread-count"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 6957018d-7b20-4165-9958-70c8710e6098
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/chat/users
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/chat/users" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"search\": \"b\"
}"
const url = new URL(
"http://localhost:8000/api/v1/chat/users"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"search": "b"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 3ed52c5a-9925-40ad-bac8-cd8db644cdf1
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Example tenant resource
requires authentication
Accepts either a tenant user's Bearer token or a tenant integration key
with the example.read ability.
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/example" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "X-Api-Key: tk_your_tenant_integration_secret Integration authentication alternative to Bearer." \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/example"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"X-Api-Key": "tk_your_tenant_integration_secret Integration authentication alternative to Bearer.",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 3deebcb1-2cea-4cc5-8b8a-843f33f1c457
vary: Origin
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/auth/two-factor/verify
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/two-factor/verify" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"challenge_token\": \"bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnn\",
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/verify"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"challenge_token": "bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnn",
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET api/v1/auth/two-factor/status
requires authentication
Example request:
curl --request GET \
--get "http://localhost:8000/api/v1/auth/two-factor/status" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/status"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());Example response (503):
Show headers
cache-control: no-store, private
content-type: application/json
x-ratelimit-limit: 60
x-ratelimit-remaining: 59
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
permissions-policy: camera=(), microphone=(), geolocation=()
x-request-id: 5b6adb56-46fa-47c6-a1e4-f0ec4d6cd52d
vary: Origin
{
"status": "error",
"message": "Tenant database is not provisioned.",
"data": null,
"errors": null
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/auth/two-factor/setup
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/two-factor/setup" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo"const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/setup"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
fetch(url, {
method: "POST",
headers,
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/auth/two-factor/confirm
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/two-factor/confirm" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"bngzmi\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/confirm"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "bngzmi"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/auth/two-factor/disable
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/two-factor/disable" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/disable"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST api/v1/auth/two-factor/recovery-codes
requires authentication
Example request:
curl --request POST \
"http://localhost:8000/api/v1/auth/two-factor/recovery-codes" \
--header "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "X-Tenant: demo" \
--data "{
\"code\": \"architecto\"
}"
const url = new URL(
"http://localhost:8000/api/v1/auth/two-factor/recovery-codes"
);
const headers = {
"Authorization": "Bearer {YOUR_ACCESS_TOKEN}",
"Content-Type": "application/json",
"Accept": "application/json",
"X-Tenant": "demo",
};
let body = {
"code": "architecto"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.