Skip to content

Re-assign an installed app

The app_installations.reassign operation: POST /api/v1/app_installations/{id}/reassign in the REST API and the app_installations_reassign tool in the MCP server.

POST/api/v1/app_installations/{id}/reassign

Makes another organization owner or admin the installer of an app: its calls are attributed to them and limited to their access from now on. An installation paused because its installer left resumes, with the same tokens. The new installer must be an org_owner or org_admin of the organization.

At a glance

  • REST: POST /api/v1/app_installations/{id}/reassign
  • MCP tool: app_installations_reassign
  • Operation ID: app_installations.reassign
  • Scope: Organization
  • Permission: agents:admin
  • Risk tier: security
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the agents:admin scope
  • Since: M10

Request

Path parameters

FieldTypeDescription
idains_… ID

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
userIdusr_… IDYes

Response

200 OK with a JSON object:

FieldTypeDescription
idains_… ID
object"app_installation"
orgIdorg_… ID
appobject
app.idocl_… ID
app.namestring
app.publisherstring
app.logoUrlstring or null
app.verifiedboolean
app.statusone of active, disabled
app.suspensionobject or null
installedByusr_… ID
scopesarray of one of 84 values, e.g. org:read, org:write, org:admin (all in the OpenAPI document)
limitToobject
limitTo.entityIdsarray of ent_… ID
limitTo.brandIdsarray of brd_… ID
limitsobject
limits.rpsinteger or null
limits.mutationsPerDayinteger or null
limits.amountLimitsarray of object
limits.amountLimits[].operationIdstring
limits.amountLimits[].perCallmoney or null
limits.amountLimits[].perDaymoney or null
statusone of active, paused, revoked
pausedReasonone of manual, installer_lost_access, platform_suspended, app_disabled or null
pausedAtstring or null
revokedAtstring or null
createdAtstring
updatedAtstring

Examples

Re-assign after the installer left

HTTP
POST /api/v1/app_installations/ains_01m4ttwd3veh9apbewxheq5xhc/reassign
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14
Content-Type: application/json

{
  "userId": "usr_01m4ttwd3veh9apbewxheq5xh7"
}

Response (200):

JSON
{
  "id": "ains_01m4ttwd3veh9apbewxheq5xhc",
  "object": "app_installation",
  "orgId": "org_01m4ttwd3veh9apbewxheq5xh3",
  "app": {
    "id": "ocl_01m4ttwd3veh9apbewxheq5xha",
    "name": "Ledgerly AI",
    "publisher": "Ledgerly AI B.V.",
    "logoUrl": null,
    "verified": true,
    "status": "active",
    "suspension": null
  },
  "installedBy": "usr_01m4ttwd3veh9apbewxheq5xh7",
  "scopes": ["filings:read", "filings:write", "tasks:read", "tasks:write"],
  "limitTo": {
    "entityIds": ["ent_01m4ttwd3veh9apbewxheq5xh4"],
    "brandIds": []
  },
  "limits": {
    "rps": null,
    "mutationsPerDay": null,
    "amountLimits": []
  },
  "status": "active",
  "pausedReason": null,
  "pausedAt": null,
  "revokedAt": null,
  "createdAt": "2026-10-25T09:00:00.000Z",
  "updatedAt": "2026-10-26T14:30:00.000Z"
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400The installation is revoked.Fix the fields listed in details.issues and send the request again.
installer_not_eligible400The person isn't an active org_owner or org_admin of the organization.Re-assign the app to an org_owner or org_admin of this organization.
resource_not_found404No installation with this ID exists in the organization.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
version_conflict409The installation changed at the same moment; retry.Fetch the object again and retry the change.
permission_denied403You can't manage the organization's apps.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, approval_required, approval_rejected, approval_expired, stale_approval, approval_policy_denied, rate_limited, internal_error.