Skip to Content
APIEndpointsList prompt suggestions

List prompt suggestions

Prompts the platform has generated but you have not yet decided on, grounded in the brand profile, your topics and observed demand. Each carries the reasoning behind it, so a suggestion can be judged rather than guessed at.

This is the review queue: rather than inventing questions to monitor, review what Generate prompt suggestions proposed and accept the ones worth tracking with Accept prompt suggestions.

Requires only read:prompts. Acting on suggestions needs write:prompts.

GET /v1/brands/{brand_id}/prompts/suggestions

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands

Query parameters

ParameterTypeRequiredDescription
limitintegeroptionalRows per page, 1 to 100. Defaults to 20.
cursorstringoptionalOpaque cursor from the previous response. Treat it as a token, never construct one.
topic_iduuidoptionalRestrict to suggestions generated for this topic. Includes the topic and its subtopics. A root topic returns everything beneath it; a subtopic returns only itself.
request_iduuidoptionalRestrict to one generation batch (from Generate prompt suggestions).
statusstring, repeatableoptionalFilter by status. One of: proposed, accepted, rejected, promoted. Defaults to proposed (the review queue) when omitted.

Request

curl --request GET \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/prompts/suggestions?limit=50' \ --header 'Authorization: Bearer <api-key>'

Response

{ "data": [ { "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "topic_id": "9c2b1a4e-5d3f-4b8c-9e1a-2f7c6d8b3a10", "request_id": "3f1a9c2b-7e40-4b17-8e6a-3c05b91e7d22", "suggested_prompt": "What is the best AI visibility tracking tool for SaaS teams?", "language": "en", "country_codes": ["US"], "tag_ids": [], "intent": "commercial", "funnel_stage": "middle", "branded": false, "competitive": true, "agent_reasoning": "High-intent comparison query with no branded prompt covering this angle yet.", "confidence": 0.82, "evidence": {}, "status": "proposed", "promoted_to_prompt_id": null, "rejected_reason": null, "created_at": "2026-08-30T09:16:47.118Z" } ], "pagination": { "limit": 20, "has_more": false, "next_cursor": null }, "request_id": "req_2f7b90c14ae8471da3cd" }

Response fields

FieldTypeDescription
data[].iduuidrequired. Use it with Accept / Reject / Edit prompt suggestions
data[].topic_iduuid | nullrequired
data[].request_iduuidrequired. The generation batch this suggestion came from
data[].suggested_promptstringrequired
data[].languagestringrequired
data[].country_codesstring[]required
data[].tag_idsuuid[]required
data[].intentstring | nullOne of informational, navigational, commercial, transactional
data[].funnel_stagestring | nullOne of top, middle, bottom
data[].brandedbooleanrequired
data[].competitivebooleanrequired
data[].agent_reasoningstring | nullWhy the agent proposed this prompt
data[].confidencenumber | null0-1
data[].evidenceobjectrequired. Supporting signals the agent used
data[].statusstringrequired. One of proposed, accepted, rejected, promoted
data[].promoted_to_prompt_iduuid | nullSet once accepted
data[].rejected_reasonstring | nullSet only when rejected with a reason
data[].created_attimestamptzrequired
request_idstringrequired. Also returned as the x-request-id header. Quote it when contacting support

Errors

StatusCodeWhen
400invalid_requestA parameter is unknown or malformed. The message names it
401invalid_tokenThe key is missing, malformed, or does not exist
401token_expiredThe key passed its expiry date
401token_revokedThe key was revoked
404not_foundThe brand does not exist, or this key is not allowed to reach it
429rate_limitedOver 300 requests per minute

Notes

Defaults to proposed. Pass status explicitly to see suggestions you already decided on — useful for auditing what was accepted or rejected and why.

accepted vs promoted. Both mean the suggestion was accepted. promoted created a new prompt; accepted means the suggested text already matched an existing active prompt, so it was linked to that prompt instead of creating a duplicate. promoted_to_prompt_id is set either way.

Last updated on