API
Fan-Out Queries
The sub-queries AI engines ran behind each tracked answer.
GET /api/v1/fanout-queries returns the fan-out queries recorded for your
tracked prompts: the searches an engine ran while producing an answer. Each
row belongs to one run, so you can join back to runs and
prompts with run_id and prompt_id.
Filters
| Parameter | Meaning |
|---|---|
prompt_id | Restrict to one tracked prompt. |
engine_id | Restrict to one engine. |
run_id | Restrict to one run's fan-out. |
source | observed (reported by the provider) or modeled. |
since / until | Bounds for captured_at (ISO timestamp). |
Standard parameters (limit, offset, format=csv) work as described in
Pagination, filtering, and errors.
Key fields
run_id: the run this query was recorded forprompt_id: the tracked prompt behind the runengine_id: the engine that produced the answer (ids come fromGET /api/v1/engines)query_index: position of the query within the run's fan-out (0-based)query_text: the query itselfquery_type:search,shopping, orsyntheticsource:observedfor provider-reported queries; today all rows areobserved, andmodeledis reserved so clients will not need a breaking change if modeled rows are added latermentioned_brand_ids_json: tracked brands named inside the query text, joinable to brandscaptured_at: when the fan-out was recorded
Rows are ordered by captured_at descending with run_id and
query_index as tiebreaks, so offset pagination is stable.
Example
curl -H "Authorization: Bearer $AEO_API_KEY" \
"https://app.citlyze.com/api/v1/fanout-queries?source=observed&since=2026-08-01"Use this resource to see which sub-queries decide the answers you track, which of them mention your brand or competitors, and how fan-out differs between engines.