Sharing & Ownership
Manage integration access control with user/team sharing and ownership transfer.
GET /api/integrations/{id}/shares
List all shares for an integration with principal details and access levels.
Authentication: Required
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
Response:
{
"_links": {
"self": { "href": "/api/integrations/{id}/shares" }
},
"_embedded": {
"inf:integration-share": [
{
"integrationId": "abc-123",
"principalId": "team:analytics",
"accessLevel": 1,
"principal": {
"id": "team:analytics",
"name": "Analytics Team",
"type": "team"
}
}
]
}
}
GET /api/integrations/{id}/shares/{principalId}
Get a specific share for an integration.
Authentication: Required
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
principalId | string | Principal ID (user or team) |
Response:
{
"integrationId": "abc-123",
"principalId": "team:analytics",
"accessLevel": 1,
"createdAt": "2026-01-15T09:00:00.000Z",
"updatedAt": "2026-01-15T09:00:00.000Z"
}
PUT /api/integrations/{id}/shares/{principalId}
Share an integration with a user or team.
Authentication: Required
Permissions: Requires integration:share permission
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
principalId | string | Principal ID to share with |
Request Body:
| Field | Type | Default | Description |
|---|---|---|---|
accessLevel | integer | 1 | Access level (must be > 0; use DELETE to revoke) |
Response:
200 OK with upserted share record
DELETE /api/integrations/{id}/shares/{principalId}
Remove a share (revoke access) for a specific principal.
Authentication: Required
Permissions: Requires integration:share permission
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
principalId | string | Principal ID to unshare |
Response:
204 No Content
GET /api/integrations/{id}/owner
Get the integration owner principal.
Authentication: Required
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
Response (user owner):
{
"id": "user:admin",
"_embedded": {
"inf:user": {
"username": "admin",
"displayName": "Admin User"
}
}
}
Response (team owner):
{
"id": "team:analytics",
"_embedded": {
"inf:team": {
"id": "analytics",
"name": "Analytics Team"
}
}
}
PUT /api/integrations/{id}/owner
Transfer integration ownership to a different user or team.
Authentication: Required
Permissions: Requires integration:changeOwner permission (Admin role). When transferring to a team, also requires integration:changeOwnerToTeam (Data Wizard role in target team).
Path Parameters:
| Parameter | Type | Description |
|---|---|---|
id | string | Integration ID or slug |
Request Body:
Accepts a principal lookup payload. Use one of:
| Field | Type | Description |
|---|---|---|
userId | string | Username of the new owner |
teamId | string | Team ID of the new owner |
Example (transfer to user):
{
"userId": "jdoe"
}
Example (transfer to team):
{
"teamId": "engineering"
}
Response:
200 OK with updated integration