Citations
Get pages AI cites while answering your tracked prompts, including pages that do not name your brand. Understand your source authority.
Code example
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&limit=50&offset=0&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": {
"id": "00000000-0000-4000-8000-81f286d10c3c",
"name": "Notion"
},
"citations": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"url": "https://techcrunch.com/notion-review",
"domain": "techcrunch.com",
"page_title": "Notion Review: The Best Workspace Tool for 2026",
"prompt": {
"text": "What are the best CRM tools for enterprise?",
"type": "commercial"
},
"metrics": {
"appearances": 5,
"sentiment": "positive",
"visibility_score": 85
},
"seo": {
"domain_rating": 92
},
"source_type": "organic",
"search_model": null,
"date": "2026-01-08"
}
],
"pagination": {
"total": 250,
"limit": 50,
"offset": 0,
"has_more": true
}
}Synthetic example. Values are made up.
API key required
60 req/minEndpoint
/get-citationsAuthenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide
Request parameters
brand_idstringqueryRequired
Brand UUID
Format: uuid
viewstring | nullqueryOptional
View mode: list (default), history, queries, sources, feed, heatmap
limitintegerqueryOptional
Results per page
Default: 100 · Minimum: 1 · Maximum: 500
offsetintegerqueryOptional
Pagination offset
Default: 0 · Minimum: 0
domainstring | nullqueryOptional
Filter by domain (partial match). Required when view=sources.
daysintegerqueryOptional
Historical period in days (filters by last_seen date)
Default: 30 · Minimum: 7 · Maximum: 365
days_backintegerqueryOptional
Days back for feed comparison (for view=feed)
Default: 7 · Minimum: 1 · Maximum: 30
tag_idsstring | nullqueryOptional
Comma-separated tag UUIDs to filter by prompt tags
prompt_textstring | nullqueryOptional
Filter citations by prompt text (partial match)
periodstring | nullqueryOptional
A frozen calendar period instead of a rolling window: a month as YYYY-MM (2026-08) or a quarter as YYYY-Qn (2026-Q3). A closed month is read from the archive frozen when it closed; the open month is computed to date. When period is given, days is ignored and the response carries a `period` block saying exactly what was resolved. Definitions: /get-metrics.
Responses and errors
200Successful Response
application/json
CitationsResponse
brandobjectRequired
citationsobject[]Required
Fields in citations
Array of object.
idstringRequired
urlstringRequired
domainstringRequired
page_titlestring | nullOptional
promptobjectOptional
Default: {}
promptsstring[]Optional
Default: []
Fields in prompts
Array of string. Default: []
string.
metricsobjectOptional
Default: {}
seoobjectOptional
Default: {}
source_typestringOptional
Default: "organic"
search_modelstring | nullOptional
ai_providerstring | nullOptional
ai_providersstring[] | nullOptional
provider_countsobject | nullOptional
datestring | nullOptional
mentions_brandbooleanOptional
Default: false
brand_checkstringOptional
Default: "not_mentioned"
not_checked_reasonstring | nullOptional
competitorsstring[]Optional
Default: []
Fields in competitors
Array of string. Default: []
string.
first_seenstring | nullOptional
last_seenstring | nullOptional
paginationobjectRequired
Pagination metadata.
Fields in pagination
totalintegerRequired
limitintegerRequired
offsetintegerRequired
has_morebooleanRequired
CitationsHistoryResponse
brandobjectRequired
brand_time_seriesobject[]Required
Fields in brand_time_series
Array of object.
datestringRequired
total_citationsintegerRequired
new_citationsinteger | nullOptional
brand_mentionsintegerRequired
new_brand_mentionsinteger | nullOptional
unique_sourcesintegerRequired
avg_sentimentnumber | nullOptional
competitor_time_seriesobjectRequired
snapshots_availableintegerRequired
date_rangeobjectRequired
CitationsQueriesResponse
brandobjectRequired
clustersobject[]Required
Fields in clusters
Array of object.
intentstringRequired
labelstringRequired
queriesstring[]Required
Fields in queries
Array of string.
string.
total_citationsintegerRequired
brand_appears_inintegerRequired
coverage_ratenumberRequired
top_queriesobject[]Required
Fields in top_queries
Array of object.
querystringRequired
intentstringRequired
frequencyintegerRequired
citations_foundintegerRequired
brand_appearsbooleanRequired
top_sourcesstring[]Required
Fields in top_sources
Array of string.
string.
competitors_appearingstring[]Required
Fields in competitors_appearing
Array of string.
string.
is_newbooleanRequired
trendstringRequired
gap_queriesobject[]Required
Fields in gap_queries
Array of object.
querystringRequired
intentstringRequired
frequencyintegerRequired
citations_foundintegerRequired
brand_appearsbooleanRequired
top_sourcesstring[]Required
Fields in top_sources
Array of string.
string.
competitors_appearingstring[]Required
Fields in competitors_appearing
Array of string.
string.
is_newbooleanRequired
trendstringRequired
coverage_by_intentobjectRequired
new_queries_countintegerRequired
rising_queries_countintegerRequired
CitationsSourceResponse
brandobjectRequired
domainstringRequired
total_citationsintegerRequired
unique_pagesintegerRequired
mentions_youbooleanRequired
mention_countintegerRequired
competitors_on_domainstring[]Required
Fields in competitors_on_domain
Array of string.
string.
avg_sentimentnumber | nullOptional
pagesobject[]Required
Fields in pages
Array of object.
urlstringRequired
h1string | nullOptional
sentimentinteger | nullOptional
mentions_brandbooleanOptional
Default: false
brand_checkstringOptional
Default: "not_mentioned"
not_checked_reasonstring | nullOptional
competitorsstring[]Optional
Default: []
Fields in competitors
Array of string. Default: []
string.
appearance_countintegerOptional
Default: 1
first_seenstring | nullOptional
last_seenstring | nullOptional
CitationsFeedResponse
brandobjectRequired
eventsobject[]Required
Fields in events
Array of object.
event_typestringRequired
urlstringRequired
domainstringRequired
h1string | nullOptional
source_typestring | nullOptional
timestampstringRequired
mentions_brandboolean | nullOptional
sentimentinteger | nullOptional
prev_sentimentinteger | nullOptional
appearance_countinteger | nullOptional
prev_appearance_countinteger | nullOptional
new_competitorsstring[] | nullOptional
promptsstring[] | nullOptional
current_snapshot_datestring | nullOptional
previous_snapshot_datestring | nullOptional
total_currentintegerOptional
Default: 0
total_previousintegerOptional
Default: 0
CitationsHeatmapResponse
brandobjectRequired
domainsstring[]Required
Fields in domains
Array of string.
string.
brandsstring[]Required
Fields in brands
Array of string.
string.
your_brandstringRequired
cellsobject[]Required
Fields in cells
Array of object.
domainstringRequired
brandstringRequired
is_presentbooleanRequired
mention_countintegerRequired
your_coveragenumberRequired
competitor_coverageobjectRequired
CitationsAnalyticsResponse
periodobject | nullOptional
Fields in period
PeriodMeta
keystringRequired
kindstringRequired
labelstringRequired
startstringRequired
endstringRequired
statusstringRequired
sourcestringRequired
frozen_atstring | nullOptional
pipeline_versionstring | nullOptional
restated_atstring | nullOptional
restatementsobject[]Optional
Default: []
Fields in restatements
Array of object. Default: []
object. Additional keys are allowed.
coverageobjectOptional
Default: {}
fields_computedstring[]Optional
Default: []
Fields in fields_computed
Array of string. Default: []
string.
fields_missingstring[]Optional
Default: []
Fields in fields_missing
Array of string. Default: []
string.
notesstring[]Optional
Default: []
Fields in notes
Array of string. Default: []
string.
monthsobject | nullOptional
rank_sourcestring | nullOptional
null
null.
brandobjectRequired
summaryobjectRequired
Fields in summary
total_citationsintegerRequired
unique_sourcesinteger | nullOptional
total_domainsintegerRequired
brand_mentionsintegerRequired
competitor_mentionsinteger | nullOptional
positive_percentagenumber | nullOptional
avg_sentimentnumber | nullOptional
citations_changenumber | nullOptional
brand_mentions_changenumber | nullOptional
source_type_breakdownobject[] | nullOptional
top_domainsobject[]Required
Fields in top_domains
Array of object.
domainstringRequired
times_citedintegerRequired
unique_pagesintegerRequired
citation_sharenumber | nullOptional
source_typestring | nullOptional
top_competitorsobject[]Required
Fields in top_competitors
Array of object.
namestringRequired
times_citedintegerRequired
unique_sourcesintegerRequired
citation_sharenumberRequired
period_figuresobject | nullOptional
CitationDetailResponse
brandobjectRequired
urlstringRequired
domainstringRequired
h1string | nullOptional
sentimentinteger | nullOptional
sentiment_labelstring | nullOptional
mentions_brandbooleanOptional
Default: false
brand_checkstringOptional
Default: "not_mentioned"
not_checked_reasonstring | nullOptional
competitorsstring[]Optional
Default: []
Fields in competitors
Array of string. Default: []
string.
topicsstring[]Optional
Default: []
Fields in topics
Array of string. Default: []
string.
appearance_countintegerOptional
Default: 1
first_seenstring | nullOptional
last_seenstring | nullOptional
promptsstring[]Optional
Default: []
Fields in prompts
Array of string. Default: []
string.
source_typestring | nullOptional
appearancesobject[]Optional
Default: []
Fields in appearances
Array of object. Default: []
datestring | nullOptional
modelstring | nullOptional
promptstring | nullOptional
related_citationsstring[]Optional
Default: []
Fields in related_citations
Array of string. Default: []
string.
CitationsByModelResponse
brandobjectRequired
modelsobject[]Required
Fields in models
Array of object.
modelstringRequired
total_citationsintegerRequired
brand_mentionsintegerRequired
unique_sourcesintegerRequired
top_domainsstring[]Optional
Default: []
Fields in top_domains
Array of string. Default: []
string.
CitationsTopPagesResponse
periodobject | nullOptional
Fields in period
PeriodMeta
keystringRequired
kindstringRequired
labelstringRequired
startstringRequired
endstringRequired
statusstringRequired
sourcestringRequired
frozen_atstring | nullOptional
pipeline_versionstring | nullOptional
restated_atstring | nullOptional
restatementsobject[]Optional
Default: []
Fields in restatements
Array of object. Default: []
object. Additional keys are allowed.
coverageobjectOptional
Default: {}
fields_computedstring[]Optional
Default: []
Fields in fields_computed
Array of string. Default: []
string.
fields_missingstring[]Optional
Default: []
Fields in fields_missing
Array of string. Default: []
string.
notesstring[]Optional
Default: []
Fields in notes
Array of string. Default: []
string.
monthsobject | nullOptional
rank_sourcestring | nullOptional
null
null.
brandobjectRequired
pagesobject[]Required
Fields in pages
Array of object.
urlstringRequired
domainstringRequired
h1string | nullOptional
appearance_countintegerOptional
Default: 1
appearance_count_30dinteger | nullOptional
sentimentinteger | nullOptional
mentions_brandbooleanOptional
Default: false
brand_checkstringOptional
Default: "not_mentioned"
not_checked_reasonstring | nullOptional
competitorsstring[]Optional
Default: []
Fields in competitors
Array of string. Default: []
string.
source_typestring | nullOptional
appearance_count_periodinteger | nullOptional
modelsstring[]Optional
Default: []
Fields in models
Array of string. Default: []
string.
totalintegerRequired
401Missing, malformed, or expired credentials
application/json
detailstring | object | nullOptional
errorstring | nullOptional
402The current plan does not fund this operation
application/json
detailstring | object | nullOptional
errorstring | nullOptional
403Invalid credentials, missing brand access, or insufficient role
application/json
detailstring | object | nullOptional
errorstring | nullOptional
422Validation Error
application/json
detailobject[]Optional
Fields in detail
Array of object.
locstring | integer[]Required
Fields in loc
Array of string | integer.
string
string.
integer
integer.
msgstringRequired
typestringRequired
429Rate limit exceeded
application/json
detailstring | object | nullOptional
errorstring | nullOptional
500The operation failed
application/json
detailstring | object | nullOptional
errorstring | nullOptional
503Authentication, entitlement, or a required dependency is temporarily unavailable
application/json
detailstring | object | nullOptional
errorstring | nullOptional
Returns pages AI cites while answering your tracked prompts, including pages that do not name your brand. Citations come from models with web search capabilities like Perplexity and ChatGPT.
period=2026-08 (a month) or period=2026-Q3 (a quarter) to read this endpoint from the monthly archive instead of a rolling window. A closed month answers identically however later it is asked; the open month is computed to date and says status: open. When period is set, days is ignored and the response carries a period block. Only view=top_pages and view=analytics read a period (400 otherwise). appearance_count is the page's citations inside the period, with appearance_count_period and models alongside. In analytics, top_domains are the domains cited most with no page naming the brand, and period_figures carries the brand-page figures. See Periods.Try GET /get-citations
Filter by Domain
Use the domain parameter to filter citations from a specific source:
techcrunch will matchtechcrunch.com and blog.techcrunch.com.View Modes
Use the view parameter to access different citation data views. Omitting it (or passing view=list) returns the default paginated list above.
| View | Description |
|---|---|
list | Default. Paginated citation URLs. |
history | Time series of citation counts, brand mentions, and sentiment. |
queries | Query-level analytics with intent clustering and gap analysis. |
sources | Full domain profile. Requires domain parameter. |
feed | Change feed: new, lost, and changed citations. |
heatmap | Brand vs competitors presence matrix across top domains. |
view=history
Returns time series data for citation trends over a configurable period. Use the days parameter to control the lookback window (7-365, default 30).
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=history&limit=100&offset=0&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": { "id": "...", "name": "Notion" },
"brand_time_series": [
{
"date": "2026-02-01",
"total_citations": 142,
"brand_mentions": 98,
"unique_sources": 67,
"avg_sentiment": 72.4
}
],
"competitor_time_series": {
"Coda": [{ "date": "2026-02-01", "mentions": 45 }]
},
"snapshots_available": 8,
"date_range": { "start": "2026-02-01", "end": "2026-03-01" }
}Synthetic example. Values are made up.
view=queries
Returns query-level citation analytics: intent clusters, top/gap queries, and coverage rates. Use this to understand which search queries drive citations and where gaps exist.
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=queries&limit=100&offset=0&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": { "id": "...", "name": "Notion" },
"clusters": [
{
"intent": "comparison",
"label": "Comparison Queries",
"queries": ["notion vs coda", "notion vs confluence"],
"total_citations": 24,
"brand_appears_in": 18,
"coverage_rate": 75.0
}
],
"top_queries": [
{
"query": "best project management tools",
"intent": "recommendation",
"frequency": 12,
"citations_found": 8,
"brand_appears": true,
"top_sources": ["techcrunch.com", "g2.com"],
"competitors_appearing": ["Coda", "Confluence"],
"is_new": false,
"trend": "up"
}
],
"gap_queries": [],
"coverage_by_intent": { "comparison": 75.0, "recommendation": 60.0 },
"new_queries_count": 3,
"rising_queries_count": 5
}Synthetic example. Values are made up.
view=sources
Returns a detailed profile for a specific source domain. The domain parameter is required and must be an exact domain match (e.g. techcrunch.com).
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=sources&limit=100&offset=0&domain=techcrunch.com&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": { "id": "...", "name": "Notion" },
"domain": "techcrunch.com",
"total_citations": 45,
"unique_pages": 12,
"mentions_you": true,
"mention_count": 8,
"competitors_on_domain": ["Coda", "Confluence"],
"avg_sentiment": 74.2,
"pages": [
{
"url": "https://techcrunch.com/notion-review",
"h1": "Notion Review 2026",
"sentiment": 82,
"mentions_brand": true,
"competitors": ["Coda"],
"appearance_count": 5
}
],
"first_seen": "2025-11-15",
"last_seen": "2026-03-01"
}Synthetic example. Values are made up.
domain parameter is not provided, or 404 if no citations exist for that domain.view=feed
Returns a change feed comparing the current citation snapshot against a previous one. Use days_back to control how far back to compare (1-30, default 7). Events include new citations, lost citations, sentiment changes, and new competitor appearances.
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=feed&limit=100&offset=0&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": { "id": "...", "name": "Notion" },
"events": [
{
"event_type": "new",
"url": "https://zapier.com/blog/notion-tips",
"domain": "zapier.com",
"h1": "10 Notion Tips for 2026",
"source_type": "earned_media",
"timestamp": "2026-03-01",
"mentions_brand": true,
"sentiment": 78,
"appearance_count": 3,
"prompts": ["best productivity tools"]
},
{
"event_type": "lost",
"url": "https://old-blog.com/notion",
"domain": "old-blog.com",
"timestamp": "2026-02-25"
}
],
"current_snapshot_date": "2026-03-01",
"previous_snapshot_date": "2026-02-22",
"total_current": 250,
"total_previous": 245
}Synthetic example. Values are made up.
view=heatmap
Returns a competitive presence matrix showing which brands appear on which top domains. Useful for identifying citation coverage gaps relative to competitors.
curl -X GET 'https://api.trakkr.ai/get-citations?brand_id=00000000-0000-4000-8000-81f286d10c3c&view=heatmap&limit=100&offset=0&days=30&days_back=7' \
-H "Authorization: Bearer $TRAKKR_API_KEY"{
"brand": { "id": "...", "name": "Notion" },
"domains": ["techcrunch.com", "g2.com", "zapier.com"],
"brands": ["Notion", "Coda", "Confluence"],
"your_brand": "Notion",
"cells": [
{ "domain": "techcrunch.com", "brand": "Notion", "is_present": true, "mention_count": 8 },
{ "domain": "techcrunch.com", "brand": "Coda", "is_present": true, "mention_count": 3 }
],
"your_coverage": 86.7,
"competitor_coverage": { "Coda": 60.0, "Confluence": 46.7 }
}Synthetic example. Values are made up.
Use Cases
- Identify which content is getting cited by AI
- Find high-authority domains linking to your brand
- Track citation trends over time with
view=history - Discover content gaps with
view=queries - Monitor changes between saved citation snapshots with
view=feed - Compare source coverage against competitors with
view=heatmap
