# Addon catalog ## `POST /api/addons` **Add an addon** Adds a recommended addon. An officer must be signed in. **Request body** Model: {ref}`AddonCreate ` | Field | Type | Required | Description | |---|---|---|---| | `slug` | string | yes | | | `name` | string | yes | | | `summary` | string | yes | | | `version` | string | yes | | | `download_url` | string | yes | | | `homepage_url` | string \| null | no | | | `origin` | {ref}`AddonOrigin ` | no | | **Response `201` — The newly created addon.** Model: {ref}`AddonSchema ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `slug` | string | yes | | | `name` | string | yes | | | `summary` | string | yes | | | `version` | string | yes | | | `download_url` | string | yes | | | `homepage_url` | string \| null | yes | | | `origin` | {ref}`AddonOrigin ` | no | | | `updated_at` | string (date-time) | yes | | ## `DELETE /api/addons/{addon_id}` **Remove an addon** Removes an addon. An officer must be signed in. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `addon_id` | path | string (uuid) | yes | The addon's ID. | **Response `204`** — The addon was removed. ## `PATCH /api/addons/{addon_id}` **Edit an addon** Edits an addon. An officer must be signed in. **Parameters** | Name | In | Type | Required | Description | |---|---|---|---|---| | `addon_id` | path | string (uuid) | yes | The addon's ID. | **Request body** Model: {ref}`AddonUpdate ` | Field | Type | Required | Description | |---|---|---|---| | `name` | string \| null | no | | | `summary` | string \| null | no | | | `version` | string \| null | no | | | `download_url` | string \| null | no | | | `homepage_url` | string \| null | no | | | `origin` | {ref}`AddonOrigin ` \| null | no | | **Response `200` — The updated addon.** Model: {ref}`AddonSchema ` | Field | Type | Required | Description | |---|---|---|---| | `id` | string (uuid) | yes | | | `slug` | string | yes | | | `name` | string | yes | | | `summary` | string | yes | | | `version` | string | yes | | | `download_url` | string | yes | | | `homepage_url` | string \| null | yes | | | `origin` | {ref}`AddonOrigin ` | no | | | `updated_at` | string (date-time) | yes | |