Archive a price type
Archives a pricing tier. Refused for system tiers (Retail, Preferred, Wholesale, …). When member types (including archived ones) are still assigned to the tier, refused unless reassign_to_pricing_tier_id names another active tier of this company to re-point them at first; the response lists the assigned member types. Requires admin tier and pricing_tiers.manage permission.
curl --request POST \
--url https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_tier": {
"reassign_to_pricing_tier_id": "0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069"
}
}
'import requests
url = "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive"
payload = { "pricing_tier": { "reassign_to_pricing_tier_id": "0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pricing_tier: {reassign_to_pricing_tier_id: '0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069'}
})
};
fetch('https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive', 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}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pricing_tier' => [
'reassign_to_pricing_tier_id' => '0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069'
]
]),
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}/archive"
payload := strings.NewReader("{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\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": "2026-09-25T10:15:48Z",
"member_type_count": 0
},
"status": 200,
"meta": {
"request_id": "0d7a3f9c-1b56-4e82-9c04-a8e5d2b6f391",
"timestamp": "2026-09-25T10:15:48Z"
}
}{
"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
Archived 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 POST \
--url https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricing_tier": {
"reassign_to_pricing_tier_id": "0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069"
}
}
'import requests
url = "https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive"
payload = { "pricing_tier": { "reassign_to_pricing_tier_id": "0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pricing_tier: {reassign_to_pricing_tier_id: '0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069'}
})
};
fetch('https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive', 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}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pricing_tier' => [
'reassign_to_pricing_tier_id' => '0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069'
]
]),
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}/archive"
payload := strings.NewReader("{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v2025-06/pricing-tiers/{id}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pricing_tier\": {\n \"reassign_to_pricing_tier_id\": \"0192a4c1-7e2b-7e9a-a3c7-81d4f5b2e069\"\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": "2026-09-25T10:15:48Z",
"member_type_count": 0
},
"status": 200,
"meta": {
"request_id": "0d7a3f9c-1b56-4e82-9c04-a8e5d2b6f391",
"timestamp": "2026-09-25T10:15:48Z"
}
}{
"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
}
}
}