curl --request POST \
--url https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "Update the hero headline on the home page and add a testimonials section to the about page",
"publish": false,
"schedule_at": "2026-05-01T09:00:00Z"
}
'import requests
url = "https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit"
payload = {
"prompt": "Update the hero headline on the home page and add a testimonials section to the about page",
"publish": False,
"schedule_at": "2026-05-01T09:00:00Z"
}
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({
prompt: 'Update the hero headline on the home page and add a testimonials section to the about page',
publish: false,
schedule_at: '2026-05-01T09:00:00Z'
})
};
fetch('https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit', 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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit",
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([
'prompt' => 'Update the hero headline on the home page and add a testimonials section to the about page',
'publish' => false,
'schedule_at' => '2026-05-01T09:00:00Z'
]),
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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit"
payload := strings.NewReader("{\n \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit")
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 \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"workflow_id": "wf_abc123xyz789",
"website_id": "webWD4bkJrgKERaOAvh"
}
}{
"success": false,
"error": "Invalid prompt: must be at least 10 characters"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "Invalid prompt: must be at least 10 characters"
}Edit website with AI prompt
Starts an AI-driven edit workflow on an existing website. The agent wakes up in a sandbox, edits the site (across its pages) per the prompt, and publishes the changes. Requires website ownership verification. Returns a workflow_id you can poll via GET /v1/ai/workspace/website/edit/status/{workflow_id}.
curl --request POST \
--url https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "Update the hero headline on the home page and add a testimonials section to the about page",
"publish": false,
"schedule_at": "2026-05-01T09:00:00Z"
}
'import requests
url = "https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit"
payload = {
"prompt": "Update the hero headline on the home page and add a testimonials section to the about page",
"publish": False,
"schedule_at": "2026-05-01T09:00:00Z"
}
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({
prompt: 'Update the hero headline on the home page and add a testimonials section to the about page',
publish: false,
schedule_at: '2026-05-01T09:00:00Z'
})
};
fetch('https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit', 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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit",
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([
'prompt' => 'Update the hero headline on the home page and add a testimonials section to the about page',
'publish' => false,
'schedule_at' => '2026-05-01T09:00:00Z'
]),
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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit"
payload := strings.NewReader("{\n \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\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://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/website/{website_id}/edit")
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 \"prompt\": \"Update the hero headline on the home page and add a testimonials section to the about page\",\n \"publish\": false,\n \"schedule_at\": \"2026-05-01T09:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"workflow_id": "wf_abc123xyz789",
"website_id": "webWD4bkJrgKERaOAvh"
}
}{
"success": false,
"error": "Invalid prompt: must be at least 10 characters"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "Invalid prompt: must be at least 10 characters"
}Authorizations
Enter your API key (starts with lindo_sk_)
Path Parameters
The ID of the website to edit
"website_abc123"
Body
AI prompt describing the change to make to the website. Must be at least 10 characters.
10"Update the hero headline on the home page and add a testimonials section to the about page"
When true, the edited page(s) are published to the live website. When false or omitted, the changes are saved as drafts that can be reviewed and published from the editor ("Publish all").
false
Optional ISO 8601 date to schedule the workflow for future execution.
"2026-05-01T09:00:00Z"
Was this page helpful?

