curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/request-deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requested_visibility": "public_with_login",
"message": "Ready for the client demo on Friday."
}
'import requests
url = "https://app.base44.com/api/apps/{app_id}/request-deploy"
payload = {
"requested_visibility": "public_with_login",
"message": "Ready for the client demo on Friday."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requested_visibility: 'public_with_login',
message: 'Ready for the client demo on Friday.'
})
};
fetch('https://app.base44.com/api/apps/{app_id}/request-deploy', 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}/request-deploy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'requested_visibility' => 'public_with_login',
'message' => 'Ready for the client demo on Friday.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/request-deploy"
payload := strings.NewReader("{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.base44.com/api/apps/{app_id}/request-deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/request-deploy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}"
response = http.request(request)
puts response.read_body{
"recipients_notified": 2,
"deduped": false
}Request deploy approval
Asks the owners and admins of the app’s workspace to publish the app for you, with the visibility you want. Use it when your workspace’s publishing policy doesn’t let you deploy the app yourself.
Every active owner, and every admin allowed to publish, except you, gets an in-app notification and an email naming the app, the visibility you asked for, and your message. Base44 also records the request as pending until the app is published. The call doesn’t publish anything or check whether you could have published the app yourself.
Repeating the request within 60 seconds notifies no one and returns deduped set to true. After that, the same request notifies the approvers again.
This is limited to 5 requests per minute per app for each workspace’s personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.
curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/request-deploy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"requested_visibility": "public_with_login",
"message": "Ready for the client demo on Friday."
}
'import requests
url = "https://app.base44.com/api/apps/{app_id}/request-deploy"
payload = {
"requested_visibility": "public_with_login",
"message": "Ready for the client demo on Friday."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requested_visibility: 'public_with_login',
message: 'Ready for the client demo on Friday.'
})
};
fetch('https://app.base44.com/api/apps/{app_id}/request-deploy', 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}/request-deploy",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'requested_visibility' => 'public_with_login',
'message' => 'Ready for the client demo on Friday.'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/request-deploy"
payload := strings.NewReader("{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.base44.com/api/apps/{app_id}/request-deploy")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/request-deploy")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"requested_visibility\": \"public_with_login\",\n \"message\": \"Ready for the client demo on Friday.\"\n}"
response = http.request(request)
puts response.read_body{
"recipients_notified": 2,
"deduped": false
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app you want published.
Body
Who you're asking to be able to open the published app. The values are the ones public_settings takes in Update app.
private_with_login, workspace_with_login, public_with_login, public_without_login "public_with_login"
A note to the approvers, up to 1000 characters. It's included in the notification and the email.
1000"Ready for the client demo on Friday."
Response
The approvers were notified, or the request was a repeat.
Was this page helpful?