Citation sources
get_citation_sourcesThe domains and URLs that AI models cite in their answers for this workspace's prompts, each marked as the brand's own site, a competitor's, or other. Each URL also says what kind of page it is and how often each model cited it.
Use this tool when the user asks which websites or sources AI references -- phrases like 'what sources does AI cite', 'which websites does ChatGPT reference', 'top cited domains', 'which comparison pages does AI cite', or 'where does AI get its information about us'. Prefer it to paging through get_ai_answers for any question about cited pages.
With brand_name, only answers that mention that brand count. Without it, every answer in the workspace counts.
model, page_type, owner and last_runs narrow what counts, in one call: e.g. model=["openai", "google-aio"], page_type=["comparison", "listicle"], owner="competitor" and last_runs=3 for the competitor comparison and best-of pages ChatGPT and Google AI Overviews cited in the last 3 runs. Every URL carries its page_type and citations_by_model, and per_model gives each model's runs and citations, so a count reads as 'N citations in M runs'. A URL is a page: tracking tags (utm_*) and #fragments are dropped, so a page two models cite is one row.
For one topic, use get_top_cited_urls_for_topic. Across every workspace in the organization, use get_top_cited_domains.
Example: 'What sources does AI cite most when talking about Kassaro?'
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"workspace_id": "<workspace_id>"
},
"name": "get_citation_sources"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to look, counted back from end_date (default today). Default 30, max 90. Ignored when start_date is given. Prompts are re-run on a schedule, so a window shorter than a week can be empty. | |
| model | No | Optional: count only citations in these AI models' answers. One model, or a list such as ["openai", "google-aio"] to compare ChatGPT with Google AI Overviews. openai = ChatGPT, anthropic = Claude, mistral = Le Chat, google-aio = Google AI Overviews. Omit for every model. Each URL's count per model is returned either way. | |
| owner | No | Optional: count only pages on these sites. own = the workspace's own site, competitor = a tracked competitor's site, other = everyone else (media, forums, comparison sites). One value or a list. Omit for every site. | |
| end_date | No | Optional end of the window, as an ISO date (YYYY-MM-DD). Default today. Cannot be in the future. | |
| last_runs | No | Optional: count only the newest N runs of each prompt on each model inside the window, e.g. 3 for 'the last 3 runs'. A prompt with fewer runs in the window counts the ones it has; widen days to reach older runs. per_model says how many runs were counted. Omit to count every run in the window. | |
| page_type | No | Optional: count only cited pages of this type, or a list of types. comparison = comparison and 'X vs Y' pages, listicle = best-of and top-X lists, plus article, how_to_guide, product_page, category_page, homepage, other. There is no review type: ask for comparison and listicle for review-style pages. A page not classified yet (page_type null) never matches. Omit for every page. | |
| url_limit | No | How many URLs to list. Default 15, max 50. | |
| brand_name | No | Optional brand name: count only answers that mention this brand. Omit for all answers. | |
| start_date | No | Optional explicit start of the window, as an ISO date (YYYY-MM-DD). A full ISO datetime is accepted and its date is used. Overrides days. | |
| domain_limit | No | How many domains to list. Default 10, max 50. | |
| workspace_id | Yes | The workspace's numeric id, as returned by list_workspaces. |