curl --request GET \
--url 'https://management.scanova.io/multi-users/access-levels/' \
--header 'Authorization: YOUR_API_KEY'
{
"count": 6,
"next": null,
"previous": null,
"results": [
{
"id": 3,
"name": "Viewer",
"slug": "viewer",
"permissions": [
{
"id": 23,
"code": "QR_CODE_CAN_VIEW",
"name": "Can view QR Code",
"description": "Allows viewing QR code details.",
"is_boolean": true
}
],
"is_custom": false
},
{
"id": 4,
"name": "Analyst",
"slug": "analyst",
"permissions": ["..."],
"is_custom": false
},
{
"id": 5,
"name": "Billing Manager",
"slug": "billing-manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 6,
"name": "Manager",
"slug": "manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 7,
"name": "Admin",
"slug": "admin",
"permissions": ["..."],
"is_custom": false
},
{
"id": 8,
"name": "Full Access",
"slug": "full-access",
"permissions": ["..."],
"is_custom": false
}
]
}
Management API — Shared Users & Roles
List roles
GET /multi-users/access-levels/
GET
/
multi-users
/
access-levels
/
curl --request GET \
--url 'https://management.scanova.io/multi-users/access-levels/' \
--header 'Authorization: YOUR_API_KEY'
{
"count": 6,
"next": null,
"previous": null,
"results": [
{
"id": 3,
"name": "Viewer",
"slug": "viewer",
"permissions": [
{
"id": 23,
"code": "QR_CODE_CAN_VIEW",
"name": "Can view QR Code",
"description": "Allows viewing QR code details.",
"is_boolean": true
}
],
"is_custom": false
},
{
"id": 4,
"name": "Analyst",
"slug": "analyst",
"permissions": ["..."],
"is_custom": false
},
{
"id": 5,
"name": "Billing Manager",
"slug": "billing-manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 6,
"name": "Manager",
"slug": "manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 7,
"name": "Admin",
"slug": "admin",
"permissions": ["..."],
"is_custom": false
},
{
"id": 8,
"name": "Full Access",
"slug": "full-access",
"permissions": ["..."],
"is_custom": false
}
]
}
Every shared user is assigned a role — Scanova’s dashboard calls these “access levels” internally, and the same term appears throughout this endpoint. Use this endpoint to look up available roles before inviting a teammate via
Results are paginated (page size 10 by default) and can include custom roles the account has created, alongside the 6 system defaults.
POST /multi-users/, or to create a custom role from your own systems.
This endpoint was not previously documented. It requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota — see the Management API overview. For what each role actually grants a teammate, see the human-facing Roles & permissions guide — this page only documents the wire format.curl --request GET \
--url 'https://management.scanova.io/multi-users/access-levels/' \
--header 'Authorization: YOUR_API_KEY'
{
"count": 6,
"next": null,
"previous": null,
"results": [
{
"id": 3,
"name": "Viewer",
"slug": "viewer",
"permissions": [
{
"id": 23,
"code": "QR_CODE_CAN_VIEW",
"name": "Can view QR Code",
"description": "Allows viewing QR code details.",
"is_boolean": true
}
],
"is_custom": false
},
{
"id": 4,
"name": "Analyst",
"slug": "analyst",
"permissions": ["..."],
"is_custom": false
},
{
"id": 5,
"name": "Billing Manager",
"slug": "billing-manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 6,
"name": "Manager",
"slug": "manager",
"permissions": ["..."],
"is_custom": false
},
{
"id": 7,
"name": "Admin",
"slug": "admin",
"permissions": ["..."],
"is_custom": false
},
{
"id": 8,
"name": "Full Access",
"slug": "full-access",
"permissions": ["..."],
"is_custom": false
}
]
}
Verified live: a fresh account returns exactly these 6 system roles (Viewer, Analyst, Billing Manager, Manager, Admin, Full Access) — matching the Roles & permissions picker in the dashboard’s Invite Users drawer. IDs shown above are illustrative; permission arrays are truncated for brevity in this example — a real response includes every permission the role grants, in full.
string
Filter to
system (the built-in roles, user is null on these) or custom (roles this account created).string
Substring match against the role name.
string
name or -name.Response fields (per role)
integer
Role ID — pass this as
access_level when inviting or updating a shared user.string
Role display name, e.g.
Manager.string | null
Stable slug for system roles (e.g.
manager); null for custom roles.boolean
false for the 6 built-in system roles, true for a role this account created itself.array
Every permission this role grants.
Show permission properties
Show permission properties
integer
Permission ID — pass this in
permissions when creating a custom role below.string
Stable permission code, e.g.
QR_CODE_CAN_VIEW.string
Human-readable permission name.
string
Longer description of what the permission allows.
boolean
Whether this permission is a simple on/off flag (
true) rather than a numeric quota.Related
- Create a custom role — the other operation on this same endpoint.
- Invite a shared user — assign a role ID from this list when inviting or updating a teammate.
- Update a shared user — assign a role ID from this list when inviting or updating a teammate.
- Roles & permissions — the human-facing explanation of what each role grants, including the custom-roles plan gate.
- Shared users — the dashboard’s Users table where these roles are assigned via the UI.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. management.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
200 - application/json
Paginated list of roles, each with its permission set.
Was this page helpful?
⌘I