---
title: "Delete plan entitlement"
method: DELETE
path: "/api/v1/plans/{planId}/entitlements/{id}"
tags: ["Plan Entitlements"]
---

# Delete plan entitlement

`DELETE /api/v1/plans/{planId}/entitlements/{id}`

Deletes an entitlement from a draft plan.

## Path parameters

- `planId` string, required
- `id` string, required

## Headers

- `X-ACCOUNT-ID` string
- `X-ENVIRONMENT-ID` string

## Response `200`

The deleted plan entitlement object.

- PlanEntitlementResponseDto — Response object
  - `data` union, required
    - object — Feature entitlement response
      - `id` string, required — Unique identifier of the entitlement
      - `description` string, nullable, required — Optional description of the entitlement
      - `isGranted` boolean, required — Whether the entitlement is granted
      - `isCustom` boolean, nullable, required — Whether this is a custom entitlement
      - `order` number, nullable, required — Display order of the entitlement
      - `behavior` 'Increment' | 'Override', required — Entitlement behavior (Increment or Override)
      - `hiddenFromWidgets` string[], required — Widget types where this entitlement is hidden
      - `displayNameOverride` string, nullable, required — Override display name for the entitlement
      - `createdAt` string, date-time, required — Timestamp of when the record was created
      - `updatedAt` string, date-time, required — Timestamp of when the record was last updated
      - `type` 'FEATURE', required — Entitlement type (FEATURE or CREDIT)
      - `usageLimit` number, nullable, required — Usage limit (for feature entitlements)
      - `hasUnlimitedUsage` boolean, nullable, required — Whether usage is unlimited (for feature entitlements)
      - `hasSoftLimit` boolean, nullable, required — Whether the usage limit is a soft limit (for feature entitlements)
      - `resetPeriod` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR', nullable, required — Usage reset period (for feature entitlements)
      - `resetPeriodConfiguration` union, required — Reset period configuration (for feature entitlements)
        - object — Yearly reset configuration
          - `accordingTo` 'SubscriptionStart', required — Reset anchor (SubscriptionStart)
        - object — Monthly reset configuration
          - `accordingTo` 'SubscriptionStart' | 'StartOfTheMonth', required — Reset anchor (SubscriptionStart or StartOfTheMonth)
        - object — Weekly reset configuration
          - `accordingTo` 'SubscriptionStart' | 'EverySunday' | 'EveryMonday' | 'EveryTuesday' | 'EveryWednesday' | 'EveryThursday' | 'EveryFriday' | 'EverySaturday', required — Reset anchor (SubscriptionStart or specific day)
      - `enumValues` string[], nullable, required — Allowed enum values (for feature entitlements)
    - object — Credit entitlement response
      - `id` string, required — Unique identifier of the entitlement
      - `description` string, nullable, required — Optional description of the entitlement
      - `isGranted` boolean, required — Whether the entitlement is granted
      - `isCustom` boolean, nullable, required — Whether this is a custom entitlement
      - `order` number, nullable, required — Display order of the entitlement
      - `behavior` 'Increment' | 'Override', required — Entitlement behavior (Increment or Override)
      - `hiddenFromWidgets` string[], required — Widget types where this entitlement is hidden
      - `displayNameOverride` string, nullable, required — Override display name for the entitlement
      - `createdAt` string, date-time, required — Timestamp of when the record was created
      - `updatedAt` string, date-time, required — Timestamp of when the record was last updated
      - `type` 'CREDIT', required — Entitlement type (FEATURE or CREDIT)
      - `amount` number, nullable, required — Credit amount (for credit entitlements)
      - `cadence` 'MONTH' | 'YEAR', nullable, required — Credit grant cadence (for credit entitlements)
      - `hasSoftLimit` boolean, nullable, required — Whether the credit wallet is soft-limited. When true, getEntitlement returns hasAccess=true past the limit; vendors decide whether to enforce. Defaults to false.
      - `dependencyFeatureId` string, nullable — The feature ID this entitlement depends on (for credit entitlements). The entitlement value will be calculated as: base amount × dependency feature usage limit

## Other responses

- `400` — bad request.
- `401` — User is not authenticated.
- `403` — User is not allowed to access this resource.
- `404` — Plan Entitlement not found.
- `429` — Too many requests.

---

[API](https://skmtc.net/stiggio/apis/stigg-api.md) · [All operations](https://skmtc.net/stiggio/apis/stigg-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stiggio/stigg-api/versions/ffc977f1c07e/schema)
