Domain Status
The analysis progress of a domain. Use it to know when the data of a new domain is ready.
curl --request GET \
--url 'https://api.aiclicks.io/api/v1/domain-status?domain_id=8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3' \
--header 'Authorization: Bearer ak_live_xxx'
import httpx, os, time
headers = {"Authorization": f"Bearer {os.environ['AICLICKS_API_KEY']}"}
params = {"domain_id": "8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3"}
while True:
resp = httpx.get("https://api.aiclicks.io/api/v1/domain-status", params=params, headers=headers)
resp.raise_for_status()
status = resp.json()["data"]
if status["has_any_completed_analysis"]:
break
print("responses so far:", status["responses_count"])
time.sleep(300)
const url = new URL("https://api.aiclicks.io/api/v1/domain-status");
url.searchParams.set("domain_id", "8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3");
const resp = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.AICLICKS_API_KEY}` },
});
const { data } = await resp.json();
console.log(data.analysis_complete, data.is_discovery_ready);
{
"data": {
"timestamp": "2026-11-09T10:00:10.950913+00:00Z",
"analysis_created_at": "2026-11-09T09:41:02.118Z",
"queries_count": 40,
"responses_count": 112,
"analysis_complete": false,
"citations_pending": true,
"has_any_completed_analysis": false,
"is_discovery_ready": false
},
"generated_at": "2026-11-09T10:00:11.105Z",
"domain_id": "8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3"
}
{
"data": {
"timestamp": "2026-11-09T11:30:10.950913+00:00Z",
"analysis_created_at": null,
"queries_count": null,
"responses_count": null,
"analysis_complete": true,
"citations_pending": false,
"has_any_completed_analysis": true,
"is_discovery_ready": true
},
"generated_at": "2026-11-09T11:30:11.105Z",
"domain_id": "8f1d3c0a-2f9b-4c11-9b80-7a82e1f0c3f3"
}
{
"detail": "Invalid or revoked API key"
}
{
"detail": "Domain not found"
}
{
"detail": "Too many requests. Please try again later."
}
This endpoint tells you where the analysis of a domain stands. Use it after you create a domain with POST /api/v1/domains. Poll this endpoint until the data is ready.
The first analysis of a new domain usually takes tens of minutes. Poll every few minutes. Do not poll in a tight loop.
The response is not cached. Each call reads the current state.
The domain_id query parameter is required. To find the domains that your key can access, use GET /api/v1/domains.
Authorizations
Your API key formatted as Bearer ak_live_<your-key>. Create one in the dashboard under Settings → Developers.
Optional UUID for log correlation. If you do not send one, the server makes one and returns it in the response.
Query parameters
UUID of the domain. Find domains with GET /api/v1/domains.
Response
The analysis state of the domain.
Time of the status check.
Start time of the analysis that is running. null when no analysis is running.
Number of prompts in the running analysis. null when no analysis is running.
Number of AI answers that the running analysis has collected. null when no analysis is running.
true when no analysis is running.
true while the server still processes the cited pages of the latest analysis.
true when at least one analysis is complete. If true, the analytics endpoints return data.
true when a completed analysis exists and the AI answers named competitors. If true, GET /api/v1/competitor-discovery has candidates.
Echo of the requested domain.
ISO-8601 timestamp of when the server made this response.
Response headers
| Header | Description |
|---|---|
X-Cache | Always BYPASS. The server does not cache this endpoint. |
X-Request-Id | Unique request id. Echoes your id if you send one. |
X-RateLimit-Limit | Maximum requests per minute for this key. |
X-RateLimit-Remaining | Requests that remain in the current minute. |
X-RateLimit-Reset | Unix epoch seconds when the window resets. |
Caching
The server does not cache this endpoint. Each call returns the current state.
Errors
The API key is missing, not valid, or revoked.
The team's developer_access flag is off. Or the domain is not in the scope of your API key.
The domain_id is not valid or does not exist. Or your user is not a member of the domain's team.
The domain_id is missing.
You sent too many requests. The Retry-After header tells you how long to wait.