Skip to main content

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:

ParameterTypeDescription
idstringIntegration 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:

ParameterTypeDescription
idstringIntegration ID or slug
principalIdstringPrincipal 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:

ParameterTypeDescription
idstringIntegration ID or slug
principalIdstringPrincipal ID to share with

Request Body:

FieldTypeDefaultDescription
accessLevelinteger1Access 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:

ParameterTypeDescription
idstringIntegration ID or slug
principalIdstringPrincipal ID to unshare

Response:

204 No Content


GET /api/integrations/{id}/owner

Get the integration owner principal.

Authentication: Required

Path Parameters:

ParameterTypeDescription
idstringIntegration 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:

ParameterTypeDescription
idstringIntegration ID or slug

Request Body:

Accepts a principal lookup payload. Use one of:

FieldTypeDescription
userIdstringUsername of the new owner
teamIdstringTeam ID of the new owner

Example (transfer to user):

{
"userId": "jdoe"
}

Example (transfer to team):

{
"teamId": "engineering"
}

Response:

200 OK with updated integration