API

Sources

Citation sources by domain and by URL

The sources API returns the websites AI platforms cite alongside your brand: aggregated by domain, and per URL for page-level detail.

List sources

GET /v1/sources

Returns domain-level citation stats for paid properties in the API key's scope. Ordered by period start, newest first. Default range: the last 30 UTC days.

Headers

HeaderValueRequired
AuthorizationBearer hdg_sk_live_...Yes

Query parameters

ParameterTypeDescription
propertyIdstringReturn stats for one property only.
domainstringReturn stats for one source domain only.
fromstringRange start, UTC day (yyyy-MM-dd). Inclusive.
tostringRange end, UTC day (yyyy-MM-dd). Inclusive.
limitintegerMaximum results per page. Default: 100, max: 1000.
offsetintegerRows to skip. Default: 0.

Example

curl https://api.useheading.com/v1/sources \
  -H "Authorization: Bearer hdg_sk_live_abc123..."

Response: 200 OK

{
  "data": [
    {
      "domain": "techcrunch.com",
      "usedPercent": 45.2,
      "avgCitations": 3.1,
      "sourceType": "news",
      "periodStart": "2026-07-17",
      "property": {
        "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
        "name": "Acme Corp"
      }
    }
  ],
  "total": 1
}

Response fields

FieldTypeDescription
domainstringSource domain name
usedPercentnumberPercentage of AI responses citing this source (0-100)
avgCitationsnumber or nullAverage number of citations per response
sourceTypestring or nullSource category (e.g. news, blog, forum, docs)
periodStartstringPeriod start, UTC day (yyyy-MM-dd)
propertyobjectThe property this source data belongs to
property.idstringProperty UUID
property.namestringProperty display name

List source URLs

GET /v1/sources/urls

Returns per-URL stats: one row per property × URL × UTC day. Ordered by date, newest first. Default range: the last 30 UTC days.

Two metrics per row, each with its own denominator. Retrieval = the URL appeared in the platform's consulted/search results; citation = the URL was cited in the answer. A null rate means the metric is not available for the platforms in that cell. It is never an approximation.

Query parameters

ParameterTypeDescription
propertyIdstringReturn stats for one property only.
domainstringReturn URLs under one source domain only.
modelstringReturn stats for one AI platform only. Default: all platforms combined.
fromstringRange start, UTC day (yyyy-MM-dd). Inclusive.
tostringRange end, UTC day (yyyy-MM-dd). Inclusive.
limitintegerMaximum results per page. Default: 100, max: 1000.
offsetintegerRows to skip. Default: 0.

Example

curl "https://api.useheading.com/v1/sources/urls?domain=reddit.com" \
  -H "Authorization: Bearer hdg_sk_live_abc123..."

Response: 200 OK

{
  "data": [
    {
      "url": "https://reddit.com/r/seo/comments/enterprise_tools",
      "domain": "reddit.com",
      "date": "2026-07-21",
      "model": "_all",
      "format": "forum",
      "communityPath": "r/seo",
      "retrievalRate": 40.0,
      "retrievalCount": 2,
      "retrievalResponses": 5,
      "citationRate": null,
      "citationCount": 0,
      "citationResponses": 0,
      "property": {
        "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
        "name": "Acme Corp"
      }
    }
  ],
  "total": 1
}

Response fields

FieldTypeDescription
urlstringNormalised full URL
domainstringSource domain grouping key
datestringUTC day (yyyy-MM-dd)
modelstringPlatform id, or _all for the all-platform rollup
formatstringPage format (listicle, article, how_to, product, homepage, forum, video, other, …)
communityPathstring or nullSub-community for UGC domains (e.g. r/seo)
retrievalRatenumber or null% of measurable responses where the URL was consulted. Null = not available.
retrievalCountnumberResponses where the URL appeared in the consulted set
retrievalResponsesnumberResponses able to measure retrieval (denominator)
citationRatenumber or null% of measurable responses citing the URL. Null = not available.
citationCountnumberResponses citing the URL inline
citationResponsesnumberResponses able to measure citations (denominator)
propertyobjectThe property this row belongs to
property.idstringProperty UUID
property.namestringProperty display name

Error responses

StatusCodeWhen
400INVALID_PARAMInvalid query parameter
401MISSING_AUTHNo Authorization header
401INVALID_AUTHHeader is not Bearer {key}
401INVALID_KEYInvalid or revoked API key
429RATE_LIMIT_EXCEEDEDRate limit exceeded (100 req/min)
500INTERNAL_ERRORServer error