---
title: "Update Feature"
method: PUT
path: "/api/v1/features/{id}"
tags: ["Features"]
---

# Update Feature

`PUT /api/v1/features/{id}`

## Path parameters

- `id` string, required

## Request body

- object
  - `feature` union, required
    - object
      - `id` string, required
      - `type` 'toggle', required
      - `slug` string
      - `name` string
      - `description` string
      - `amount` unknown
      - `usageMeterId` unknown
      - `renewalFrequency` unknown
      - `pricingModelId` string
      - `resourceId` unknown
      - `active` boolean
    - object
      - `id` string, required
      - `type` 'usage_credit_grant', required
      - `slug` string
      - `name` string
      - `description` string
      - `amount` integer, required — A positive integer
      - `usageMeterId` string, required
      - `renewalFrequency` 'once' | 'every_billing_period', required
      - `pricingModelId` string
      - `resourceId` unknown
      - `active` boolean
    - object
      - `id` string, required
      - `type` 'resource', required
      - `slug` string
      - `name` string
      - `description` string
      - `amount` integer, required — A positive integer
      - `usageMeterId` unknown
      - `renewalFrequency` unknown
      - `pricingModelId` string
      - `resourceId` string, required
      - `active` boolean

## Response `200`

Successful response

- object
  - `feature` union, required
    - object
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `organizationId` string, required
      - `type` 'toggle', required
      - `slug` string, required
      - `name` string, required
      - `description` string, required
      - `amount` unknown
      - `usageMeterId` unknown
      - `renewalFrequency` unknown
      - `pricingModelId` string, required
      - `resourceId` unknown
      - `active` boolean, required
    - object
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `organizationId` string, required
      - `type` 'usage_credit_grant', required
      - `slug` string, required
      - `name` string, required
      - `description` string, required
      - `amount` integer, required — A positive integer
      - `usageMeterId` string, required
      - `renewalFrequency` 'once' | 'every_billing_period', required
      - `pricingModelId` string, required
      - `resourceId` unknown
      - `active` boolean, required
    - object
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `organizationId` string, required
      - `type` 'resource', required
      - `slug` string, required
      - `name` string, required
      - `description` string, required
      - `amount` integer, required — A positive integer
      - `usageMeterId` unknown
      - `renewalFrequency` unknown
      - `pricingModelId` string, required
      - `resourceId` string, required
      - `active` boolean, required

## Other responses

- `400` — Invalid input data
- `401` — Authorization not provided
- `403` — Insufficient access
- `404` — Not found
- `500` — Internal server error

## Changes

- **2026-01-11** `599bbd902d65` — 3 breaking, 3 warning, 7 info
  - the `feature/oneOf[#/components/schemas/ToggleFeatureClientUpdateSchema]/slug` request property's minLength was increased from `0` to `1`
  - the `feature/oneOf[#/components/schemas/UsageCreditGrantFeatureClientUpdateSchema]/slug` request property's minLength was increased from `0` to `1`
  - added `#/components/schemas/ResourceFeatureClientSelectSchema` to the `feature` response property `oneOf` list for the response status `200`
  - the `feature/oneOf[#/components/schemas/UsageCreditGrantFeatureClientUpdateSchema]/amount` request property's exclusiveMinimum was set to `0.00`
  - …9 more
- **2025-10-18** `a1eeb4fac4d6` — 4 breaking, 9 info
  - removed `subschema #1, subschema #2` from the `feature` request property `anyOf` list
  - the `feature` request property type/format changed from ``/`` to `object`/``
  - added `#/components/schemas/ToggleFeatureClientSelectSchema, #/components/schemas/UsageCreditGrantFeatureClientSelectSchema` to the `feature` response property `oneOf` list for the response status `200`
  - the `feature` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - …9 more
- **2025-06-25** `0cf7bce0c17d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/flowglad/apis/flowglad-api/changes/api/v1/features/:id/put.md)

---

[API](https://skmtc.dev/flowglad/apis/flowglad-api.md) · [All operations](https://skmtc.dev/flowglad/apis/flowglad-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flowglad/flowglad-api/revisions/06c4dd78e137/schema)
