curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/remix/requirements \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/remix/requirements"
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}/remix/requirements', 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}/remix/requirements",
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}/remix/requirements"
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}/remix/requirements")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/remix/requirements")
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{
"name": "My CRM",
"app_type": "user_app",
"user_description": "A CRM to track leads and deals",
"requires_backend_functions": false,
"app_secret_names": [
"STRIPE_API_KEY",
"OPENAI_API_KEY"
],
"shared_secrets": [
"OPENAI_API_KEY"
],
"is_admin": false
}Get remix requirements
Returns what you need to know before you remix an app: its name and type, the secrets it uses, the ones the remix copies for you, and whether you can remix it with its chat history. The app must be in the workspace your personal access token is scoped to.
A successful response means you pass the remix permission checks on the app. The remix itself can still be refused, when the app’s app_type can’t be remixed, when your role or plan doesn’t let you create another app in the workspace, or when the app is a user_agent app and Superagent is disabled in the workspace. Read-only tokens are refused here too, even though this endpoint doesn’t change anything.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/remix/requirements \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/remix/requirements"
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}/remix/requirements', 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}/remix/requirements",
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}/remix/requirements"
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}/remix/requirements")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/remix/requirements")
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{
"name": "My CRM",
"app_type": "user_app",
"user_description": "A CRM to track leads and deals",
"requires_backend_functions": false,
"app_secret_names": [
"STRIPE_API_KEY",
"OPENAI_API_KEY"
],
"shared_secrets": [
"OPENAI_API_KEY"
],
"is_admin": false
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app to remix.
Response
What remixing the app involves.
What remixing an app involves, before you remix it.
Display name of the app. The remix is named after it with (Copy) appended, except for an approved template, where it takes the name of the approved version.
"My CRM"
Type of the app. Only slide, user_agent, user_app, user_game apps can be remixed.
"user_app"
Description of the app, or null if none was set.
"A CRM to track leads and deals"
Whether the app has deployed backend functions, which the remix copies.
false
Names of the secrets set on the app. The remix doesn't copy their values, except the ones in shared_secrets, so pass the rest in secret_values.
["STRIPE_API_KEY", "OPENAI_API_KEY"]
Names of the secrets the remix copies automatically, values included. Only an approved workspace template shares secrets, and only with members who can edit in the workspace and aren't the app's owner, collaborators, or workspace admins. Empty otherwise.
["OPENAI_API_KEY"]
Whether you are an editor-level collaborator on the app or an admin of its workspace. You can set with_chat_history when this is true, and also when you own the app.
false
Was this page helpful?