---
title: "Change Package"
description: "Changes the customer's package assignment."
---

`PATCH /api/customers/:customerPublicId`

This uses the same endpoint as [Update Customer](./update-customer). You usually send `packageId`.
Legacy `packageType` values are still accepted for backward compatibility, but they must resolve to a package the organization actually has: a package key or a package display name. An unknown value is rejected with `400` and `data.code` `invalidPackageType`.

## Authentication

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"
```

## Request Body

```json
{
  "packageId": 12
}
```

## Example Request

```bash
curl -X PATCH "$BASE_URL/api/customers/6bfec6f6-245a-47ce-843b-157d97d56f88" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "packageId": 12
  }'
```

## Example Response

```json
{
  "id": 101,
  "publicId": "6bfec6f6-245a-47ce-843b-157d97d56f88",
  "organizationId": 1,
  "name": "Customer A GmbH",
  "email": "contact@customer-a.de",
  "notificationPhoneNumber": null,
  "notificationEmail": null,
  "packageId": 12,
  "status": "active",
  "monthlyReportsEnabled": true,
  "customFields": {},
  "notificationChannels": null,
  "notificationTargets": null,
  "updatedAt": "2026-02-26T19:37:00.000Z"
}
```

## Common Errors

- `400` Invalid Customer identifier
- `400` Invalid packageId / packageType for this organization (`data.code`: `invalidPackageType`)
- `401` Unauthorized
- `403` Forbidden / Organization ID not found
- `404` Customer not found
- `500` Failed to update customer

