curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed', 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}/testing-agent/data/seed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/testing-agent/data/seed"
req, _ := http.NewRequest("POST", 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.post("https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"seeded": {
"Project": 5,
"Task": 3
},
"total": 8,
"generated_total": 3,
"entities_with_data": 2,
"entities_without_prod_data": [
"Task"
],
"entities_with_errors": []
}Seed test data
Fills the app’s test data with sample records for the testing agent to work with. A run on the app’s preview uses test data, and Run test seeds it when such a run starts, so call this only to refresh the test data yourself.
For each entity other than User:
- When the entity has live records, up to 5 copies of them are written to test data, including any personal details they hold. Live data is only read, never changed.
- Otherwise, for up to 5 such entities, AI makes up to 3 records each from the entity’s schema. This is skipped for an entity whose test data has records someone added by hand, and for an entity with no schema fields.
New records replace the ones an earlier seed wrote. Test records someone added by hand are kept.
Copying is free. Making up records costs credits, and the call is refused when it needs to make some up and the workspace is out of credits, though records already copied are kept. It runs while you wait, usually for 20 to 45 seconds and up to a few minutes on an app with many entities, so allow a long timeout. Seeds of one app run one at a time. A call made while another is running waits for it and then usually seeds again, replacing what the first one wrote and charging again for any AI-made records. If the wait runs too long, it gives up and reports no records written.
This is limited to 30 requests per minute per caller for each app. Some workspaces have a different limit.
curl --request POST \
--url https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed', 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}/testing-agent/data/seed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/testing-agent/data/seed"
req, _ := http.NewRequest("POST", 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.post("https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/testing-agent/data/seed")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"seeded": {
"Project": 5,
"Task": 3
},
"total": 8,
"generated_total": 3,
"entities_with_data": 2,
"entities_without_prod_data": [
"Task"
],
"entities_with_errors": []
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app.
Response
What was written into the app's test data.
What a seed wrote into the app's test data.
Records written for each entity, keyed by entity name. 0 when nothing was written.
Show child attributes
Show child attributes
{ "Project": 5, "Task": 3 }
Records written across all entities.
8
How many of the records were made up by AI rather than copied from live data.
3
Entities that got records, or whose own test records were kept.
2
Entities that got nothing copied from live data and didn't report an error. When this call gave up waiting for another seed of the app, every entity is listed.
["Task"]
Entities whose seeding reported an error, for example because generating records timed out. An entity whose record writes all failed isn't listed. Its seeded count is 0.
[]
Was this page helpful?