---
title: "Get an extension bundle"
method: GET
path: "/api/extensions/{id}"
tags: ["Extensions"]
---

# Get an extension bundle

`GET /api/extensions/{id}`

## Path parameters

- `id` string, required

## Response `200`

Extension bundle

- object
  - `extension` Extension, required
    - `id` string, required
    - `name` string, required
    - `description` string, required
    - `runtime` 'api' | 'worker', required
    - `manifestJson` string, required
    - `contentHash` string, required
    - `version` integer, required
    - `activeVersion` integer, required
    - `enabled` boolean, required
    - `priority` integer, required
    - `configJson` string, required
    - `status` 'disabled' | 'enabled' | 'error' | 'auto-disabled', required
    - `consecutiveFailures` integer, required
    - `lastError` string, nullable, required
    - `agentId` string, nullable, required
    - `createdByAgentId` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required
  - `manifest` ExtensionManifest, required
    - `$schema` string
    - `name` string, required
    - `description` string, required
    - `version` string, required
    - `runtime` 'api' | 'worker', required
    - `assets` object, required
      - `hooks` string, required
      - `scripts` object[]
        - `name` string, required — Global script name. Must start with `<extension name>-`.
        - `file` string, required — Bundle path of the script source.
        - `description` string, required
        - `intent` string — Defaults to `description`.
      - `schedules` object[]
        - `name` string, required — Schedule name. Must start with `<extension name>-`.
        - `description` string
        - `script` string, required — Name of a script declared in `assets.scripts`.
        - `cronExpression` string
        - `intervalMs` integer
        - `timezone` string
        - `args` object
      - `workflows` object[]
        - `file` string, required — Bundle path of a YAML or JSON workflow file. Its `name` must start with `<extension name>-`.
      - `skills` object[]
        - `dir` string, required — Bundle directory holding SKILL.md and optional files/**. The SKILL.md frontmatter `name` must start with `<extension name>-`.
    - `homepage` string, uri
    - `author` string
  - `files` object, required

## Other responses

- `404` — Extension not found

## Changes

- **2026-09-24** `ad817d2e687d` — 3 breaking, 11 info
  - the `manifest/assets/schedules/items/` response's property type changed from `string` to `object` for status `200`
  - the `manifest/assets/skills/items/` response's property type changed from `string` to `object` for status `200`
  - the `manifest/assets/workflows/items/` response's property type changed from `string` to `object` for status `200`
  - added the optional property `manifest/$schema` to the response with the `200` status
  - …10 more
- **2026-09-16** `3f6e56391f84` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/desplega-ai/apis/agent-swarm-api/changes/api/extensions/:id/get.md)

---

[API](https://skmtc.dev/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.dev/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/desplega-ai/apis/agent-swarm-api/revisions/01e2386c97da?raw)
