---
title: "Bulk upgrade managed integrations"
method: POST
path: "/api/fleet/managed_integrations/_upgrade"
tags: ["Fleet managed integrations"]
---

# Bulk upgrade managed integrations

`POST /api/fleet/managed_integrations/_upgrade`

**Spaces method and path for this operation:**

<div><span class="operation-verb post">post</span>&nbsp;<span class="operation-path">/s/{space_id}/api/fleet/managed_integrations/_upgrade</span></div>

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Upgrade multiple managed integrations to their installed package version, migrating each package policy's config onto the new schema. Always returns 200 with a per-policy result array; a missing id, or an id that is not a managed integration, is reported as a per-item failure (`success: false` + `statusCode`) without failing the batch, so valid ids are still upgraded. A successful result means the policy's saved object was upgraded, while the agentless deployment is reconciled asynchronously in the background. Policies already at the installed version are a genuine no-op: they still report `success: true` (calls stay idempotent) but nothing is re-persisted or redeployed. Note: agent-policy-level agentless settings (resources, ownership tags) are not re-derived from the new package version — use the update (PUT) endpoint for those.

## Headers

- `kbn-xsrf` string, required

## Request body

- KibanaHTTPAPIsBulkUpgradeManagedIntegrationsRequest
  - `policyIds` string[], required — IDs of the managed integrations to upgrade to their installed package version.

## Response `200`

Indicates a successful response. Each item reports the per-policy upgrade outcome; inspect every item's `success` flag. A missing id, or an id that is not a managed integration, is reported as a per-item failure (`success: false` + `statusCode`) without failing the batch.

- KibanaHTTPAPIsBulkUpgradeManagedIntegrationResult[]
  - `body` object
    - `message` string, required — Error message when the upgrade failed for this policy.
  - `id` string, required — The ID of the managed integration.
  - `name` string — The name of the managed integration.
  - `statusCode` number — HTTP-like status code when the upgrade failed for this policy.
  - `success` boolean, required — Whether the policy's saved object was upgraded successfully. The live workload is reconciled asynchronously in the background.

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/elastic/apis/kibana-apis.md) · [All operations](https://skmtc.net/elastic/apis/kibana-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elastic/kibana-apis/versions/531c9e2a7d23/schema)
