{
"id": "space.highport.admin.listTopSites",
"defs": {
"main": {
"type": "query",
"errors": [
{
"name": "AnalyticsDisabled",
"description": "No analytics store is configured, so no traffic was recorded. An empty list means something else: the window had no traffic worth ranking."
}
],
"output": {
"schema": {
"type": "object",
"required": [
"sites"
],
"properties": {
"sites": {
"type": "array",
"items": {
"ref": "#topSite",
"type": "ref"
}
}
}
},
"encoding": "application/json"
},
"parameters": {
"type": "params",
"properties": {
"days": {
"type": "integer",
"default": 7,
"maximum": 30,
"minimum": 1,
"description": "How many days back the window reaches from now."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Maximum sites to return. Fewer come back if not enough domains qualify."
},
"minRequests": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Minimum requests a domain needs to be ranked, so near-dead domains do not rank in a quiet window."
}
}
},
"description": "Domains ranked by successful, non-crawler requests over a trailing window. Safe to publish: a domain is left out if it is not serving, has a malware finding, or is denylisted in any way (directly, by pattern, or through its identity, space, record or serving CID). Counts can lag by up to ten minutes."
},
"topSite": {
"type": "object",
"required": [
"domain",
"requests",
"botRequests",
"siteDid"
],
"properties": {
"domain": {
"type": "string",
"description": "The hostname."
},
"siteDid": {
"type": "string",
"format": "did",
"description": "The domain's registered owner."
},
"requests": {
"type": "integer",
"description": "Non-crawler 2xx responses in the window. The ranking uses this figure, so bytes, error loops and scrapers cannot move it."
},
"recordCid": {
"type": "string",
"format": "cid",
"description": "The record version behind the serving snapshot, which lets a later run tell a republished site from an unchanged one. Absent when the domain serves without an active snapshot."
},
"botRequests": {
"type": "integer",
"description": "Crawler responses at any status, reported separately from requests so callers can see what was excluded."
}
},
"description": "One domain's rank in the window, and what it publishes."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}