Sharing & Management API
Programmatic dashboard sharing and user management
Manage dashboards, share resources, and control user access programmatically.
Authentication
All endpoints require a JWT token in the Authorization header:
See Authentication for token generation.
Base URL
Sharing Dashboards
Grant Access
Share a dashboard with users or groups.
Request:
Scope options:
specific_tenant_user- Share with one tenant user (requirestenantUserId)all_tenant_users- Share with all users in a tenant (requirestenantId)specific_org_user- Share with one org user (requiresorgUserId)all_org_users- Share with all org usersorg_users_only- Share with org users only (excludes tenants)all_tenants_only- Share with all tenants (excludes org users)group- Share with a group (requiresgroupId)
Access Levels:
The role field grants permissions for this specific dashboard:
VIEWER- View and interact onlyEDITOR- View and modifyCONTRIBUTOR- View, modify, and shareOWNER- Full control including delete
Important: User roles set the ceiling. Access levels grant or restrict permissions within that ceiling.
Examples:
POWER_USER+EDITORaccess = ✅ Can edit (access grants permission)POWER_USER+VIEWERaccess = ❌ View only (access restricts below role ceiling)VIEWERrole +EDITORaccess = ❌ View only (role blocks entirely)
Use case: Grant users POWER_USER role so they can create dashboards, then share sensitive dashboards with VIEWER access to restrict editing while maintaining their creation privileges.
Response:
Revoke Access
Uses the same request format as granting access. Specify the exact scope to revoke.
List Shares
Returns all current access permissions organized by type (direct users, groups, tenant-wide, etc.).
Dashboard Management
List Dashboards
Query params:
search- Filter by title/descriptionisPrivate- Filter by privacycreatedBy- Filter by creator
Create Dashboard
Returns 403 if user role doesn't allow creation.
Update Dashboard
Include only the fields you want to change:
Delete Dashboard
Requires OWNER access level.
Duplicate Dashboard
Optional: provide a title in the request body. Otherwise, appends "(Copy)" to the original title.
Visual Management
Visuals use the same endpoints as dashboards, just replace /dashboards with /visuals:
Groups
List Groups
Query params:
search- Search by nametype-ORG_GROUP,TENANT_GROUP, oralltenantId- Filter by tenantincludeMembers- Include member detailspage,limit- Pagination
Create Group
Organization users only.
Add Members
Remove Member
Users
List Users
Query params:
search- Name or emailtype-organizationortenanttenantId- Filter by tenant
Get User Context
Returns user details and computed permissions:
Understanding Permissions
Semaphor has two permission layers:
User Roles (platform-wide - sets the ceiling):
VIEWER- Read-only across the platform (cannot edit anything)POWER_USER- Can create and edit dashboards (tenant users)AUTHOR- Can create and edit dashboards across tenants (org users)ADMIN- Full platform access (org users)
Access Levels (per-dashboard - grants permissions):
VIEWER,EDITOR,CONTRIBUTOR,OWNER
Your user role is the ceiling. Access levels can grant or restrict permissions on specific dashboards, but can't exceed the role ceiling.
How it works:
POWER_USER+EDITORaccess = ✅ Can edit (access grants permission)POWER_USER+VIEWERaccess = ❌ View only (access restricts below ceiling)VIEWERrole +EDITORaccess = ❌ View only (role blocks entirely)
Permission Matrix
| Action | Tenant VIEWER | Tenant POWER_USER | Org AUTHOR/ADMIN |
|---|---|---|---|
| View shared dashboards | ✓ | ✓ | ✓ |
| Create dashboards | ✗ | ✓ | ✓ |
| Edit dashboards | ✗ | ✓ (owned or EDITOR+ access) | ✓ (owned or EDITOR+ access) |
| Share dashboards | ✗ | ✓ (owned or CONTRIBUTOR+ access) | ✓ (owned or CONTRIBUTOR+ access) |
| Delete dashboards | ✗ | ✓ (owned or OWNER access) | ✓ (owned or OWNER access) |
| Manage groups | ✗ | ✗ | ✓ |
Error Responses
Standard HTTP codes:
200- Success201- Created400- Bad request (validation error)401- Unauthorized (missing/invalid token)403- Forbidden (insufficient permissions)404- Not found500- Server error
All errors return:
Code Examples
Share a Dashboard
Create Group and Add Members
Python Client
Related Docs
- Sharing & Collaboration - User guide
- Authentication - Token generation
- Security - Multi-tenancy patterns