curl --request GET \
--url https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}', 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/blog/status/{workflow_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}"
req, _ := http.NewRequest("GET", 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.get("https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"done": true,
"status": "complete",
"workflow_id": "wf_abc123xyz789",
"message": "Page published at /about",
"poll_after_ms": 5000,
"result": {
"website_id": "website_def456",
"blog_id": "blog_jkl012",
"slug": "hello-world",
"path": "/blog/hello-world"
},
"error": "Insufficient credits: daily limit reached"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Check status of a blog-creation workflow
Poll the status of a blog-creation workflow started via POST /v1/ai/workspace/website/{website_id}/blog. Returns an agent-friendly envelope with done, status, message, and (when complete) the published result.
curl --request GET \
--url https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}', 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/blog/status/{workflow_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}"
req, _ := http.NewRequest("GET", 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.get("https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lindo.ai/v1/ai/workspace/blog/status/{workflow_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"done": true,
"status": "complete",
"workflow_id": "wf_abc123xyz789",
"message": "Page published at /about",
"poll_after_ms": 5000,
"result": {
"website_id": "website_def456",
"blog_id": "blog_jkl012",
"slug": "hello-world",
"path": "/blog/hello-world"
},
"error": "Insufficient credits: daily limit reached"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"error": "<string>"
}Authorizations
Enter your API key (starts with lindo_sk_)
Path Parameters
The workflow_id returned by the create-blog endpoint
"wf_abc123xyz789"
Response
Status retrieved
The status poll succeeded. This is independent of whether the workflow itself succeeded; check status for that.
true true
True once the workflow has reached a terminal state (complete, partial, or errored). While false, clients should poll again after poll_after_ms.
true
scheduled: queued to run in the futurerunning: currently executingcomplete: fully finished with no errorspartial: finished, but some sub-steps (e.g. individual pages of a website) failederrored: the workflow itself failed
scheduled, running, complete, partial, errored "complete"
The workflow_id you polled
"wf_abc123xyz789"
Human-readable, safe-to-quote status message. Agents can surface this directly to end users.
"Page published at /about"
When done is false, suggested delay before the next status check, in milliseconds. Absent when done is true.
5000
Present once the blog post has been published (status is complete).
Show child attributes
Show child attributes
When status is errored, a machine-readable error message
"Insufficient credits: daily limit reached"
Was this page helpful?

