api.botsubscription.com
GET /v1/endpoint
Authentication Bearer
Token
Stays in this tab. Required for this endpoint — the value below is what gets sent.
Request GET Response —
cURL Node Python PHP Go Ruby
Copy curl --request GET \
--url https://api.botsubscription.com/v1/endpoint \
--header 'Authorization: Bearer sk_live_•••'— — · — · —
Response will appear here.
Move an existing membership for a specific plan from one user to another—useful when a customer changes their account, or support needs to correct a purchase made under the wrong identity.
POST /v2/projects/ {project_id} /memberships/ {user_id} / {plan_id} /transfer CopyTry it Authorization Bearer Token Required
Requires the memberships:update permission.
Path Parameters The unique identifier of the project.
The source user currently holding the membership.
The plan UUID whose membership should be transferred.
Request Body The user the membership should be transferred to.
curl -X POST "https://api.botsubscription.com/v2/projects/YOUR_PROJECT_ID/memberships/123456789012345678/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/transfer" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"to_user_id": "987654321098765432"
}' const project_id = 'YOUR_PROJECT_ID' ;
const user_id = '123456789012345678' ;
const plan_id = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' ;
const response = await fetch ( `https://api.botsubscription.com/v2/projects/${ project_id }/memberships/${ user_id }/${ plan_id }/transfer` , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_TOKEN' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
to_user_id: '987654321098765432'
})
});
const data = await response. json (); import requests
project_id = 'YOUR_PROJECT_ID'
user_id = '123456789012345678'
plan_id = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
response = requests.post(
f 'https://api.botsubscription.com/v2/projects/ { project_id } /memberships/ { user_id } / { plan_id } /transfer' ,
headers = {
'Authorization' : 'Bearer YOUR_TOKEN' ,
'Content-Type' : 'application/json'
},
json = {
'to_user_id' : '987654321098765432'
}
)
data = response.json() $project_id = 'YOUR_PROJECT_ID' ;
$user_id = '123456789012345678' ;
$plan_id = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa' ;
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL , "https://api.botsubscription.com/v2/projects/{ $project_id }/memberships/{ $user_id }/{ $plan_id }/transfer" );
curl_setopt ($ch, CURLOPT_POST , true );
curl_setopt ($ch, CURLOPT_HTTPHEADER , [
'Authorization: Bearer YOUR_TOKEN' ,
'Content-Type: application/json'
]);
curl_setopt ($ch, CURLOPT_POSTFIELDS , json_encode ([
'to_user_id' => '987654321098765432'
]));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER , true );
$response = curl_exec ($ch); Membership transferred application/json
{
"ok" : true ,
"request_id" : "11111111-1111-1111-1111-111111111111" ,
"method" : "POST" ,
"path" : "/v2/projects/YOUR_PROJECT_ID/memberships/123456789012345678/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/transfer" ,
"code" : 200 ,
"data" : {
"membership_id" : "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" ,
"plan_id" : "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" ,
"user_id" : "987654321098765432" ,
"membership_start_date" : "2025-12-29T10:32:27.560Z" ,
"membership_end_date" : "2026-01-12T10:32:27.560Z"
}
} No matching membership for the source user and plan application/json
{
"ok" : false ,
"request_id" : "11111111-1111-1111-1111-111111111111" ,
"method" : "POST" ,
"path" : "/v2/projects/YOUR_PROJECT_ID/memberships/123456789012345678/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/transfer" ,
"code" : 404 ,
"error" : {
"error_code" : "NOT_FOUND" ,
"message" : "Membership not found"
}
} Last updated: August 31, 2026
PreviousExtend User Membership Next List API Keys