API

Visibility

Per-prompt visibility scores by model and day

The visibility API returns per-prompt, per-model, per-day records showing how visible your brand is across AI search platforms. One row per active prompt × model × UTC day.

List visibility data

GET /v1/visibility

Returns visibility records for paid properties in the API key's scope. Ordered by date, newest first. Default range: the last 30 UTC days.

Headers

HeaderValueRequired
AuthorizationBearer hdg_sk_live_...Yes

Query parameters

ParameterTypeDescription
propertyIdstringReturn records for one property only.
promptIdstringReturn records for one prompt only.
modelstringReturn records for one AI platform only (e.g. chatgpt).
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/visibility?from=2026-07-01&to=2026-07-21&model=chatgpt" \
  -H "Authorization: Bearer hdg_sk_live_abc123..."

Response: 200 OK

{
  "data": [
    {
      "date": "2026-07-21",
      "model": "chatgpt",
      "promptId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "visibilityPct": 66.7,
      "mentionCount": 2,
      "citationCount": 1,
      "avgPosition": 1.5,
      "avgSentiment": 0.42,
      "property": {
        "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
        "name": "Acme Corp"
      }
    }
  ],
  "total": 1
}

Response fields

FieldTypeDescription
datestringUTC day (yyyy-MM-dd)
modelstringAI platform identifier
promptIdstringPrompt UUID. Matches id on /v1/prompts.
visibilityPctnumberShare of the day's responses mentioning the brand (0-100)
mentionCountnumberResponses mentioning the brand
citationCountnumberTimes the property's own domain was cited
avgPositionnumber or nullAverage rank among brands in the answer (1 = first)
avgSentimentnumber or nullAverage mention sentiment
propertyobjectThe property these records belong 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