sensorhubDevelopers
Open SensorhubGet an API key
Browse documentation
REST API / Views

citation_domains

View

All-time; not windowable (no day field). Visible citations by domain, with distinct answer, prompt and URL counts, engine split and separate observed versus synthetic source candidate counts. Synthetic search never enters retrieval or citation-rate denominators. Ownership records whether any stored citation identified the domain as own or competitor. For windowed reach use citation_facts (filter run_at); for dashboard-identical headline numbers, anchored windows and deltas, use read report_sources.

Max rows per query
100
Default order
cited desc
Required filter
one of project_id
Max offset
2000
Cursor paging
by id

Filter project_id and day where available. For dashboard-identical headline numbers, anchored windows and deltas, use read report_*.

Fields

FieldTypeDescriptionFilterSort
id
stringStable identifier for this aggregate row.–✓
project_id
indexed
stringProject ID from projects.✓–
domain
stringStored citation domain.✓✓
is_own
booleanWhether any citation marks this as the project brand domain.✓✓
is_competitor
booleanWhether any citation marks this as a competitor domain.✓✓
cited
integerVisible citation events.✓✓
answers
integerDistinct answer runs citing the domain.✓✓
urls
integerDistinct cited URLs.✓✓
prompts
integerDistinct prompts citing this domain.✓✓
engines
string[]Engines citing this domain.✓–
engine_observed_considered
integerUncited engine/provider-observed source events for this domain.✓✓
citation_rate
nullable
numberVisible citation events / (visible citations + observed uncited sources), rounded percent.✓✓
last_seen_at
datetimeMost recent answer time citing the domain.✓✓

Examples

Example
SELECT id, project_id, domain, is_own, is_competitor
FROM citation_domains
WHERE project_id = $1
ORDER BY cited DESC
LIMIT 25

Calling it

MCP

Tool call
query({"sql":"SELECT id, project_id, domain, is_own, is_competitor FROM citation_domains WHERE project_id = $1 ORDER BY cited DESC LIMIT 25","params":["<value 1>"]})

REST

curl
curl -X POST "https://app.sensorhub.ai/api/v1/query" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "sql": "SELECT id, project_id, domain, is_own, is_competitor FROM citation_domains WHERE project_id = $1 ORDER BY cited DESC LIMIT 25",
  "params": [
    "<value 1>"
  ]
}
JSON
Row JSON Schema
json
{
  "type": "object",
  "description": "All-time; not windowable (no day field). Visible citations by domain, with distinct answer, prompt and URL counts, engine split and separate observed versus synthetic source candidate counts. Synthetic search never enters retrieval or citation-rate denominators. Ownership records whether any stored citation identified the domain as own or competitor. For windowed reach use citation_facts (filter run_at); for dashboard-identical headline numbers, anchored windows and deltas, use read report_sources.",
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable identifier for this aggregate row.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": false,
      "x-sensorhub-sortable": true
    },
    "project_id": {
      "type": "string",
      "description": "Project ID from projects.",
      "x-sensorhub-indexed": true,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": false
    },
    "domain": {
      "type": "string",
      "description": "Stored citation domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "is_own": {
      "type": "boolean",
      "description": "Whether any citation marks this as the project brand domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "is_competitor": {
      "type": "boolean",
      "description": "Whether any citation marks this as a competitor domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "cited": {
      "type": "integer",
      "description": "Visible citation events.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "answers": {
      "type": "integer",
      "description": "Distinct answer runs citing the domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "urls": {
      "type": "integer",
      "description": "Distinct cited URLs.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "prompts": {
      "type": "integer",
      "description": "Distinct prompts citing this domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "engines": {
      "type": "array",
      "description": "Engines citing this domain.",
      "items": {
        "type": "string"
      },
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": false,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": false
    },
    "engine_observed_considered": {
      "type": "integer",
      "description": "Uncited engine/provider-observed source events for this domain.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "synthetic_search": {
      "type": "integer",
      "description": "Synthetic search candidate events; not engine retrieval.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "citation_rate": {
      "type": [
        "number",
        "null"
      ],
      "description": "Visible citation events / (visible citations + observed uncited sources), rounded percent.",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    },
    "last_seen_at": {
      "type": "string",
      "description": "Most recent answer time citing the domain.",
      "format": "date-time",
      "x-sensorhub-indexed": false,
      "x-sensorhub-searchable": false,
      "x-sensorhub-aggregatable": true,
      "x-sensorhub-filterable": true,
      "x-sensorhub-sortable": true
    }
  },
  "additionalProperties": false
}