curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/virality/start \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/virality/start"
headers = {"api_key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/virality/start', 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}/virality/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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}/virality/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("api_key", "<api-key>")
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}/virality/start")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/virality/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"questions": [
{
"id": "goal",
"question": "What does success look like for this app?",
"type": "select",
"options": [
{
"label": "Get the first 100 users",
"description": "Focus on early adopters who give feedback"
}
],
"placeholder": "https://x.com/yourhandle"
}
],
"analysis_text": "A CRM for freelancers who want to track leads without a spreadsheet."
}Start social content flow
Starts the social content flow for an app. Base44 reads the app, returns a one-sentence analysis of it, and asks 2 or 3 questions whose answers shape the content strategy.
Answer them with Submit answers. Calling this endpoint again restarts the flow. It discards any answers, strategy, and content plan already stored for the app. It fails with a 409 while a content plan is generating, so reset or finish that first.
This endpoint calls a language model, so expect it to take a few seconds. It shares a limit of 15 requests per minute with the other social content endpoints, except Get social content state and Generate a post image, which have their own.
id and type off each question rather than assuming a fixed set.curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/virality/start \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/virality/start"
headers = {"api_key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/virality/start', 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}/virality/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$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}/virality/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("api_key", "<api-key>")
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}/virality/start")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/virality/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"questions": [
{
"id": "goal",
"question": "What does success look like for this app?",
"type": "select",
"options": [
{
"label": "Get the first 100 users",
"description": "Focus on early adopters who give feedback"
}
],
"placeholder": "https://x.com/yourhandle"
}
],
"analysis_text": "A CRM for freelancers who want to track leads without a spreadsheet."
}Authorizations
Personal API key.
Path Parameters
ID of the app.
Response
Successful Response
The opening analysis of an app and the questions it raised.
Questions to answer before a strategy is generated. Usually 2 or 3, with a social profile question last.
Show child attributes
Show child attributes
One-sentence analysis of the app, to show above the questions.
"A CRM for freelancers who want to track leads without a spreadsheet."
Was this page helpful?