curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/users/collaborators \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/users/collaborators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/users/collaborators', 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://app.base44.com/api/apps/{app_id}/users/collaborators",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/users/collaborators"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/users/collaborators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/users/collaborators")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "68b2d4f6a8c0e2f4a6b8c0d2",
"email": "jane@acme.com",
"full_name": "Jane Doe",
"profile_image_url": "https://lh3.googleusercontent.com/a/ACg8ocJ2x",
"profile_slug": "jane-doe",
"is_owner": false,
"is_pending": false,
"is_guest": false,
"collaborator_source": "workspace"
}
]List collaborators
Returns the people who can edit the app in Base44, owner first, then everyone else by email. Invite more with Invite app users and collaborator_role set to editor. The list isn’t paginated.
Guests in the app’s workspace can’t list collaborators. Base44 staff who can edit the app are left out, unless they own it or are a guest in its workspace.
This is limited to 60 requests per minute per app for each workspace’s personal API keys, so every key in a workspace shares one allowance. List collaborators and Remove collaborator share it. Some workspaces have a different limit.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/users/collaborators \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/users/collaborators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/users/collaborators', 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://app.base44.com/api/apps/{app_id}/users/collaborators",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/users/collaborators"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/users/collaborators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/users/collaborators")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "68b2d4f6a8c0e2f4a6b8c0d2",
"email": "jane@acme.com",
"full_name": "Jane Doe",
"profile_image_url": "https://lh3.googleusercontent.com/a/ACg8ocJ2x",
"profile_slug": "jane-doe",
"is_owner": false,
"is_pending": false,
"is_guest": false,
"collaborator_source": "workspace"
}
]Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app whose collaborators to list.
Response
The app's collaborators, owner first.
ID of the collaborator. Pass it to Remove collaborator. The owner's entry can have the ID owner, which isn't a real ID.
"68b2d4f6a8c0e2f4a6b8c0d2"
Email of the collaborator.
"jane@acme.com"
Full name of the collaborator, or null if none is set.
"Jane Doe"
URL of the collaborator's Base44 profile image, or null if they don't have one.
"https://lh3.googleusercontent.com/a/ACg8ocJ2x"
Slug of the collaborator's public Base44 builder profile, or null if they don't have one.
"jane-doe"
Whether the collaborator owns the app.
false
Whether the collaborator was invited but hasn't opened the app in Base44 yet.
false
Whether the collaborator is a guest in the app's workspace rather than a member.
false
workspace when the collaborator joined because the app is open to everyone in its workspace, or null when they were invited.
"workspace""workspace"
Was this page helpful?