space.highport.admin.listTopSites
Schema Diff
+10 -10
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"id": "space.highport.admin.listTopSites",
3
3
"defs": {
4
4
"main": {
5
5
"type": "query",
6
6
"errors": [
7
7
{
8
8
"name": "AnalyticsDisabled",
9
-
"description": "This deployment has no analytics store configured, so no traffic was ever recorded. Distinct from an empty list, which means the window held no traffic worth ranking."
9
+
"description": "No analytics store is configured, so no traffic was recorded. An empty list means something else: the window had no traffic worth ranking."
10
10
}
11
11
],
12
12
"output": {
13
13
"schema": {
14
14
"type": "object",
15
15
"required": [
16
16
"sites"
17
17
],
18
18
"properties": {
19
19
"sites": {
20
20
"type": "array",
21
21
"items": {
22
22
"ref": "#topSite",
23
23
"type": "ref"
24
24
}
25
25
}
26
26
}
27
27
},
28
28
"encoding": "application/json"
29
29
},
30
30
"parameters": {
31
31
"type": "params",
32
32
"properties": {
33
33
"days": {
34
34
"type": "integer",
35
35
"default": 7,
36
36
"maximum": 30,
37
37
"minimum": 1,
38
-
"description": "Length of the trailing window, in days, ending now."
38
+
"description": "How many days back the window reaches from now."
39
39
},
40
40
"limit": {
41
41
"type": "integer",
42
42
"default": 20,
43
43
"maximum": 100,
44
44
"minimum": 1,
45
-
"description": "Maximum sites to return. Fewer come back when the window holds fewer ranked domains that are safe to show."
45
+
"description": "Maximum sites to return. Fewer come back if not enough domains qualify."
46
46
},
47
47
"minRequests": {
48
48
"type": "integer",
49
49
"default": 0,
50
50
"minimum": 0,
51
-
"description": "Floor under the ranked figure, so a near-dead domain cannot rank on a quiet window."
51
+
"description": "Minimum requests a domain needs to be ranked, so near-dead domains do not rank in a quiet window."
52
52
}
53
53
}
54
54
},
55
-
"description": "Domains ranked by successful, non-crawler request count over a trailing window. A popularity signal and nothing more, but one that is safe to publish: a domain that is not serving, that is denylisted directly or by pattern or through its identity, its space, its record or its serving CID, or that carries any malware finding, never appears. Answered from an hourly rollup that trails real time by up to ten minutes, which is invisible at this window's scale."
55
+
"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."
56
56
},
57
57
"topSite": {
58
58
"type": "object",
59
59
"required": [
60
60
"domain",
61
61
"requests",
62
62
"botRequests",
63
63
"siteDid"
64
64
],
65
65
"properties": {
66
66
"domain": {
67
67
"type": "string",
68
68
"description": "The hostname."
69
69
},
70
70
"siteDid": {
71
71
"type": "string",
72
72
"format": "did",
73
-
"description": "The registration's owner."
73
+
"description": "The domain's registered owner."
74
74
},
75
75
"requests": {
76
76
"type": "integer",
77
-
"description": "Responses in the window that were 2xx and not classified as a crawler. This is the figure the ranking is on: a showcase ranks what people read, so bytes do not decide it, an error loop cannot win it, and a scraper cannot either."
77
+
"description": "Non-crawler 2xx responses in the window. The ranking uses this figure, so bytes, error loops and scrapers cannot move it."
78
78
},
79
79
"recordCid": {
80
80
"type": "string",
81
81
"format": "cid",
82
-
"description": "The record version the serving snapshot was built from, which is how a later run tells a republished site from unchanged bytes. Absent when the domain is serving without an active snapshot."
82
+
"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."
83
83
},
84
84
"botRequests": {
85
85
"type": "integer",
86
-
"description": "Crawler responses in the window, at every status, reported beside the ranked figure rather than folded into it — the same split getSiteTraffic's status mix reports, so a caller can see what was excluded."
86
+
"description": "Crawler responses at any status, reported separately from requests so callers can see what was excluded."
87
87
}
88
88
},
89
-
"description": "One domain's standing in the window, and the identity of what is published there."
89
+
"description": "One domain's rank in the window, and what it publishes."
90
90
}
91
91
},
92
92
"$type": "com.atproto.lexicon.schema",
93
93
"lexicon": 1
94
94
}