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}/adminsTry it 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: January 25, 2026
PreviousGet Admin Next Update Admin