at.marque.partner.checkAvailability
Schema Diff
+19 -14
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"id": "at.marque.partner.checkAvailability",
3
3
"defs": {
4
4
"main": {
5
5
"type": "query",
6
6
"output": {
7
7
"schema": {
8
8
"type": "object",
9
9
"required": [
10
10
"results"
11
11
],
12
12
"properties": {
13
13
"results": {
14
14
"type": "array",
15
15
"items": {
16
16
"ref": "#result",
17
17
"type": "ref"
18
-
}
18
+
},
19
+
"description": "One result per domain, in request order; blank entries are skipped."
19
20
}
20
21
}
21
22
},
22
23
"encoding": "application/json"
23
24
},
24
25
"parameters": {
25
26
"type": "params",
26
27
"required": [
27
28
"domains"
28
29
],
29
30
"properties": {
30
31
"domains": {
31
32
"type": "array",
32
33
"items": {
33
34
"type": "string",
34
35
"maxLength": 253
35
36
},
36
37
"maxLength": 500,
37
38
"minLength": 1,
38
39
"description": "Fully qualified domain names to check, e.g. example.com."
39
40
}
40
41
}
41
42
},
42
43
"description": "Check up to 500 domains at once. Call it proxied through the user's PDS (atproto-proxy: did:web:marque.at:api#marque_registrar) with an at.marque.partnerApi-scoped token. Each result carries its own error field, so a single bad domain does not fail the batch. Prices are in whole US dollars and are indicative; the binding amount is set when createCheckout builds the Stripe session. Premium domains are flagged with isPremium and priced via premiumPrice."
43
44
},
44
45
"result": {
45
46
"type": "object",
46
47
"required": [
47
48
"domain",
48
49
"available"
49
50
],
50
51
"properties": {
51
52
"error": {
52
53
"type": "string",
53
-
"description": "Per-domain error, e.g. invalid format or unsupported TLD."
54
+
"description": "Per-domain failure reason when the domain could not be checked or priced, e.g. invalid format, unsupported TLD, or not available via the registrar. When set, the pricing fields are absent or zero."
54
55
},
55
56
"price": {
56
57
"type": "integer",
57
-
"description": "Registration price per year, in whole US dollars."
58
+
"description": "Registration price per year, in whole US dollars. Absent for unavailable or errored domains."
58
59
},
59
60
"domain": {
60
61
"type": "string",
61
-
"maxLength": 253
62
+
"maxLength": 253,
63
+
"description": "The fully qualified domain name that was checked, lowercased."
62
64
},
63
65
"status": {
64
66
"type": "string",
65
-
"description": "Registry status when not available, e.g. active.",
67
+
"description": "Registry status of the domain: free (available), premium (available at a premium price), or active (already registered, not available). Absent when the domain could not be checked (see error).",
66
68
"knownValues": [
67
-
"active",
68
69
"free",
69
-
"premium"
70
+
"premium",
71
+
"active"
70
72
]
71
73
},
72
74
"available": {
73
75
"type": "boolean",
74
-
"description": "Whether the domain is available to register."
76
+
"description": "Whether the domain can be registered now. True when status is free or premium."
75
77
},
76
78
"isPremium": {
77
-
"type": "boolean"
79
+
"type": "boolean",
80
+
"description": "Whether this is a premium domain, priced individually by the registry rather than at the standard TLD price."
78
81
},
79
82
"maxPeriod": {
80
83
"type": "integer",
81
-
"description": "Maximum registration period in years."
84
+
"description": "Maximum registration period in years for this TLD."
82
85
},
83
86
"minPeriod": {
84
87
"type": "integer",
85
-
"description": "Minimum registration period in years."
88
+
"description": "Minimum registration period in years for this TLD."
86
89
},
87
90
"renewPrice": {
88
91
"type": "integer",
89
92
"description": "Renewal price per year, in whole US dollars."
90
93
},
91
94
"premiumPrice": {
92
95
"type": "integer",
93
96
"description": "Premium registration price, in whole US dollars, when isPremium is true."
94
97
},
95
98
"transferPrice": {
96
99
"type": "integer",
97
-
"description": "Transfer price, in whole US dollars."
100
+
"description": "Transfer price, in whole US dollars. 0 when transferring this TLD does not cost a registration period."
98
101
},
99
102
"transferAddsYear": {
100
-
"type": "boolean"
103
+
"type": "boolean",
104
+
"description": "Whether transferring this TLD adds a year of registration (and so is charged)."
101
105
},
102
106
"whoisPrivacyAllowed": {
103
-
"type": "boolean"
107
+
"type": "boolean",
108
+
"description": "Whether WHOIS privacy can be enabled for this TLD at registration."
104
109
}
105
110
}
106
111
}
107
112
},
108
113
"$type": "com.atproto.lexicon.schema",
109
114
"lexicon": 1,
110
115
"description": "Check availability and pricing for a batch of domains, for partner integrations."
111
116
}