curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/entities/User/{user_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/entities/User/{user_id}"
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}/entities/User/{user_id}', 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}/entities/User/{user_id}",
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}/entities/User/{user_id}"
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}/entities/User/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/entities/User/{user_id}")
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": "6874b0c2e1a94d0031bb77de",
"email": "jane@acme.com",
"full_name": "Jane Cooper",
"role": "user",
"collaborator_role": "editor",
"created_date": "2026-06-01T09:23:41.481000Z",
"updated_date": "2026-06-04T14:07:02.115000Z"
}Get app user
Returns one of the app’s users.
Pass me as user_id to get your own record. Any user of the app can read their own record, by me or by ID. Reading another user’s record needs editor access to the app, and row-level security on the User entity applies to it, so a user the rls read rule hides is reported as not found. Field-level rules on the User entity apply to every record, your own included.
Accounts Base44 added to the app on its own, such as workspace admins and support staff granted access, and the short-lived accounts a test run creates, are reported as not found unless the record is your own.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/entities/User/{user_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/entities/User/{user_id}"
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}/entities/User/{user_id}', 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}/entities/User/{user_id}",
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}/entities/User/{user_id}"
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}/entities/User/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/entities/User/{user_id}")
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": "6874b0c2e1a94d0031bb77de",
"email": "jane@acme.com",
"full_name": "Jane Cooper",
"role": "user",
"collaborator_role": "editor",
"created_date": "2026-06-01T09:23:41.481000Z",
"updated_date": "2026-06-04T14:07:02.115000Z"
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the user, as id in the response of List app users, or me for your own record.
ID of the app the user belongs to.
Response
The user.
One user of an app.
ID of the user.
"6874b0c2e1a94d0031bb77de"
Email the user signs in with.
"jane@acme.com"
The user's name, or null if they haven't given one.
"Jane Cooper"
The user's role in the app. user and admin are built in, and an app can define its own.
"user"
editor when the user can also edit the app in Base44, otherwise null.
"editor""editor"
When the user joined the app, as a UTC timestamp in ISO 8601 format.
"2026-06-01T09:23:41.481000Z"
When the user's record last changed, as a UTC timestamp in ISO 8601 format.
"2026-06-04T14:07:02.115000Z"
Was this page helpful?