Pause an autoship profile
Pauses every member until one resume date, so the profile resumes together. The date must be after today and within each member’s bill-date cap.
Requires the subscriptions update permission and an admin, and the
autoship_profiles feature to work for the company. The profile is the
one whose members are exactly subscription_tokens, among the
subscriptions of the customer who owns {token}. An address or card
must be that customer’s. The lifecycle notes credit the admin. Returns
403 naming the failed check in errors.error when the feature is off,
404 when the subscription is not the company’s or a token is not the
customer’s, 409 with meta.code profile_changed when the profile’s
members changed since the client read them, 422 when the change is
refused (the reason is in meta.code), and 401 when unauthenticated.
Responses are not cached.
curl --request POST \
--url https://api.fluid.app/api/subscriptions/{token}/profile/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subscription_tokens": [
"sb_7Qm2VxK9pRtL4wNc8HzJdF",
"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn"
],
"resume_on": "2026-12-14"
}
'import requests
url = "https://api.fluid.app/api/subscriptions/{token}/profile/pause"
payload = {
"subscription_tokens": ["sb_7Qm2VxK9pRtL4wNc8HzJdF", "sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn"],
"resume_on": "2026-12-14"
}
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({
subscription_tokens: ['sb_7Qm2VxK9pRtL4wNc8HzJdF', 'sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn'],
resume_on: '2026-12-14'
})
};
fetch('https://api.fluid.app/api/subscriptions/{token}/profile/pause', 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/subscriptions/{token}/profile/pause",
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([
'subscription_tokens' => [
'sb_7Qm2VxK9pRtL4wNc8HzJdF',
'sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn'
],
'resume_on' => '2026-12-14'
]),
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/subscriptions/{token}/profile/pause"
payload := strings.NewReader("{\n \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\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/subscriptions/{token}/profile/pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/subscriptions/{token}/profile/pause")
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 \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\n}"
response = http.request(request)
puts response.read_body{
"profile": {
"next_bill_date": "2026-12-14",
"billing_interval": 1,
"billing_interval_unit": "month",
"members": [
{
"subscription_token": "sb_7Qm2VxK9pRtL4wNc8HzJdF",
"label": "Dunder Mifflin 20lb Copy Paper",
"status": "paused"
},
{
"subscription_token": "sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn",
"label": "Dunder Mifflin Toner Cartridge",
"status": "paused"
}
]
},
"meta": {
"request_id": "0d6c3f92-8b1e-4a75-9d2c-4f7e1a5b8c30",
"timestamp": "2026-09-30T14:05:22Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"payment_uuid": "<string>",
"error_details": [
{
"code": "<string>",
"field": "<string>",
"payment": "not_attempted",
"message": "<string>"
}
],
"coded_recovery": true
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"payment_uuid": "<string>",
"error_details": [
{
"code": "<string>",
"field": "<string>",
"payment": "not_attempted",
"message": "<string>"
}
],
"coded_recovery": true
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}Authorizations
Bearer token authentication
Path Parameters
A subscription of the customer whose profile changes.
Body
Response
The profile after the change.
The autoship profile after a profile write, or null when skipping one
item leaves fewer than two members together.
The autoship profile this subscription belongs to: the subscriptions that renew as one order and also share a payment method, a plan cadence and a timezone, so they stay together after each shipment. Derived from the subscriptions on every read and never stored.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request POST \
--url https://api.fluid.app/api/subscriptions/{token}/profile/pause \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subscription_tokens": [
"sb_7Qm2VxK9pRtL4wNc8HzJdF",
"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn"
],
"resume_on": "2026-12-14"
}
'import requests
url = "https://api.fluid.app/api/subscriptions/{token}/profile/pause"
payload = {
"subscription_tokens": ["sb_7Qm2VxK9pRtL4wNc8HzJdF", "sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn"],
"resume_on": "2026-12-14"
}
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({
subscription_tokens: ['sb_7Qm2VxK9pRtL4wNc8HzJdF', 'sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn'],
resume_on: '2026-12-14'
})
};
fetch('https://api.fluid.app/api/subscriptions/{token}/profile/pause', 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/subscriptions/{token}/profile/pause",
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([
'subscription_tokens' => [
'sb_7Qm2VxK9pRtL4wNc8HzJdF',
'sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn'
],
'resume_on' => '2026-12-14'
]),
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/subscriptions/{token}/profile/pause"
payload := strings.NewReader("{\n \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\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/subscriptions/{token}/profile/pause")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/subscriptions/{token}/profile/pause")
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 \"subscription_tokens\": [\n \"sb_7Qm2VxK9pRtL4wNc8HzJdF\",\n \"sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn\"\n ],\n \"resume_on\": \"2026-12-14\"\n}"
response = http.request(request)
puts response.read_body{
"profile": {
"next_bill_date": "2026-12-14",
"billing_interval": 1,
"billing_interval_unit": "month",
"members": [
{
"subscription_token": "sb_7Qm2VxK9pRtL4wNc8HzJdF",
"label": "Dunder Mifflin 20lb Copy Paper",
"status": "paused"
},
{
"subscription_token": "sb_4Mw9Tc2Kd7Rx5Hb8Lq3Pn",
"label": "Dunder Mifflin Toner Cartridge",
"status": "paused"
}
]
},
"meta": {
"request_id": "0d6c3f92-8b1e-4a75-9d2c-4f7e1a5b8c30",
"timestamp": "2026-09-30T14:05:22Z"
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"payment_uuid": "<string>",
"error_details": [
{
"code": "<string>",
"field": "<string>",
"payment": "not_attempted",
"message": "<string>"
}
],
"coded_recovery": true
}
}{
"message": "<string>",
"error": "<string>",
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"payment_uuid": "<string>",
"error_details": [
{
"code": "<string>",
"field": "<string>",
"payment": "not_attempted",
"message": "<string>"
}
],
"coded_recovery": true
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}{
"error_message": "<string>",
"errors": "<string>",
"meta": {
"request_id": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>"
}
}