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.
Grant administrative access to a team member by promoting an existing user. You define exactly which permissions they receive—from read-only access to full control. The user must already exist in your project before they can be added as an admin.
POST /v2/projects/ {project_id} /admins CopyTry it Authorization Bearer Token Required
Path Parameters The unique identifier of the project.
Request Body The unique identifier of the user to promote to admin.
Array of permission strings to grant.
curl -X POST "https://api.botsubscription.com/v2/projects/f47ac10b-58cc-4372-a567-0e02b2c3d479/admins" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_id": "user_123456789",
"permissions": ["users:read", "plans:read", "memberships:read"]
}' const project_id = 'f47ac10b-58cc-4372-a567-0e02b2c3d479' ;
const response = await fetch ( `https://api.botsubscription.com/v2/projects/${ project_id }/admins` , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer YOUR_TOKEN' ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
user_id: 'user_123456789' ,
permissions: [ 'users:read' , 'plans:read' , 'memberships:read' ]
})
});
const data = await response. json (); import requests
project_id = 'f47ac10b-58cc-4372-a567-0e02b2c3d479'
response = requests.post(
f 'https://api.botsubscription.com/v2/projects/ { project_id } /admins' ,
headers = {
'Authorization' : 'Bearer YOUR_TOKEN' ,
'Content-Type' : 'application/json'
},
json = {
'user_id' : 'user_123456789' ,
'permissions' : [ 'users:read' , 'plans:read' , 'memberships:read' ]
}
)
data = response.json() $project_id = 'f47ac10b-58cc-4372-a567-0e02b2c3d479' ;
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL , "https://api.botsubscription.com/v2/projects/{ $project_id }/admins" );
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 ([
'user_id' => 'user_123456789' ,
'permissions' => [ 'users:read' , 'plans:read' , 'memberships:read' ]
]));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER , true );
$response = curl_exec ($ch); Admin added application/json
{
"ok" : true ,
"request_id" : "11111111-1111-1111-1111-111111111111" ,
"method" : "POST" ,
"path" : "/v2/projects/YOUR_PROJECT_ID/admins" ,
"code" : 201 ,
"message" : "Admin added successfully" ,
"data" : {
"user_id" : "123456789012345678" ,
"user_name" : {
"first_name" : "John" ,
"username" : "john_admin"
},
"permissions" : [ "users:read" , "plans:read" , "memberships:read" ]
}
} Invalid request application/json
{
"ok" : false ,
"request_id" : "11111111-1111-1111-1111-111111111111" ,
"method" : "POST" ,
"path" : "/v2/projects/YOUR_PROJECT_ID/admins" ,
"code" : 400 ,
"error" : {
"error_code" : "INVALID_REQUEST" ,
"message" : "Invalid permissions provided"
}
} Admin already exists application/json
{
"ok" : false ,
"request_id" : "11111111-1111-1111-1111-111111111111" ,
"method" : "POST" ,
"path" : "/v2/projects/YOUR_PROJECT_ID/admins" ,
"code" : 409 ,
"error" : {
"error_code" : "CONFLICT" ,
"message" : "User is already an admin."
}
} Last updated: May 28, 2026
PreviousGet Admin Next Update Admin