Create website with AI prompt
curl --request POST \
--url https://api.lindo.ai/v1/ai/workspace/website \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"prompt": "Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme",
"schedule_at": "2026-05-01T09:00:00Z",
"client": {
"client_id": "rec_abc123",
"email": "client@example.com",
"name": "John Doe"
}
}
EOFimport requests
url = "https://api.lindo.ai/v1/ai/workspace/website"
payload = {
"prompt": "Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme",
"schedule_at": "2026-05-01T09:00:00Z",
"client": {
"client_id": "rec_abc123",
"email": "client@example.com",
"name": "John Doe"
}
}
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: 'Create a modern landing page for a coffee shop called \'Bean There\' with a warm color scheme',
schedule_at: '2026-05-01T09:00:00Z',
client: {client_id: 'rec_abc123', email: 'client@example.com', name: 'John Doe'}
})
};
fetch('https://api.lindo.ai/v1/ai/workspace/website', 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",
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' => 'Create a modern landing page for a coffee shop called \'Bean There\' with a warm color scheme',
'schedule_at' => '2026-05-01T09:00:00Z',
'client' => [
'client_id' => 'rec_abc123',
'email' => 'client@example.com',
'name' => 'John Doe'
]
]),
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"
payload := strings.NewReader("{\n \"prompt\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/website")
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\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\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": "Invalid prompt: must be at least 10 characters"
}Workflows
Create website with AI prompt
Starts an AI-driven website creation workflow. Returns a workflow_id you can poll via GET /v1/ai/workspace/website/status/{workflow_id}.
POST
/
v1
/
ai
/
workspace
/
website
Create website with AI prompt
curl --request POST \
--url https://api.lindo.ai/v1/ai/workspace/website \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"prompt": "Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme",
"schedule_at": "2026-05-01T09:00:00Z",
"client": {
"client_id": "rec_abc123",
"email": "client@example.com",
"name": "John Doe"
}
}
EOFimport requests
url = "https://api.lindo.ai/v1/ai/workspace/website"
payload = {
"prompt": "Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme",
"schedule_at": "2026-05-01T09:00:00Z",
"client": {
"client_id": "rec_abc123",
"email": "client@example.com",
"name": "John Doe"
}
}
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: 'Create a modern landing page for a coffee shop called \'Bean There\' with a warm color scheme',
schedule_at: '2026-05-01T09:00:00Z',
client: {client_id: 'rec_abc123', email: 'client@example.com', name: 'John Doe'}
})
};
fetch('https://api.lindo.ai/v1/ai/workspace/website', 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",
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' => 'Create a modern landing page for a coffee shop called \'Bean There\' with a warm color scheme',
'schedule_at' => '2026-05-01T09:00:00Z',
'client' => [
'client_id' => 'rec_abc123',
'email' => 'client@example.com',
'name' => 'John Doe'
]
]),
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"
payload := strings.NewReader("{\n \"prompt\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/website")
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\": \"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme\",\n \"schedule_at\": \"2026-05-01T09:00:00Z\",\n \"client\": {\n \"client_id\": \"rec_abc123\",\n \"email\": \"client@example.com\",\n \"name\": \"John Doe\"\n }\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": "Invalid prompt: must be at least 10 characters"
}Authorizations
Enter your API key (starts with lindo_sk_)
Body
application/json
AI prompt describing the website to create. Include all business data, requirements, and goals here.
Minimum string length:
10Example:
"Create a modern landing page for a coffee shop called 'Bean There' with a warm color scheme"
Optional reference site to clone, enhance, or use for inspiration.
Show child attributes
Show child attributes
Optional ISO 8601 date to schedule the workflow for future execution. Must be in the future.
Example:
"2026-05-01T09:00:00Z"
Optional client to assign the website to. Provide either client_id (existing) or email (lookup or create).
Show child attributes
Show child attributes
Was this page helpful?
⌘I

