curl --request GET \
--url https://api.radarkit.ai/v1/content/runs/{run} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/content/runs/{run}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.radarkit.ai/v1/content/runs/{run}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": 551,
"project": "64f1a2b3c4d5e6f708192a3b",
"status": "completed",
"current_step": "done",
"error": null,
"retryable": false,
"prompt": {
"id": 2048
},
"article": {
"id": 812,
"title": "The best CRM for startups in 2026: Acme vs HubSpot vs Pipedrive",
"keyword": "best crm for startups",
"article_type": "comparison",
"write_mode": "ai",
"status": "draft",
"crawl_status": "completed",
"outline_status": "completed",
"word_count": 1840,
"scores": {
"radarkit": 82,
"seo": 78.5,
"geo": 85,
"readability": 71
},
"editor_url": "https://radarkit.ai/dashboard/64f1a2b3c4d5e6f708192a3b/content/812",
"created_at": "2026-09-03T10:30:00+00:00",
"updated_at": "2026-09-03T10:36:12+00:00"
},
"started_at": "2026-09-03T10:30:00+00:00",
"completed_at": "2026-09-03T10:36:12+00:00"
},
"meta": {},
"credits": {
"charged": 0,
"remaining": null
},
"request_id": "req_01j9x519n0o1p2q3r4s5t6u7v9"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Missing or invalid API key. Send it as: Authorization: Bearer rk_live_YOUR_KEY"
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r6"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "One or more parameters are invalid.",
"details": [
{
"path": "from",
"message": "The from field must match the format Y-m-d."
}
]
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j5"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Slow down and retry.",
"details": {
"retry_after": 21
}
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a1"
}Get article run
The status of one article run. Poll this every few seconds after Create article.
processing is working and current_step says where it is. completed is done and the article has a title, a word count and scores. failed and cancelled say what happened and can be retried.
Add include=body once the run is completed to get the article as Markdown in body_markdown.
Cost: Free. 2 API credits with include=body.
Needs: Agents.
curl --request GET \
--url https://api.radarkit.ai/v1/content/runs/{run} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.radarkit.ai/v1/content/runs/{run}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.radarkit.ai/v1/content/runs/{run}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": 551,
"project": "64f1a2b3c4d5e6f708192a3b",
"status": "completed",
"current_step": "done",
"error": null,
"retryable": false,
"prompt": {
"id": 2048
},
"article": {
"id": 812,
"title": "The best CRM for startups in 2026: Acme vs HubSpot vs Pipedrive",
"keyword": "best crm for startups",
"article_type": "comparison",
"write_mode": "ai",
"status": "draft",
"crawl_status": "completed",
"outline_status": "completed",
"word_count": 1840,
"scores": {
"radarkit": 82,
"seo": 78.5,
"geo": 85,
"readability": 71
},
"editor_url": "https://radarkit.ai/dashboard/64f1a2b3c4d5e6f708192a3b/content/812",
"created_at": "2026-09-03T10:30:00+00:00",
"updated_at": "2026-09-03T10:36:12+00:00"
},
"started_at": "2026-09-03T10:30:00+00:00",
"completed_at": "2026-09-03T10:36:12+00:00"
},
"meta": {},
"credits": {
"charged": 0,
"remaining": null
},
"request_id": "req_01j9x519n0o1p2q3r4s5t6u7v9"
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "Missing or invalid API key. Send it as: Authorization: Bearer rk_live_YOUR_KEY"
},
"request_id": "req_01j9x4q7z8y9x0w1v2u3t4s5r6"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "One or more parameters are invalid.",
"details": [
{
"path": "from",
"message": "The from field must match the format Y-m-d."
}
]
},
"request_id": "req_01j9x4s6b7c8d9e0f1g2h3i4j5"
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Slow down and retry.",
"details": {
"retry_after": 21
}
},
"request_id": "req_01j9x4r2s3t4u5v6w7x8y9z0a1"
}Authorizations
Your API key. Create one in Settings, API keys. Send it as Authorization: Bearer rk_live_YOUR_KEY.
Path Parameters
The run id. From Create article.
Query Parameters
body adds the article as Markdown. Costs 2 credits.
body Response
The run.
Show child attributes
Show child attributes
What this call cost and what is left. Also in the X-RadarKit-Credits-Charged and X-RadarKit-Credits-Remaining headers.
Show child attributes
Show child attributes
A unique id for this call. Also in the X-Request-Id header. Quote it when you contact support.
"req_01j9x4m2p7q8r9s0t1u2v3w4x5"