Skip to main content
POST
/
v1
/
ai
/
workspace
/
website
/
{website_id}
/
edit
Edit website with AI prompt
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

Authorization
string
header
required

Enter your API key (starts with lindo_sk_)

Path Parameters

website_id
string
required

The ID of the website to edit

Example:

"website_abc123"

Body

application/json
prompt
string
required

AI prompt describing the change to make to the website. Must be at least 10 characters.

Minimum string length: 10
Example:

"Update the hero headline on the home page and add a testimonials section to the about page"

publish
boolean

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").

Example:

false

schedule_at
string

Optional ISO 8601 date to schedule the workflow for future execution.

Example:

"2026-05-01T09:00:00Z"

Response

Workflow started successfully

success
enum<boolean>
required

Indicates the workflow was started successfully

Available options:
true
Example:

true

result
object
required