---
title: Service packs (tenant)
path: reference/api/service-packs
status: published
---

# Service packs (tenant)

**5 endpoints** in this group. All paths are prefixed with `/api/v1`.

## Endpoints in this group

- [`GET /api/v1/packs`](#get-api-v1-packs) — List Packs
- [`POST /api/v1/packs/subscribe`](#post-api-v1-packs-subscribe) — Subscribe Pack
- [`GET /api/v1/packs/subscriptions`](#get-api-v1-packs-subscriptions) — List Pack Subscriptions
- [`POST /api/v1/packs/subscriptions/{pack_subscription_id}/cancel`](#post-api-v1-packs-subscriptions-pack-subscription-id-cancel) — Cancel Pack
- [`GET /api/v1/packs/{slug}`](#get-api-v1-packs-slug) — Get Pack

---

### GET `/api/v1/packs` — List Packs {#get-api-v1-packs}

List all active, public service packs.

**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_list_ServicePackResponse__` — {`data`, `meta`}


### POST `/api/v1/packs/subscribe` — Subscribe Pack {#post-api-v1-packs-subscribe}

Subscribe the current tenant to a service pack.

**Parameters**:

- `authorization` (header, string, optional)


**Body**: `PackSubscribeRequest` — {`pack_slug`}


**Responses**:

- `201` — Successful Response. Returns: `ApiResponse_PackSubscriptionResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### GET `/api/v1/packs/subscriptions` — List Pack Subscriptions {#get-api-v1-packs-subscriptions}

List the current tenant's pack subscriptions.

**Parameters**:

- `authorization` (header, string, optional)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_list_PackSubscriptionResponse__` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### POST `/api/v1/packs/subscriptions/{pack_subscription_id}/cancel` — Cancel Pack {#post-api-v1-packs-subscriptions-pack-subscription-id-cancel}

Cancel a pack subscription and all included service subscriptions.

**Parameters**:

- `pack_subscription_id` (path, string, required)
- `authorization` (header, string, optional)


**Body**: `PackCancelRequest` — {`reason`}


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_PackSubscriptionResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}


### GET `/api/v1/packs/{slug}` — Get Pack {#get-api-v1-packs-slug}

Get a service pack by slug with its included services/plans.

**Parameters**:

- `slug` (path, string, required)


**Responses**:

- `200` — Successful Response. Returns: `ApiResponse_ServicePackResponse_` — {`data`, `meta`}
- `422` — Validation Error. Returns: `HTTPValidationError` — {`detail`}
