Responses
Fetch successful model responses and the sources cited across a project or location.
visibility:read capability.GETList prompt responses
/projects/{project_id}/prompts/{prompt_id}/responsesReturns one row per successful model response for a prompt in the selected project. Responses are ordered by run date and completion time, newest first.
List prompt responses
/projects/{project_id}/prompts/{prompt_id}/responsesPath parameters
project_idproject UUID | project external IDProject identifier.
prompt_iduuidPrompt identifier.
Query parameters
startdateFirst run date to include, in YYYY-MM-DD format.
enddateLast run date to include, in YYYY-MM-DD format.
modelsstringComma-separated or repeated model keys. For example: chatgpt,claude,perplexity.
pageintegerThe 1-based page number.
per_pageintegerNumber of records per page. Maximum: 50.
Response envelope
project_id:uuidprompt_id:uuidstart:dateend:datemodels:string[]rows:Response[]pagination:Paginationproject_iduuidResolved Ceyo project identifier.
prompt_iduuidPrompt represented by the response.
startdateResolved start date.
enddateResolved end date.
modelsstring[]Model keys included in the response.
rowsResponse[]Paginated model responses.
paginationPaginationPagination metadata.
Response
run_ondateCalendar date assigned to the visibility run.
model_keystringModel that generated the response.
statusstringResponse status. Returned rows have succeeded.
response_textstring | nullFull stored response text.
brand_presentbooleanWhether the primary tracked brand was mentioned.
positioninteger | null1-based brand position when a ranked list was detected.
sentimentSentimentSentiment status, score, and label for the primary brand.
entitiesEntityResult[]Mention and position results for the brand and competitors.
citations_countintegerTotal citations attached to the response.
citationsCitationPreview[]Preview of up to three citations. Use citations endpoints for all.
finished_atdatetime | nullTime response processing completed.
Sentiment
statusstringnot_requested, pending, running, succeeded, failed, or skipped.
scorenumber | nullSentiment score from 0 to 10.
labelstring | nullnegative, neutral, or positive.
EntityResult
tracked_entity_iduuidTracked brand or competitor identifier.
namestringEntity name captured when the response was processed.
kindprimary | competitorRelationship of the entity to the scope.
mentionedbooleanWhether the entity appeared in the response.
positioninteger | null1-based entity position when a ranked list was detected.
CitationPreview
domainstringNormalized citation hostname.
urlstringCitation URL.
positioninteger1-based citation order in the model response.
Pagination
pageintegerCurrent 1-based page number.
per_pageintegerRequested number of records per page.
totalintegerTotal records matching the request.
total_pagesintegerTotal available pages.
citations array contains at most three entries. Use the prompt citations endpoint to retrieve the complete set.Request and response
curl --request GET \
--url 'https://api.signal.ceyo.ai/v1/projects/{project_id}/prompts/{prompt_id}/responses?start=2026-07-24&end=2026-07-30&models=chatgpt,perplexity' \
--header 'Authorization: Bearer ceyo_platform_...'{
"project_id": "e6c96c98-d777-40e0-94ec-48931f57782f",
"prompt_id": "4de5e484-ce6a-4e45-ad7c-bd48db2549af",
"start": "2026-07-24",
"end": "2026-07-30",
"models": ["chatgpt", "perplexity"],
"rows": [
{
"run_on": "2026-07-30",
"model_key": "chatgpt",
"status": "succeeded",
"response_text": "Ceyo is an AI visibility platform...",
"brand_present": true,
"position": 2,
"sentiment": {
"status": "succeeded",
"score": 8.2,
"label": "positive"
},
"entities": [
{
"tracked_entity_id": "f3385d92-8f24-49f2-9819-18412e93427f",
"name": "Ceyo",
"kind": "primary",
"mentioned": true,
"position": 2
}
],
"citations_count": 2,
"citations": [
{
"domain": "example.com",
"url": "https://example.com/ai-visibility",
"position": 1
}
],
"finished_at": "2026-07-30T09:42:16Z"
}
],
"pagination": {
"page": 1,
"per_page": 15,
"total": 14,
"total_pages": 1
}
}ErrorsResponse format and status codes
Error response envelope
errorErrorStructured error payload.
Error
codestringStable snake_case code suitable for programmatic handling.
messagestringHuman-readable explanation of the failure.
detailsobject | array | nullStructured validation or request context when available.
request_idstringIdentifier to provide when requesting support.
{
"error": {
"code": "invalid_date_range",
"message": "The requested date range is invalid.",
"details": null,
"request_id": "req_01K1GP6J8QQFZ4D2B6C5A9V3TS"
}
}Status codes
400invalid_date_range | range_too_large | invalid_filterThe requested filters or date range are invalid.
401invalid_api_keyAuthorization is absent or invalid.
403forbiddenThe API key cannot access this resource.
404not_foundThe project, location, or prompt was not found.
422visibility_unavailableVisibility is unavailable for the selected scope.
429rate_limit_exceededToo many requests were made.