curl --request POST \
--url https://api.radarkit.ai/v1/projects/{project}/prompts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"topic_id": 17,
"prompts": [
"how much does acme crm cost",
"acme crm pricing vs hubspot",
"is acme crm free for small teams"
]
}
'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/prompts"
payload = {
"topic_id": 17,
"prompts": ["how much does acme crm cost", "acme crm pricing vs hubspot", "is acme crm free for small teams"]
}
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({
topic_id: 17,
prompts: [
'how much does acme crm cost',
'acme crm pricing vs hubspot',
'is acme crm free for small teams'
]
})
};
fetch('https://api.radarkit.ai/v1/projects/{project}/prompts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"added": [
{
"id": 2101,
"text": "how much does acme crm cost",
"topic_id": 17,
"last_checked_at": null,
"created_at": "2026-09-03T10:21:05+00:00"
},
{
"id": 2102,
"text": "is acme crm free for small teams",
"topic_id": 17,
"last_checked_at": null,
"created_at": "2026-09-03T10:21:05+00:00"
}
],
"skipped": [
{
"text": "acme crm pricing vs hubspot",
"reason": "duplicate",
"prompt_id": 2049
}
]
},
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"topic_id": 17,
"added": 2,
"skipped": 1,
"limit_reached": false,
"prompts": {
"used": 50,
"limit": 300
}
},
"credits": {
"charged": 1,
"remaining": 2943
},
"request_id": "req_01j9x4z3v4w5x6y7z8a9b0c1d2"
}{
"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": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}Add prompts
Adds up to 50 prompts to one topic. Send the same list twice and nothing doubles: a prompt that already exists in the project is returned under skipped with reason: duplicate and its existing id. Matching ignores letter case.
When the plan’s prompt limit is reached part way, the prompts before it are still added and the rest come back with reason: limit. When nothing fits at all, the call is refused with 402 PROMPT_LIMIT_REACHED and no credit is charged.
New prompts run on the project’s next scheduled run. To see answers sooner, use Run a prompt now.
Cost: 1 API credit per call.
Limits: 50 prompts per call. 200 prompts per key per rolling day, REST and MCP together. Each prompt up to 255 characters.
Needs: Write. Your seat must be allowed to manage prompts.
curl --request POST \
--url https://api.radarkit.ai/v1/projects/{project}/prompts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"topic_id": 17,
"prompts": [
"how much does acme crm cost",
"acme crm pricing vs hubspot",
"is acme crm free for small teams"
]
}
'import requests
url = "https://api.radarkit.ai/v1/projects/{project}/prompts"
payload = {
"topic_id": 17,
"prompts": ["how much does acme crm cost", "acme crm pricing vs hubspot", "is acme crm free for small teams"]
}
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({
topic_id: 17,
prompts: [
'how much does acme crm cost',
'acme crm pricing vs hubspot',
'is acme crm free for small teams'
]
})
};
fetch('https://api.radarkit.ai/v1/projects/{project}/prompts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"added": [
{
"id": 2101,
"text": "how much does acme crm cost",
"topic_id": 17,
"last_checked_at": null,
"created_at": "2026-09-03T10:21:05+00:00"
},
{
"id": 2102,
"text": "is acme crm free for small teams",
"topic_id": 17,
"last_checked_at": null,
"created_at": "2026-09-03T10:21:05+00:00"
}
],
"skipped": [
{
"text": "acme crm pricing vs hubspot",
"reason": "duplicate",
"prompt_id": 2049
}
]
},
"meta": {
"project": "64f1a2b3c4d5e6f708192a3b",
"topic_id": 17,
"added": 2,
"skipped": 1,
"limit_reached": false,
"prompts": {
"used": 50,
"limit": 300
}
},
"credits": {
"charged": 1,
"remaining": 2943
},
"request_id": "req_01j9x4z3v4w5x6y7z8a9b0c1d2"
}{
"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": "<string>",
"message": "<string>",
"details": {}
},
"request_id": "req_01j9x4m2p7q8r9s0t1u2v3w4x5"
}Authorizations
Your API key. Create one in Settings, API keys. Send it as Authorization: Bearer rk_live_YOUR_KEY.
Path Parameters
The project id. 24 characters. From List projects.
^[0-9a-f]{24}$Body
Response
What was added and what was skipped.
Show child attributes
Show child attributes
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"