---
title: "Update Price"
method: PUT
path: "/api/v1/prices/{id}"
tags: ["Prices"]
---

# Update Price

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

## Path parameters

- `id` string, required

## Request body

- object
  - `price` union, required
    - object
      - `id` string, required
      - `name` string, nullable
      - `type` 'subscription', required
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `active` boolean
      - `slug` string, nullable
    - object
      - `id` string, required
      - `name` string, nullable
      - `type` 'single_payment', required
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `active` boolean
      - `slug` string, nullable
    - object
      - `id` string, required
      - `name` string, nullable
      - `type` 'usage', required
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `active` boolean
      - `slug` string, nullable

## Response `200`

Successful response

- object
  - `price` union, required
    - SubscriptionPriceClientSelectSchema
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `intervalUnit` 'day' | 'week' | 'month' | 'year', required
      - `name` string, nullable, required
      - `intervalCount` integer, required — A positive integer
      - `type` 'subscription', required
      - `trialPeriodDays` union — The trial period in days. If the trial period is 0 or null, there will be no trial period.
        - integer — A positive integer
        - 0
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `unitPrice` union, required — The price per unit. This should be in the smallest unit of the currency. For example, if the currency is USD, GBP, CAD, EUR or SGD, the price should be in cents.
        - integer — A positive integer
        - 0
      - `usageEventsPerUnit` unknown, required
      - `productId` string, required
      - `active` boolean, required
      - `currency` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SOS' | 'SRD' | 'STD' | 'SZL' | 'THB' | 'TJS' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', required — Currency code
      - `slug` string, nullable, required
      - `usageMeterId` unknown, required
      - `pricingModelId` string, required
    - SinglePaymentPriceClientSelectSchema
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `intervalUnit` unknown
      - `name` string, nullable, required
      - `intervalCount` unknown
      - `type` 'single_payment', required
      - `trialPeriodDays` unknown
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `unitPrice` union, required — The price per unit. This should be in the smallest unit of the currency. For example, if the currency is USD, GBP, CAD, EUR or SGD, the price should be in cents.
        - integer — A positive integer
        - 0
      - `usageEventsPerUnit` unknown
      - `productId` string, required
      - `active` boolean, required
      - `currency` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SOS' | 'SRD' | 'STD' | 'SZL' | 'THB' | 'TJS' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', required — Currency code
      - `slug` string, nullable, required
      - `usageMeterId` unknown
      - `pricingModelId` string, required
    - UsagePriceClientSelectSchema
      - `id` string, required
      - `createdAt` integer, required — Epoch milliseconds.
      - `updatedAt` integer, required — Epoch milliseconds.
      - `livemode` boolean, required
      - `intervalUnit` 'day' | 'week' | 'month' | 'year', required
      - `name` string, nullable, required
      - `intervalCount` integer, required — A positive integer
      - `type` 'usage', required
      - `trialPeriodDays` unknown, required
      - `isDefault` boolean, required — Whether or not this price is the default price for the product.
      - `unitPrice` union, required — The price per unit. This should be in the smallest unit of the currency. For example, if the currency is USD, GBP, CAD, EUR or SGD, the price should be in cents.
        - integer — A positive integer
        - 0
      - `usageEventsPerUnit` integer, required — The number of usage events per unit. Used to determine how to map usage events to quantities when raising invoices for usage.
      - `productId` string, required
      - `active` boolean, required
      - `currency` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'ISK' | 'JMD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SEK' | 'SGD' | 'SHP' | 'SLE' | 'SOS' | 'SRD' | 'STD' | 'SZL' | 'THB' | 'TJS' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW', required — Currency code
      - `slug` string, nullable, required
      - `usageMeterId` string, required — The usage meter that uses this price. All usage events on that meter must be associated with a price that is also associated with that usage meter.
      - `pricingModelId` string, 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 info
  - added the required property `price/anyOf[#/components/schemas/SinglePaymentPriceClientSelectSchema]/pricingModelId` to the response with the `200` status
  - added the required property `price/anyOf[#/components/schemas/SubscriptionPriceClientSelectSchema]/pricingModelId` to the response with the `200` status
  - added the required property `price/anyOf[#/components/schemas/UsagePriceClientSelectSchema]/pricingModelId` to the response with the `200` status
- **2025-10-18** `a1eeb4fac4d6` — 2 breaking, 10 info
  - removed `subschema #1, subschema #2, subschema #3` from the `price` request property `anyOf` list
  - the `price` request property type/format changed from ``/`` to `object`/``
  - api operation id `prices-edit` removed and replaced with `prices-update`
  - added discriminator to `price` request property
  - …8 more
- **2025-06-25** `0cf7bce0c17d` — 1 breaking, 3 info
  - removed `subschema #1, subschema #2, subschema #3` from the `price` request property `anyOf` list
  - added `subschema #1, subschema #2, subschema #3` to the `price` request property `anyOf` list
  - added `subschema #1, subschema #2, subschema #3` to the `price` response property `anyOf` list for the response status `200`
  - removed `subschema #1, subschema #2, subschema #3` from the `price` response property `anyOf` list for the response status `200`
- …earlier changes not shown

[Full history](https://skmtc.dev/flowglad/apis/flowglad-api/changes/api/v1/prices/: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/7fcbd2dbf3c1/schema)
