Rename a price type
Renames a pricing tier, system or custom. Requires admin tier and pricing_tiers.manage permission.
curl --request PATCH \
--url https://api.fluid.app/api/v2025-06/pricing-tiers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_tier": {
"name": "Paper Club Members"
}
}
'import requests
url = "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}"
payload = { "pricing_tier": { "name": "Paper Club Members" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({pricing_tier: {name: 'Paper Club Members'}})
};
fetch('https://api.fluid.app/api/v2025-06/pricing-tiers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'pricing_tier' => [
'name' => 'Paper Club Members'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}"
payload := strings.NewReader("{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}"
response = http.request(request)
puts response.read_body{
"pricing_tier": {
"id": "0199a8e2-4c17-7b53-9d2e-6f0a3c8b5e14",
"name": "Paper Club Members",
"tier_level": 100,
"system": false,
"archived_at": null,
"member_type_count": 0
},
"status": 200,
"meta": {
"request_id": "f5c2d8b1-6e0a-4739-a4b8-9d1e3c7f2a60",
"timestamp": "2026-09-17T14:30:12Z"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The pricing tier's UUID, scoped to this company.
Body
Show child attributes
Show child attributes
Response
Renamed price type.
A company pricing tier ("Price Type" in the admin UI). Seeded system tiers (Retail, Preferred, Wholesale, ...) are always present and can be renamed but never archived; custom tiers are admin-created and DORMANT -- create is refused with 422 until the company's custom_price_types capability is enabled. Catalogs and member types both reference tiers with restrict_with_error, so archiving (never deleting) is the only removal, and forces reassignment of any member type still pointing at the tier.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.fluid.app/api/v2025-06/pricing-tiers/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_tier": {
"name": "Paper Club Members"
}
}
'import requests
url = "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}"
payload = { "pricing_tier": { "name": "Paper Club Members" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({pricing_tier: {name: 'Paper Club Members'}})
};
fetch('https://api.fluid.app/api/v2025-06/pricing-tiers/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'pricing_tier' => [
'name' => 'Paper Club Members'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}"
payload := strings.NewReader("{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_tier\": {\n \"name\": \"Paper Club Members\"\n }\n}"
response = http.request(request)
puts response.read_body{
"pricing_tier": {
"id": "0199a8e2-4c17-7b53-9d2e-6f0a3c8b5e14",
"name": "Paper Club Members",
"tier_level": 100,
"system": false,
"archived_at": null,
"member_type_count": 0
},
"status": 200,
"meta": {
"request_id": "f5c2d8b1-6e0a-4739-a4b8-9d1e3c7f2a60",
"timestamp": "2026-09-17T14:30:12Z"
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}{
"error": {
"message": "<string>",
"details": {}
},
"status": 123,
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"pagination": {
"cursor": "<string>",
"limit": 123,
"prev_cursor": "<string>",
"next_cursor": "<string>",
"total_count": 123
}
}
}