curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris"
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}/oauth-redirect-uris', 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}/oauth-redirect-uris",
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}/oauth-redirect-uris"
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}/oauth-redirect-uris")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris")
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{
"builder_redirect_uri": "https://app.base44.com/api/external-auth/callback",
"app_redirect_uris": [
{
"host": "acme-crm.base44.app",
"is_custom_domain": false,
"uri": "https://acme-crm.base44.app/api/external-auth/callback"
},
{
"host": "crm.acme.com",
"is_custom_domain": true,
"uri": "https://crm.acme.com/api/external-auth/callback"
}
],
"gateway_redirect_uri": "https://connectors.base44.com/api/oauth/callback"
}Get OAuth redirect URIs
Returns the redirect URIs to register in the provider’s console for a workspace connector that uses your own OAuth app, so its connections from this app can complete.
Which ones you need depends on the connector’s uses_oauth_gateway in List workspace connectors:
true: registergateway_redirect_urionly. It stays the same for every app.false: registerbuilder_redirect_uriand everyuriinapp_redirect_uris. The list grows when the app gets a new custom domain, so register the new host’s URI too.
Connectors that run on Base44’s OAuth app need none of these. Anyone who can open the app in the builder can call this, including viewers.
This is limited to 120 requests per minute per caller. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris"
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}/oauth-redirect-uris', 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}/oauth-redirect-uris",
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}/oauth-redirect-uris"
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}/oauth-redirect-uris")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/oauth-redirect-uris")
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{
"builder_redirect_uri": "https://app.base44.com/api/external-auth/callback",
"app_redirect_uris": [
{
"host": "acme-crm.base44.app",
"is_custom_domain": false,
"uri": "https://acme-crm.base44.app/api/external-auth/callback"
},
{
"host": "crm.acme.com",
"is_custom_domain": true,
"uri": "https://crm.acme.com/api/external-auth/callback"
}
],
"gateway_redirect_uri": "https://connectors.base44.com/api/oauth/callback"
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app to get redirect URIs for.
Response
The redirect URIs for the app.
The redirect URIs to register in a workspace connector's own OAuth app for this app.
Redirect URI for connections made while building the app in Base44.
"https://app.base44.com/api/external-auth/callback"
Redirect URIs for connections the app's users make in the published app, one for each host it serves on: Base44 hosts first, then custom domains, each sorted by host. Empty for an app that has no name yet.
Show child attributes
Show child attributes
[
{
"host": "acme-crm.base44.app",
"is_custom_domain": false,
"uri": "https://acme-crm.base44.app/api/external-auth/callback"
},
{
"host": "crm.acme.com",
"is_custom_domain": true,
"uri": "https://crm.acme.com/api/external-auth/callback"
}
]
Single redirect URI that covers every host, for workspace connectors that use the gateway callback. Left out when the gateway callback isn't available to you.
"https://connectors.base44.com/api/oauth/callback"
Was this page helpful?