curl --request GET \
--url https://api.athenahq.ai/api/v1/response-streaming/status \
--header 'x-api-key: <api-key>'import requests
url = "https://api.athenahq.ai/api/v1/response-streaming/status"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.athenahq.ai/api/v1/response-streaming/status', 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.athenahq.ai/api/v1/response-streaming/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.athenahq.ai/api/v1/response-streaming/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.athenahq.ai/api/v1/response-streaming/status")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/response-streaming/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"state": "idle",
"workflow_id": "<string>",
"config": {
"mode": "all_prompts",
"selected_prompt_count": 123,
"models": {},
"prompt_variations": 123,
"use_personas": true,
"use_locations": true,
"only_locations": true
},
"progress": {
"pending": 123,
"processing": 123,
"completed": 123,
"failed": 123,
"total": 123,
"percentage": 50
},
"saved_response_progress": {
"planned_count": 1,
"expected_count": 1,
"completed_count": 1,
"population_completed_at": "<string>",
"initial_completed_count": 1,
"initial_status": "completed",
"initial_terminal_at": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"is_scheduled": true,
"finish_reason": "credits_exhausted"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Get Response Streaming Status
Returns the whole-run state and response-queue progress of a website’s response-streaming run. By default reports the latest run; pass workflow_id to read a specific one. Progress measures response collection only, so state can remain running when progress.percentage is 100 while downstream analysis finishes. Only state: "completed" means the whole run, including downstream analysis, has finished. saved_response_progress separately counts distinct saved responses against the original request, with an immutable first-terminal-outcome snapshot. When no run has ever been started, state is idle and the config/progress fields are zeroed or null.
curl --request GET \
--url https://api.athenahq.ai/api/v1/response-streaming/status \
--header 'x-api-key: <api-key>'import requests
url = "https://api.athenahq.ai/api/v1/response-streaming/status"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.athenahq.ai/api/v1/response-streaming/status', 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.athenahq.ai/api/v1/response-streaming/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.athenahq.ai/api/v1/response-streaming/status"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.athenahq.ai/api/v1/response-streaming/status")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/response-streaming/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"state": "idle",
"workflow_id": "<string>",
"config": {
"mode": "all_prompts",
"selected_prompt_count": 123,
"models": {},
"prompt_variations": 123,
"use_personas": true,
"use_locations": true,
"only_locations": true
},
"progress": {
"pending": 123,
"processing": 123,
"completed": 123,
"failed": 123,
"total": 123,
"percentage": 50
},
"saved_response_progress": {
"planned_count": 1,
"expected_count": 1,
"completed_count": 1,
"population_completed_at": "<string>",
"initial_completed_count": 1,
"initial_status": "completed",
"initial_terminal_at": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"is_scheduled": true,
"finish_reason": "credits_exhausted"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Query Parameters
The ID of the website to read run status for.
Read a specific run instead of the latest one.
Response
Current run state and progress
Whole-run state. Only completed means the whole run, including downstream analysis, has finished. running can coexist with 100 percent response progress.
idle, running, completed, failed, cancelled Show child attributes
Show child attributes
Measures response collection only. These queue counts do not indicate downstream analysis readiness.
Show child attributes
Show child attributes
Distinct saved responses, not queue attempts or downstream readiness. Null means no original request plan was recorded, including historical runs. Current completion may increase after recovery without changing the original expected count or first-terminal-outcome snapshot.
Show child attributes
Show child attributes
Why a failed or cancelled run ended. credits_exhausted: no credits remaining. credits_paused: credit allocation paused by the partner. subscription_inactive, organization_deleted. entitlement_unreadable: billing could not be read mid-run; pending responses are retried by the backfill. cancelled_by_user. responses_failed: collection finished with failed responses. items_stuck, attribute_extraction_failed, workflow_error, stale. Null while running, for completed runs, and for runs older than this field.
credits_exhausted, credits_paused, subscription_inactive, organization_deleted, entitlement_unreadable, cancelled_by_user, responses_failed, items_stuck, attribute_extraction_failed, workflow_error, stale Was this page helpful?