@hostinger/mcp 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.env.example +14 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +36 -0
  3. package/.github/workflows/build-release.yaml +163 -0
  4. package/CODEOWNERS +1 -0
  5. package/Dockerfile +15 -0
  6. package/LICENSE +21 -0
  7. package/README.md +4343 -0
  8. package/build.js +60 -0
  9. package/gemini-extension.json +25 -0
  10. package/glama.json +7 -0
  11. package/package.json +59 -0
  12. package/server.json +29 -0
  13. package/skills/headless/SKILL.md +55 -0
  14. package/skills/headless/entry/bootstrap.mjs +109 -0
  15. package/skills/headless/entry/skill.md +79 -0
  16. package/skills/headless/references/DEPLOYMENT.md +34 -0
  17. package/skills/headless/references/SETUP.md +34 -0
  18. package/skills/headless/references/STORE.md +52 -0
  19. package/skills/headless/references/WORDPRESS.md +51 -0
  20. package/src/core/oauth-error.html +90 -0
  21. package/src/core/oauth-success.html +77 -0
  22. package/src/core/oauth.js +406 -0
  23. package/src/core/oauth.ts +374 -0
  24. package/src/core/runtime.js +2673 -0
  25. package/src/core/runtime.ts +2724 -0
  26. package/src/core/tools/agency-hosting.js +1535 -0
  27. package/src/core/tools/agency-hosting.ts +1550 -0
  28. package/src/core/tools/all.js +15361 -0
  29. package/src/core/tools/all.ts +15376 -0
  30. package/src/core/tools/billing.js +310 -0
  31. package/src/core/tools/billing.ts +325 -0
  32. package/src/core/tools/dns.js +393 -0
  33. package/src/core/tools/dns.ts +408 -0
  34. package/src/core/tools/domains.js +1435 -0
  35. package/src/core/tools/domains.ts +1450 -0
  36. package/src/core/tools/ecommerce.js +1426 -0
  37. package/src/core/tools/ecommerce.ts +1441 -0
  38. package/src/core/tools/horizons.js +84 -0
  39. package/src/core/tools/horizons.ts +99 -0
  40. package/src/core/tools/hosting.js +2479 -0
  41. package/src/core/tools/hosting.ts +2494 -0
  42. package/src/core/tools/mail.js +1641 -0
  43. package/src/core/tools/mail.ts +1656 -0
  44. package/src/core/tools/reach.js +2270 -0
  45. package/src/core/tools/reach.ts +2285 -0
  46. package/src/core/tools/vps.js +2248 -0
  47. package/src/core/tools/vps.ts +2263 -0
  48. package/src/core/tools/wordpress.js +1570 -0
  49. package/src/core/tools/wordpress.ts +1585 -0
  50. package/src/servers/agency-hosting.js +6 -0
  51. package/src/servers/agency-hosting.ts +6 -0
  52. package/src/servers/all.js +6 -0
  53. package/src/servers/all.ts +6 -0
  54. package/src/servers/billing.js +6 -0
  55. package/src/servers/billing.ts +6 -0
  56. package/src/servers/dns.js +6 -0
  57. package/src/servers/dns.ts +6 -0
  58. package/src/servers/domains.js +6 -0
  59. package/src/servers/domains.ts +6 -0
  60. package/src/servers/ecommerce.js +6 -0
  61. package/src/servers/ecommerce.ts +6 -0
  62. package/src/servers/horizons.js +6 -0
  63. package/src/servers/horizons.ts +6 -0
  64. package/src/servers/hosting.js +6 -0
  65. package/src/servers/hosting.ts +6 -0
  66. package/src/servers/mail.js +6 -0
  67. package/src/servers/mail.ts +6 -0
  68. package/src/servers/reach.js +6 -0
  69. package/src/servers/reach.ts +6 -0
  70. package/src/servers/vps.js +6 -0
  71. package/src/servers/vps.ts +6 -0
  72. package/src/servers/wordpress.js +6 -0
  73. package/src/servers/wordpress.ts +6 -0
  74. package/tsconfig.json +15 -0
  75. package/types.d.ts +8836 -0
@@ -0,0 +1,1435 @@
1
+ // Auto-generated tool list for group: domains
2
+ export default [
3
+ {
4
+ "name": "v2_getDomainVerificationsDIRECT",
5
+ "title": "Get domain verifications",
6
+ "annotations": {
7
+ "title": "Get domain verifications",
8
+ "readOnlyHint": true,
9
+ "destructiveHint": false
10
+ },
11
+ "description": "Retrieve a list of pending and completed domain verifications.",
12
+ "method": "GET",
13
+ "path": "/api/v2/direct/verifications/active",
14
+ "inputSchema": {
15
+ "type": "object",
16
+ "properties": {},
17
+ "required": []
18
+ },
19
+ "security": [
20
+ {
21
+ "apiToken": []
22
+ }
23
+ ],
24
+ "group": "domains"
25
+ },
26
+ {
27
+ "name": "domains_suggestDomainNamesFromADescriptionV1",
28
+ "title": "Suggest domain names from a description",
29
+ "annotations": {
30
+ "title": "Suggest domain names from a description",
31
+ "readOnlyHint": true,
32
+ "destructiveHint": false
33
+ },
34
+ "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.",
35
+ "method": "POST",
36
+ "path": "/api/domains/v1/availability/alternatives-from-description",
37
+ "inputSchema": {
38
+ "type": "object",
39
+ "properties": {
40
+ "description": {
41
+ "type": "string",
42
+ "description": "Free-text description of the project the domain is needed for"
43
+ },
44
+ "limit": {
45
+ "type": "integer",
46
+ "description": "Amount of domain names to suggest"
47
+ }
48
+ },
49
+ "required": [
50
+ "description",
51
+ "limit"
52
+ ]
53
+ },
54
+ "security": [
55
+ {
56
+ "apiToken": []
57
+ }
58
+ ],
59
+ "group": "domains"
60
+ },
61
+ {
62
+ "name": "domains_suggestDomainNamesFromADomainV1",
63
+ "title": "Suggest domain names from a domain",
64
+ "annotations": {
65
+ "title": "Suggest domain names from a domain",
66
+ "readOnlyHint": true,
67
+ "destructiveHint": false
68
+ },
69
+ "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.",
70
+ "method": "POST",
71
+ "path": "/api/domains/v1/availability/alternatives-from-domain",
72
+ "inputSchema": {
73
+ "type": "object",
74
+ "properties": {
75
+ "domain": {
76
+ "type": "string",
77
+ "description": "Domain name to base the suggestions on"
78
+ },
79
+ "limit": {
80
+ "type": "integer",
81
+ "description": "Amount of domain names to suggest"
82
+ }
83
+ },
84
+ "required": [
85
+ "domain",
86
+ "limit"
87
+ ]
88
+ },
89
+ "security": [
90
+ {
91
+ "apiToken": []
92
+ }
93
+ ],
94
+ "group": "domains"
95
+ },
96
+ {
97
+ "name": "domains_checkDomainAvailabilityV1",
98
+ "title": "Check domain availability",
99
+ "annotations": {
100
+ "title": "Check domain availability",
101
+ "readOnlyHint": true,
102
+ "destructiveHint": false
103
+ },
104
+ "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
105
+ "method": "POST",
106
+ "path": "/api/domains/v1/availability",
107
+ "inputSchema": {
108
+ "type": "object",
109
+ "properties": {
110
+ "domain": {
111
+ "type": "string",
112
+ "description": "Domain name (without TLD)"
113
+ },
114
+ "tlds": {
115
+ "type": "array",
116
+ "description": "TLDs list",
117
+ "items": {
118
+ "type": "string",
119
+ "description": "TLD without leading dot"
120
+ }
121
+ },
122
+ "with_alternatives": {
123
+ "type": "boolean",
124
+ "description": "Should response include alternatives"
125
+ }
126
+ },
127
+ "required": [
128
+ "domain",
129
+ "tlds"
130
+ ]
131
+ },
132
+ "security": [
133
+ {
134
+ "apiToken": []
135
+ }
136
+ ],
137
+ "group": "domains"
138
+ },
139
+ {
140
+ "name": "domains_getDomainForwardingV1",
141
+ "title": "Get domain forwarding",
142
+ "annotations": {
143
+ "title": "Get domain forwarding",
144
+ "readOnlyHint": true,
145
+ "destructiveHint": false
146
+ },
147
+ "description": "Retrieve domain forwarding data.\n\nUse this endpoint to view current redirect configuration for domains.",
148
+ "method": "GET",
149
+ "path": "/api/domains/v1/forwarding/{domain}",
150
+ "inputSchema": {
151
+ "type": "object",
152
+ "properties": {
153
+ "domain": {
154
+ "type": "string",
155
+ "description": "Domain name"
156
+ }
157
+ },
158
+ "required": [
159
+ "domain"
160
+ ]
161
+ },
162
+ "security": [
163
+ {
164
+ "apiToken": []
165
+ }
166
+ ],
167
+ "group": "domains"
168
+ },
169
+ {
170
+ "name": "domains_updateDomainForwardingV1",
171
+ "title": "Update domain forwarding",
172
+ "annotations": {
173
+ "title": "Update domain forwarding",
174
+ "readOnlyHint": false,
175
+ "destructiveHint": true,
176
+ "idempotentHint": true
177
+ },
178
+ "description": "Update domain forwarding configuration.\n\nUse this endpoint to modify existing redirect configuration for domains.",
179
+ "method": "PUT",
180
+ "path": "/api/domains/v1/forwarding/{domain}",
181
+ "inputSchema": {
182
+ "type": "object",
183
+ "properties": {
184
+ "domain": {
185
+ "type": "string",
186
+ "description": "Domain name"
187
+ },
188
+ "redirect_type": {
189
+ "type": "string",
190
+ "description": "Redirect type",
191
+ "enum": [
192
+ "301",
193
+ "302"
194
+ ]
195
+ },
196
+ "redirect_url": {
197
+ "type": "string",
198
+ "description": "URL to forward domain to"
199
+ }
200
+ },
201
+ "required": [
202
+ "domain",
203
+ "redirect_type",
204
+ "redirect_url"
205
+ ]
206
+ },
207
+ "security": [
208
+ {
209
+ "apiToken": []
210
+ }
211
+ ],
212
+ "group": "domains"
213
+ },
214
+ {
215
+ "name": "domains_deleteDomainForwardingV1",
216
+ "title": "Delete domain forwarding",
217
+ "annotations": {
218
+ "title": "Delete domain forwarding",
219
+ "readOnlyHint": false,
220
+ "destructiveHint": true,
221
+ "idempotentHint": true
222
+ },
223
+ "description": "Delete domain forwarding data.\n\nUse this endpoint to remove redirect configuration from domains.",
224
+ "method": "DELETE",
225
+ "path": "/api/domains/v1/forwarding/{domain}",
226
+ "inputSchema": {
227
+ "type": "object",
228
+ "properties": {
229
+ "domain": {
230
+ "type": "string",
231
+ "description": "Domain name"
232
+ }
233
+ },
234
+ "required": [
235
+ "domain"
236
+ ]
237
+ },
238
+ "security": [
239
+ {
240
+ "apiToken": []
241
+ }
242
+ ],
243
+ "group": "domains"
244
+ },
245
+ {
246
+ "name": "domains_createDomainForwardingV1",
247
+ "title": "Create domain forwarding",
248
+ "annotations": {
249
+ "title": "Create domain forwarding",
250
+ "readOnlyHint": false,
251
+ "destructiveHint": false
252
+ },
253
+ "description": "Create domain forwarding configuration.\n\nUse this endpoint to set up domain redirects to other URLs.",
254
+ "method": "POST",
255
+ "path": "/api/domains/v1/forwarding",
256
+ "inputSchema": {
257
+ "type": "object",
258
+ "properties": {
259
+ "domain": {
260
+ "type": "string",
261
+ "description": "Domain name"
262
+ },
263
+ "redirect_type": {
264
+ "type": "string",
265
+ "description": "Redirect type",
266
+ "enum": [
267
+ "301",
268
+ "302"
269
+ ]
270
+ },
271
+ "redirect_url": {
272
+ "type": "string",
273
+ "description": "URL to forward domain to"
274
+ }
275
+ },
276
+ "required": [
277
+ "domain",
278
+ "redirect_type",
279
+ "redirect_url"
280
+ ]
281
+ },
282
+ "security": [
283
+ {
284
+ "apiToken": []
285
+ }
286
+ ],
287
+ "group": "domains"
288
+ },
289
+ {
290
+ "name": "domains_getPendingIRTPVerificationV1",
291
+ "title": "Get pending IRTP verification",
292
+ "annotations": {
293
+ "title": "Get pending IRTP verification",
294
+ "readOnlyHint": true,
295
+ "destructiveHint": false
296
+ },
297
+ "description": "Retrieve a pending IRTP verification for a domain.\n\nBoth the old and new registrant must confirm it before the WHOIS change takes effect.\n\nUse this endpoint to check the status of a WHOIS change awaiting registrant confirmation.",
298
+ "method": "GET",
299
+ "path": "/api/domains/v1/irtp/{domain}",
300
+ "inputSchema": {
301
+ "type": "object",
302
+ "properties": {
303
+ "domain": {
304
+ "type": "string",
305
+ "description": "Domain name"
306
+ }
307
+ },
308
+ "required": [
309
+ "domain"
310
+ ]
311
+ },
312
+ "security": [
313
+ {
314
+ "apiToken": []
315
+ }
316
+ ],
317
+ "group": "domains"
318
+ },
319
+ {
320
+ "name": "domains_cancelPendingIRTPVerificationV1",
321
+ "title": "Cancel pending IRTP verification",
322
+ "annotations": {
323
+ "title": "Cancel pending IRTP verification",
324
+ "readOnlyHint": false,
325
+ "destructiveHint": true,
326
+ "idempotentHint": true
327
+ },
328
+ "description": "Cancel a pending IRTP verification.\n\nUse this endpoint to back out of a WHOIS change that is stuck waiting on registrant confirmation,\nfor example when the confirmation email cannot be received, without waiting out the 5-day expiry.",
329
+ "method": "DELETE",
330
+ "path": "/api/domains/v1/irtp/{domain}",
331
+ "inputSchema": {
332
+ "type": "object",
333
+ "properties": {
334
+ "domain": {
335
+ "type": "string",
336
+ "description": "Domain name"
337
+ }
338
+ },
339
+ "required": [
340
+ "domain"
341
+ ]
342
+ },
343
+ "security": [
344
+ {
345
+ "apiToken": []
346
+ }
347
+ ],
348
+ "group": "domains"
349
+ },
350
+ {
351
+ "name": "domains_getIncomingDomainMoveV1",
352
+ "title": "Get incoming domain move",
353
+ "annotations": {
354
+ "title": "Get incoming domain move",
355
+ "readOnlyHint": true,
356
+ "destructiveHint": false
357
+ },
358
+ "description": "Retrieve the incoming move for a specified domain.\n\nReturns 404 when no account is moving this domain to you.\n\nUse this endpoint to check whether a domain addressed to you is still waiting to be accepted.",
359
+ "method": "GET",
360
+ "path": "/api/domains/v1/move/incoming/{domain}",
361
+ "inputSchema": {
362
+ "type": "object",
363
+ "properties": {
364
+ "domain": {
365
+ "type": "string",
366
+ "description": "Domain name"
367
+ },
368
+ "force_sync": {
369
+ "type": "boolean",
370
+ "description": "Re-check the move against the registry before responding. Only has an effect while the move is in the `activating` status."
371
+ }
372
+ },
373
+ "required": [
374
+ "domain"
375
+ ]
376
+ },
377
+ "security": [
378
+ {
379
+ "apiToken": []
380
+ }
381
+ ],
382
+ "group": "domains"
383
+ },
384
+ {
385
+ "name": "domains_acceptIncomingDomainMoveV1",
386
+ "title": "Accept incoming domain move",
387
+ "annotations": {
388
+ "title": "Accept incoming domain move",
389
+ "readOnlyHint": false,
390
+ "destructiveHint": true,
391
+ "idempotentHint": true
392
+ },
393
+ "description": "Accept an incoming move for a specified domain.\n\nThe provided WHOIS profiles become the contacts of the domain, so they must belong\nto your account and satisfy the requirements of the TLD. Only the contact types the\ndomain actually uses are applied, but all four profile IDs have to be provided.\n\nThe move has to still be waiting for your decision, already accepted moves\ncannot be accepted again.\n\nAccepting does not complete the move. A confirmation email is sent to the email address of\nthe new owner contact, and the domain changes hands only after the change is confirmed from it.\nUntil then the move stays in the `activating` status, which can be followed with the\n[incoming move endpoint](#tag/domains-move).\n\nUse this endpoint to take ownership of a domain offered to you.",
394
+ "method": "PUT",
395
+ "path": "/api/domains/v1/move/incoming/{domain}",
396
+ "inputSchema": {
397
+ "type": "object",
398
+ "properties": {
399
+ "domain": {
400
+ "type": "string",
401
+ "description": "Domain name"
402
+ },
403
+ "domain_contacts": {
404
+ "type": "object",
405
+ "description": "WHOIS profiles of the accepting account. Only the contact types required by the TLD are applied, but all four IDs must be provided.",
406
+ "properties": {
407
+ "owner_id": {
408
+ "type": "integer",
409
+ "description": "Owner contact WHOIS record ID"
410
+ },
411
+ "admin_id": {
412
+ "type": "integer",
413
+ "description": "Administrative contact WHOIS record ID"
414
+ },
415
+ "billing_id": {
416
+ "type": "integer",
417
+ "description": "Billing contact WHOIS record ID"
418
+ },
419
+ "tech_id": {
420
+ "type": "integer",
421
+ "description": "Technical contact WHOIS record ID"
422
+ }
423
+ },
424
+ "required": [
425
+ "owner_id",
426
+ "admin_id",
427
+ "billing_id",
428
+ "tech_id"
429
+ ]
430
+ }
431
+ },
432
+ "required": [
433
+ "domain",
434
+ "domain_contacts"
435
+ ]
436
+ },
437
+ "security": [
438
+ {
439
+ "apiToken": []
440
+ }
441
+ ],
442
+ "group": "domains"
443
+ },
444
+ {
445
+ "name": "domains_rejectIncomingDomainMoveV1",
446
+ "title": "Reject incoming domain move",
447
+ "annotations": {
448
+ "title": "Reject incoming domain move",
449
+ "readOnlyHint": false,
450
+ "destructiveHint": true,
451
+ "idempotentHint": true
452
+ },
453
+ "description": "Reject an incoming move for a specified domain.\n\nThe domain stays in the account which initiated the move.\nMoves you have already accepted cannot be rejected anymore.\n\nUse this endpoint to decline a domain you do not want to take over.",
454
+ "method": "DELETE",
455
+ "path": "/api/domains/v1/move/incoming/{domain}",
456
+ "inputSchema": {
457
+ "type": "object",
458
+ "properties": {
459
+ "domain": {
460
+ "type": "string",
461
+ "description": "Domain name"
462
+ }
463
+ },
464
+ "required": [
465
+ "domain"
466
+ ]
467
+ },
468
+ "security": [
469
+ {
470
+ "apiToken": []
471
+ }
472
+ ],
473
+ "group": "domains"
474
+ },
475
+ {
476
+ "name": "domains_getIncomingDomainMoveListV1",
477
+ "title": "Get incoming domain move list",
478
+ "annotations": {
479
+ "title": "Get incoming domain move list",
480
+ "readOnlyHint": true,
481
+ "destructiveHint": false
482
+ },
483
+ "description": "Retrieve all domains other Hostinger accounts are moving to your account.\n\nMoves of every status are returned, including the ones which already completed.\n\nUse this endpoint to find domains waiting for you to accept them.",
484
+ "method": "GET",
485
+ "path": "/api/domains/v1/move/incoming",
486
+ "inputSchema": {
487
+ "type": "object",
488
+ "properties": {},
489
+ "required": []
490
+ },
491
+ "security": [
492
+ {
493
+ "apiToken": []
494
+ }
495
+ ],
496
+ "group": "domains"
497
+ },
498
+ {
499
+ "name": "domains_getOutgoingDomainMoveV1",
500
+ "title": "Get outgoing domain move",
501
+ "annotations": {
502
+ "title": "Get outgoing domain move",
503
+ "readOnlyHint": true,
504
+ "destructiveHint": false
505
+ },
506
+ "description": "Retrieve the outgoing move for a specified domain.\n\nReturns 404 when the domain has no move in progress.\n\nUse this endpoint to track the status of a move you have initiated for a single domain.",
507
+ "method": "GET",
508
+ "path": "/api/domains/v1/move/outgoing/{domain}",
509
+ "inputSchema": {
510
+ "type": "object",
511
+ "properties": {
512
+ "domain": {
513
+ "type": "string",
514
+ "description": "Domain name"
515
+ }
516
+ },
517
+ "required": [
518
+ "domain"
519
+ ]
520
+ },
521
+ "security": [
522
+ {
523
+ "apiToken": []
524
+ }
525
+ ],
526
+ "group": "domains"
527
+ },
528
+ {
529
+ "name": "domains_startOutgoingDomainMoveV1",
530
+ "title": "Start outgoing domain move",
531
+ "annotations": {
532
+ "title": "Start outgoing domain move",
533
+ "readOnlyHint": false,
534
+ "destructiveHint": false
535
+ },
536
+ "description": "Initiate a move of a specified domain to another Hostinger account.\n\nThe receiving account has to already exist and accept the move before the domain changes hands.\n\nThe domain must be active. The subscription it belongs to is resolved automatically,\nand the request is rejected with a 404 status code when the domain has no domain\nsubscription of its own.\n\nDomains protected by premium protection require an additional verification step,\nsuch requests are rejected with a 428 status code.\n\nUse this endpoint to hand a domain over to another Hostinger user.",
537
+ "method": "POST",
538
+ "path": "/api/domains/v1/move/outgoing/{domain}",
539
+ "inputSchema": {
540
+ "type": "object",
541
+ "properties": {
542
+ "domain": {
543
+ "type": "string",
544
+ "description": "Domain name"
545
+ },
546
+ "new_customer_email": {
547
+ "type": "string",
548
+ "description": "Email address of the Hostinger account receiving the domain"
549
+ }
550
+ },
551
+ "required": [
552
+ "domain",
553
+ "new_customer_email"
554
+ ]
555
+ },
556
+ "security": [
557
+ {
558
+ "apiToken": []
559
+ }
560
+ ],
561
+ "group": "domains"
562
+ },
563
+ {
564
+ "name": "domains_cancelOutgoingDomainMoveV1",
565
+ "title": "Cancel outgoing domain move",
566
+ "annotations": {
567
+ "title": "Cancel outgoing domain move",
568
+ "readOnlyHint": false,
569
+ "destructiveHint": true,
570
+ "idempotentHint": true
571
+ },
572
+ "description": "Cancel an outgoing move for a specified domain.\n\nThe move can only be cancelled while the receiving account has not accepted it yet.\nThe domain stays in your account.\n\nUse this endpoint to withdraw a move you no longer want to complete.",
573
+ "method": "DELETE",
574
+ "path": "/api/domains/v1/move/outgoing/{domain}",
575
+ "inputSchema": {
576
+ "type": "object",
577
+ "properties": {
578
+ "domain": {
579
+ "type": "string",
580
+ "description": "Domain name"
581
+ }
582
+ },
583
+ "required": [
584
+ "domain"
585
+ ]
586
+ },
587
+ "security": [
588
+ {
589
+ "apiToken": []
590
+ }
591
+ ],
592
+ "group": "domains"
593
+ },
594
+ {
595
+ "name": "domains_getOutgoingDomainMoveListV1",
596
+ "title": "Get outgoing domain move list",
597
+ "annotations": {
598
+ "title": "Get outgoing domain move list",
599
+ "readOnlyHint": true,
600
+ "destructiveHint": false
601
+ },
602
+ "description": "Retrieve all domains you are moving to other Hostinger accounts.\n\nOnly moves which have not completed yet are returned.\n\nUse this endpoint to track moves you have initiated and the accounts they are addressed to.",
603
+ "method": "GET",
604
+ "path": "/api/domains/v1/move/outgoing",
605
+ "inputSchema": {
606
+ "type": "object",
607
+ "properties": {},
608
+ "required": []
609
+ },
610
+ "security": [
611
+ {
612
+ "apiToken": []
613
+ }
614
+ ],
615
+ "group": "domains"
616
+ },
617
+ {
618
+ "name": "domains_getDomainAuthorizationCodeV1",
619
+ "title": "Get domain authorization code",
620
+ "annotations": {
621
+ "title": "Get domain authorization code",
622
+ "readOnlyHint": true,
623
+ "destructiveHint": false
624
+ },
625
+ "description": "Retrieve the authorization (EPP) code for a specified domain so it can be transferred\naway from Hostinger to another registrar.\n\nRequesting a new code invalidates any code retrieved previously.\n\nUse this endpoint to obtain the code required to transfer a domain to another registrar.",
626
+ "method": "GET",
627
+ "path": "/api/domains/v1/portfolio/{domain}/auth-code",
628
+ "inputSchema": {
629
+ "type": "object",
630
+ "properties": {
631
+ "domain": {
632
+ "type": "string",
633
+ "description": "Domain name"
634
+ }
635
+ },
636
+ "required": [
637
+ "domain"
638
+ ]
639
+ },
640
+ "security": [
641
+ {
642
+ "apiToken": []
643
+ }
644
+ ],
645
+ "group": "domains"
646
+ },
647
+ {
648
+ "name": "domains_claimFreeDomainV1",
649
+ "title": "Claim free domain",
650
+ "annotations": {
651
+ "title": "Claim free domain",
652
+ "readOnlyHint": false,
653
+ "destructiveHint": false
654
+ },
655
+ "description": "Claim a free domain available on your account and register it.\n\nUnlike purchasing a domain, this consumes a free domain you already have,\nso no payment method is required.\n\nA successful response means the domain is registered. If registration fails, login to\n[hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before claiming.\n\nRequests which cannot be fulfilled are rejected with an error code in the response body,\nfor example `2037` when no free domain is available.\n\nUse this endpoint to register a domain using a free domain from your account.",
656
+ "method": "POST",
657
+ "path": "/api/domains/v1/portfolio/claim",
658
+ "inputSchema": {
659
+ "type": "object",
660
+ "properties": {
661
+ "domain": {
662
+ "type": "string",
663
+ "description": "Domain name"
664
+ },
665
+ "domain_contacts": {
666
+ "type": "object",
667
+ "description": "Domain contact information",
668
+ "properties": {
669
+ "owner_id": {
670
+ "type": "integer",
671
+ "description": "Owner contact WHOIS record ID"
672
+ },
673
+ "admin_id": {
674
+ "type": "integer",
675
+ "description": "Administrative contact WHOIS record ID"
676
+ },
677
+ "billing_id": {
678
+ "type": "integer",
679
+ "description": "Billing contact WHOIS record ID"
680
+ },
681
+ "tech_id": {
682
+ "type": "integer",
683
+ "description": "Technical contact WHOIS record ID"
684
+ }
685
+ }
686
+ },
687
+ "additional_details": {
688
+ "type": "object",
689
+ "description": "Additional registration data, possible values depends on TLD",
690
+ "properties": {}
691
+ }
692
+ },
693
+ "required": [
694
+ "domain"
695
+ ]
696
+ },
697
+ "security": [
698
+ {
699
+ "apiToken": []
700
+ }
701
+ ],
702
+ "group": "domains"
703
+ },
704
+ {
705
+ "name": "domains_enableDomainLockV1",
706
+ "title": "Enable domain lock",
707
+ "annotations": {
708
+ "title": "Enable domain lock",
709
+ "readOnlyHint": false,
710
+ "destructiveHint": true,
711
+ "idempotentHint": true
712
+ },
713
+ "description": "Enable domain lock for the domain.\n\nWhen domain lock is enabled,\nthe domain cannot be transferred to another registrar without first disabling the lock.\n\nUse this endpoint to secure domains against unauthorized transfers.",
714
+ "method": "PUT",
715
+ "path": "/api/domains/v1/portfolio/{domain}/domain-lock",
716
+ "inputSchema": {
717
+ "type": "object",
718
+ "properties": {
719
+ "domain": {
720
+ "type": "string",
721
+ "description": "Domain name"
722
+ }
723
+ },
724
+ "required": [
725
+ "domain"
726
+ ]
727
+ },
728
+ "security": [
729
+ {
730
+ "apiToken": []
731
+ }
732
+ ],
733
+ "group": "domains"
734
+ },
735
+ {
736
+ "name": "domains_disableDomainLockV1",
737
+ "title": "Disable domain lock",
738
+ "annotations": {
739
+ "title": "Disable domain lock",
740
+ "readOnlyHint": false,
741
+ "destructiveHint": true,
742
+ "idempotentHint": true
743
+ },
744
+ "description": "Disable domain lock for the domain.\n\nDomain lock needs to be disabled before transferring the domain to another registrar.\n\nUse this endpoint to prepare domains for transfer to other registrars.",
745
+ "method": "DELETE",
746
+ "path": "/api/domains/v1/portfolio/{domain}/domain-lock",
747
+ "inputSchema": {
748
+ "type": "object",
749
+ "properties": {
750
+ "domain": {
751
+ "type": "string",
752
+ "description": "Domain name"
753
+ }
754
+ },
755
+ "required": [
756
+ "domain"
757
+ ]
758
+ },
759
+ "security": [
760
+ {
761
+ "apiToken": []
762
+ }
763
+ ],
764
+ "group": "domains"
765
+ },
766
+ {
767
+ "name": "domains_getDomainDetailsV1",
768
+ "title": "Get domain details",
769
+ "annotations": {
770
+ "title": "Get domain details",
771
+ "readOnlyHint": true,
772
+ "destructiveHint": false
773
+ },
774
+ "description": "Retrieve detailed information for specified domain.\n\nUse this endpoint to view comprehensive domain configuration and status.",
775
+ "method": "GET",
776
+ "path": "/api/domains/v1/portfolio/{domain}",
777
+ "inputSchema": {
778
+ "type": "object",
779
+ "properties": {
780
+ "domain": {
781
+ "type": "string",
782
+ "description": "Domain name"
783
+ }
784
+ },
785
+ "required": [
786
+ "domain"
787
+ ]
788
+ },
789
+ "security": [
790
+ {
791
+ "apiToken": []
792
+ }
793
+ ],
794
+ "group": "domains"
795
+ },
796
+ {
797
+ "name": "domains_getDomainListV1",
798
+ "title": "Get domain list",
799
+ "annotations": {
800
+ "title": "Get domain list",
801
+ "readOnlyHint": true,
802
+ "destructiveHint": false
803
+ },
804
+ "description": "Retrieve all domains associated with your account.\n\nUse this endpoint to view user's domain portfolio.",
805
+ "method": "GET",
806
+ "path": "/api/domains/v1/portfolio",
807
+ "inputSchema": {
808
+ "type": "object",
809
+ "properties": {},
810
+ "required": []
811
+ },
812
+ "security": [
813
+ {
814
+ "apiToken": []
815
+ }
816
+ ],
817
+ "group": "domains"
818
+ },
819
+ {
820
+ "name": "domains_purchaseNewDomainV1",
821
+ "title": "Purchase new domain",
822
+ "annotations": {
823
+ "title": "Purchase new domain",
824
+ "readOnlyHint": false,
825
+ "destructiveHint": false
826
+ },
827
+ "description": "Purchase and register a new domain name.\n\nIf registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status.\n\nIf no payment method is provided, your default payment method will be used automatically.\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nSome TLDs require `additional_details` to be provided and these will be validated before completing purchase.\n\nUse this endpoint to register new domains for users.",
828
+ "method": "POST",
829
+ "path": "/api/domains/v1/portfolio",
830
+ "inputSchema": {
831
+ "type": "object",
832
+ "properties": {
833
+ "domain": {
834
+ "type": "string",
835
+ "description": "Domain name"
836
+ },
837
+ "item_id": {
838
+ "type": "string",
839
+ "description": "Catalog price item ID"
840
+ },
841
+ "payment_method_id": {
842
+ "type": "integer",
843
+ "description": "Payment method ID, default will be used if not provided"
844
+ },
845
+ "domain_contacts": {
846
+ "type": "object",
847
+ "description": "Domain contact information",
848
+ "properties": {
849
+ "owner_id": {
850
+ "type": "integer",
851
+ "description": "Owner contact WHOIS record ID"
852
+ },
853
+ "admin_id": {
854
+ "type": "integer",
855
+ "description": "Administrative contact WHOIS record ID"
856
+ },
857
+ "billing_id": {
858
+ "type": "integer",
859
+ "description": "Billing contact WHOIS record ID"
860
+ },
861
+ "tech_id": {
862
+ "type": "integer",
863
+ "description": "Technical contact WHOIS record ID"
864
+ }
865
+ }
866
+ },
867
+ "additional_details": {
868
+ "type": "object",
869
+ "description": "Additional registration data, possible values depends on TLD",
870
+ "properties": {}
871
+ },
872
+ "coupons": {
873
+ "type": "array",
874
+ "description": "Discount coupon codes",
875
+ "items": {
876
+ "type": "string",
877
+ "description": "coupons parameter"
878
+ }
879
+ }
880
+ },
881
+ "required": [
882
+ "domain",
883
+ "item_id"
884
+ ]
885
+ },
886
+ "security": [
887
+ {
888
+ "apiToken": []
889
+ }
890
+ ],
891
+ "group": "domains"
892
+ },
893
+ {
894
+ "name": "domains_enablePrivacyProtectionV1",
895
+ "title": "Enable privacy protection",
896
+ "annotations": {
897
+ "title": "Enable privacy protection",
898
+ "readOnlyHint": false,
899
+ "destructiveHint": true,
900
+ "idempotentHint": true
901
+ },
902
+ "description": "Enable privacy protection for the domain.\n\nWhen privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database.\n\nUse this endpoint to protect domain owner's personal information from public view.",
903
+ "method": "PUT",
904
+ "path": "/api/domains/v1/portfolio/{domain}/privacy-protection",
905
+ "inputSchema": {
906
+ "type": "object",
907
+ "properties": {
908
+ "domain": {
909
+ "type": "string",
910
+ "description": "Domain name"
911
+ }
912
+ },
913
+ "required": [
914
+ "domain"
915
+ ]
916
+ },
917
+ "security": [
918
+ {
919
+ "apiToken": []
920
+ }
921
+ ],
922
+ "group": "domains"
923
+ },
924
+ {
925
+ "name": "domains_disablePrivacyProtectionV1",
926
+ "title": "Disable privacy protection",
927
+ "annotations": {
928
+ "title": "Disable privacy protection",
929
+ "readOnlyHint": false,
930
+ "destructiveHint": true,
931
+ "idempotentHint": true
932
+ },
933
+ "description": "Disable privacy protection for the domain.\n\nWhen privacy protection is disabled, domain owner's personal information is visible in public WHOIS database.\n\nUse this endpoint to make domain owner's information publicly visible.",
934
+ "method": "DELETE",
935
+ "path": "/api/domains/v1/portfolio/{domain}/privacy-protection",
936
+ "inputSchema": {
937
+ "type": "object",
938
+ "properties": {
939
+ "domain": {
940
+ "type": "string",
941
+ "description": "Domain name"
942
+ }
943
+ },
944
+ "required": [
945
+ "domain"
946
+ ]
947
+ },
948
+ "security": [
949
+ {
950
+ "apiToken": []
951
+ }
952
+ ],
953
+ "group": "domains"
954
+ },
955
+ {
956
+ "name": "domains_getDomainRenewalInformationV1",
957
+ "title": "Get domain renewal information",
958
+ "annotations": {
959
+ "title": "Get domain renewal information",
960
+ "readOnlyHint": true,
961
+ "destructiveHint": false
962
+ },
963
+ "description": "Retrieve renewal information for a specified domain, including its status and current\nexpiration date.\n\nUse this endpoint to build renewal automation and expiry monitoring for a single domain.",
964
+ "method": "GET",
965
+ "path": "/api/domains/v1/portfolio/{domain}/renewal",
966
+ "inputSchema": {
967
+ "type": "object",
968
+ "properties": {
969
+ "domain": {
970
+ "type": "string",
971
+ "description": "Domain name"
972
+ }
973
+ },
974
+ "required": [
975
+ "domain"
976
+ ]
977
+ },
978
+ "security": [
979
+ {
980
+ "apiToken": []
981
+ }
982
+ ],
983
+ "group": "domains"
984
+ },
985
+ {
986
+ "name": "domains_updateDomainNameserversV1",
987
+ "title": "Update domain nameservers",
988
+ "annotations": {
989
+ "title": "Update domain nameservers",
990
+ "readOnlyHint": false,
991
+ "destructiveHint": true,
992
+ "idempotentHint": true
993
+ },
994
+ "description": "Set nameservers for a specified domain.\n\nBe aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable.\n\nUse this endpoint to configure custom DNS hosting for domains.",
995
+ "method": "PUT",
996
+ "path": "/api/domains/v1/portfolio/{domain}/nameservers",
997
+ "inputSchema": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "domain": {
1001
+ "type": "string",
1002
+ "description": "Domain name"
1003
+ },
1004
+ "ns1": {
1005
+ "type": "string",
1006
+ "description": "First name server"
1007
+ },
1008
+ "ns2": {
1009
+ "type": "string",
1010
+ "description": "Second name server"
1011
+ },
1012
+ "ns3": {
1013
+ "type": "string",
1014
+ "description": "Third name server"
1015
+ },
1016
+ "ns4": {
1017
+ "type": "string",
1018
+ "description": "Fourth name server"
1019
+ }
1020
+ },
1021
+ "required": [
1022
+ "domain",
1023
+ "ns1",
1024
+ "ns2"
1025
+ ]
1026
+ },
1027
+ "security": [
1028
+ {
1029
+ "apiToken": []
1030
+ }
1031
+ ],
1032
+ "group": "domains"
1033
+ },
1034
+ {
1035
+ "name": "domains_claimFreeDomainTransferV1",
1036
+ "title": "Claim free domain transfer",
1037
+ "annotations": {
1038
+ "title": "Claim free domain transfer",
1039
+ "readOnlyHint": false,
1040
+ "destructiveHint": false
1041
+ },
1042
+ "description": "Claim a free domain transfer available on your account and start the transfer.\n\nUnlike purchasing a transfer, this consumes a free domain transfer you already have,\nso no payment method is required.\n\nBefore making request, unlock the domain at the current registrar and get its authorization\ncode. The transfer is validated first, so domains which cannot be transferred are rejected\nbefore the free domain transfer is consumed.\n\nA successful response means the transfer has been started. Completion depends on the current\nregistrar and can be followed with the [transfer list endpoint](#tag/domains-transfer).\n\nIf no WHOIS information is provided, default contact information for that TLD will be used.\nBefore making request, ensure WHOIS information for desired TLD exists in your account.\n\nRequests which cannot be fulfilled are rejected with an error code in the response body.\n\nUse this endpoint to transfer a domain using a free domain transfer from your account.",
1043
+ "method": "POST",
1044
+ "path": "/api/domains/v1/transfers/claim",
1045
+ "inputSchema": {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "domain": {
1049
+ "type": "string",
1050
+ "description": "Domain name"
1051
+ },
1052
+ "auth_code": {
1053
+ "type": "string",
1054
+ "description": "Authorization code from the current registrar"
1055
+ },
1056
+ "domain_contacts": {
1057
+ "type": "object",
1058
+ "description": "Domain contact information",
1059
+ "properties": {
1060
+ "owner_id": {
1061
+ "type": "integer",
1062
+ "description": "Owner contact WHOIS record ID"
1063
+ },
1064
+ "admin_id": {
1065
+ "type": "integer",
1066
+ "description": "Administrative contact WHOIS record ID"
1067
+ },
1068
+ "billing_id": {
1069
+ "type": "integer",
1070
+ "description": "Billing contact WHOIS record ID"
1071
+ },
1072
+ "tech_id": {
1073
+ "type": "integer",
1074
+ "description": "Technical contact WHOIS record ID"
1075
+ }
1076
+ }
1077
+ },
1078
+ "should_keep_ns": {
1079
+ "type": "boolean",
1080
+ "description": "Keep the existing nameservers of the domain"
1081
+ }
1082
+ },
1083
+ "required": [
1084
+ "domain",
1085
+ "auth_code"
1086
+ ]
1087
+ },
1088
+ "security": [
1089
+ {
1090
+ "apiToken": []
1091
+ }
1092
+ ],
1093
+ "group": "domains"
1094
+ },
1095
+ {
1096
+ "name": "domains_getTransferV1",
1097
+ "title": "Get transfer",
1098
+ "annotations": {
1099
+ "title": "Get transfer",
1100
+ "readOnlyHint": true,
1101
+ "destructiveHint": false
1102
+ },
1103
+ "description": "Retrieve the transfer for a specified domain.\n\nUse this endpoint to track an incoming or outgoing registrar transfer and its status.",
1104
+ "method": "GET",
1105
+ "path": "/api/domains/v1/transfers/{domain}",
1106
+ "inputSchema": {
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "domain": {
1110
+ "type": "string",
1111
+ "description": "Domain name"
1112
+ }
1113
+ },
1114
+ "required": [
1115
+ "domain"
1116
+ ]
1117
+ },
1118
+ "security": [
1119
+ {
1120
+ "apiToken": []
1121
+ }
1122
+ ],
1123
+ "group": "domains"
1124
+ },
1125
+ {
1126
+ "name": "domains_getTransferListV1",
1127
+ "title": "Get transfer list",
1128
+ "annotations": {
1129
+ "title": "Get transfer list",
1130
+ "readOnlyHint": true,
1131
+ "destructiveHint": false
1132
+ },
1133
+ "description": "Retrieve all domain transfers in your portfolio.\n\nUse this endpoint to monitor incoming and outgoing registrar transfers across your domains.",
1134
+ "method": "GET",
1135
+ "path": "/api/domains/v1/transfers",
1136
+ "inputSchema": {
1137
+ "type": "object",
1138
+ "properties": {},
1139
+ "required": []
1140
+ },
1141
+ "security": [
1142
+ {
1143
+ "apiToken": []
1144
+ }
1145
+ ],
1146
+ "group": "domains"
1147
+ },
1148
+ {
1149
+ "name": "domains_changeWHOISProfileForDomainV1",
1150
+ "title": "Change WHOIS profile for domain",
1151
+ "annotations": {
1152
+ "title": "Change WHOIS profile for domain",
1153
+ "readOnlyHint": false,
1154
+ "destructiveHint": true,
1155
+ "idempotentHint": true
1156
+ },
1157
+ "description": "Change WHOIS contact profile for a domain.\n\nRepoints the given contact roles to a new WHOIS profile and submits the change to the registry.\nThe profile currently assigned to those roles is resolved automatically;\nthe request fails if the given roles are not all on the same profile today.\n\nChanging transfer sensitive fields on the owner contact starts an IRTP verification.\n\nThe change is processed asynchronously.\n\nUse this endpoint to move a registered domain onto different contact information.",
1158
+ "method": "PUT",
1159
+ "path": "/api/domains/v1/whois/change",
1160
+ "inputSchema": {
1161
+ "type": "object",
1162
+ "properties": {
1163
+ "new_whois_id": {
1164
+ "type": "integer",
1165
+ "description": "WHOIS profile ID to assign to the domain"
1166
+ },
1167
+ "domain": {
1168
+ "type": "string",
1169
+ "description": "Domain name"
1170
+ },
1171
+ "change_for": {
1172
+ "type": "array",
1173
+ "description": "Contact roles to repoint to the new WHOIS profile",
1174
+ "items": {
1175
+ "type": "string",
1176
+ "description": "change_for parameter",
1177
+ "enum": [
1178
+ "owner",
1179
+ "admin",
1180
+ "billing",
1181
+ "tech"
1182
+ ]
1183
+ }
1184
+ }
1185
+ },
1186
+ "required": [
1187
+ "new_whois_id",
1188
+ "domain",
1189
+ "change_for"
1190
+ ]
1191
+ },
1192
+ "security": [
1193
+ {
1194
+ "apiToken": []
1195
+ }
1196
+ ],
1197
+ "group": "domains"
1198
+ },
1199
+ {
1200
+ "name": "domains_setWHOISProfileAsDefaultV1",
1201
+ "title": "Set WHOIS profile as default",
1202
+ "annotations": {
1203
+ "title": "Set WHOIS profile as default",
1204
+ "readOnlyHint": false,
1205
+ "destructiveHint": true,
1206
+ "idempotentHint": true
1207
+ },
1208
+ "description": "Set WHOIS contact profile as default.\n\nThe default profile is pre-selected for the TLD it belongs to when registering new domains.\n\nUse this endpoint to avoid picking contact information for every registration.",
1209
+ "method": "PUT",
1210
+ "path": "/api/domains/v1/whois/default/{whoisId}",
1211
+ "inputSchema": {
1212
+ "type": "object",
1213
+ "properties": {
1214
+ "whoisId": {
1215
+ "type": "integer",
1216
+ "description": "WHOIS ID"
1217
+ }
1218
+ },
1219
+ "required": [
1220
+ "whoisId"
1221
+ ]
1222
+ },
1223
+ "security": [
1224
+ {
1225
+ "apiToken": []
1226
+ }
1227
+ ],
1228
+ "group": "domains"
1229
+ },
1230
+ {
1231
+ "name": "domains_unsetDefaultWHOISProfileV1",
1232
+ "title": "Unset default WHOIS profile",
1233
+ "annotations": {
1234
+ "title": "Unset default WHOIS profile",
1235
+ "readOnlyHint": false,
1236
+ "destructiveHint": true,
1237
+ "idempotentHint": true
1238
+ },
1239
+ "description": "Unset WHOIS contact profile as default.\n\nThe profile itself is kept, it is only no longer pre-selected for its TLD.\n\nUse this endpoint to stop reusing contact information for new registrations.",
1240
+ "method": "DELETE",
1241
+ "path": "/api/domains/v1/whois/default/{whoisId}",
1242
+ "inputSchema": {
1243
+ "type": "object",
1244
+ "properties": {
1245
+ "whoisId": {
1246
+ "type": "integer",
1247
+ "description": "WHOIS ID"
1248
+ }
1249
+ },
1250
+ "required": [
1251
+ "whoisId"
1252
+ ]
1253
+ },
1254
+ "security": [
1255
+ {
1256
+ "apiToken": []
1257
+ }
1258
+ ],
1259
+ "group": "domains"
1260
+ },
1261
+ {
1262
+ "name": "domains_getWHOISProfileV1",
1263
+ "title": "Get WHOIS profile",
1264
+ "annotations": {
1265
+ "title": "Get WHOIS profile",
1266
+ "readOnlyHint": true,
1267
+ "destructiveHint": false
1268
+ },
1269
+ "description": "Retrieve a WHOIS contact profile.\n\nUse this endpoint to view domain registration contact information.",
1270
+ "method": "GET",
1271
+ "path": "/api/domains/v1/whois/{whoisId}",
1272
+ "inputSchema": {
1273
+ "type": "object",
1274
+ "properties": {
1275
+ "whoisId": {
1276
+ "type": "integer",
1277
+ "description": "WHOIS ID"
1278
+ }
1279
+ },
1280
+ "required": [
1281
+ "whoisId"
1282
+ ]
1283
+ },
1284
+ "security": [
1285
+ {
1286
+ "apiToken": []
1287
+ }
1288
+ ],
1289
+ "group": "domains"
1290
+ },
1291
+ {
1292
+ "name": "domains_deleteWHOISProfileV1",
1293
+ "title": "Delete WHOIS profile",
1294
+ "annotations": {
1295
+ "title": "Delete WHOIS profile",
1296
+ "readOnlyHint": false,
1297
+ "destructiveHint": true,
1298
+ "idempotentHint": true
1299
+ },
1300
+ "description": "Delete WHOIS contact profile.\n\nUse this endpoint to remove unused contact profiles from account.",
1301
+ "method": "DELETE",
1302
+ "path": "/api/domains/v1/whois/{whoisId}",
1303
+ "inputSchema": {
1304
+ "type": "object",
1305
+ "properties": {
1306
+ "whoisId": {
1307
+ "type": "integer",
1308
+ "description": "WHOIS ID"
1309
+ }
1310
+ },
1311
+ "required": [
1312
+ "whoisId"
1313
+ ]
1314
+ },
1315
+ "security": [
1316
+ {
1317
+ "apiToken": []
1318
+ }
1319
+ ],
1320
+ "group": "domains"
1321
+ },
1322
+ {
1323
+ "name": "domains_getWHOISProfileListV1",
1324
+ "title": "Get WHOIS profile list",
1325
+ "annotations": {
1326
+ "title": "Get WHOIS profile list",
1327
+ "readOnlyHint": true,
1328
+ "destructiveHint": false
1329
+ },
1330
+ "description": "Retrieve WHOIS contact profiles.\n\nUse this endpoint to view available contact profiles for domain registration.",
1331
+ "method": "GET",
1332
+ "path": "/api/domains/v1/whois",
1333
+ "inputSchema": {
1334
+ "type": "object",
1335
+ "properties": {
1336
+ "tld": {
1337
+ "type": "string",
1338
+ "description": "Filter by TLD (without leading dot)"
1339
+ }
1340
+ },
1341
+ "required": []
1342
+ },
1343
+ "security": [
1344
+ {
1345
+ "apiToken": []
1346
+ }
1347
+ ],
1348
+ "group": "domains"
1349
+ },
1350
+ {
1351
+ "name": "domains_createWHOISProfileV1",
1352
+ "title": "Create WHOIS profile",
1353
+ "annotations": {
1354
+ "title": "Create WHOIS profile",
1355
+ "readOnlyHint": false,
1356
+ "destructiveHint": false
1357
+ },
1358
+ "description": "Create WHOIS contact profile.\n\nUse this endpoint to add new contact information for domain registration.",
1359
+ "method": "POST",
1360
+ "path": "/api/domains/v1/whois",
1361
+ "inputSchema": {
1362
+ "type": "object",
1363
+ "properties": {
1364
+ "tld": {
1365
+ "type": "string",
1366
+ "description": "TLD of the domain (without leading dot)"
1367
+ },
1368
+ "country": {
1369
+ "type": "string",
1370
+ "description": "ISO 3166 2-letter country code"
1371
+ },
1372
+ "entity_type": {
1373
+ "type": "string",
1374
+ "description": "Legal entity type",
1375
+ "enum": [
1376
+ "individual",
1377
+ "organization"
1378
+ ]
1379
+ },
1380
+ "tld_details": {
1381
+ "type": "object",
1382
+ "description": "TLD details",
1383
+ "properties": {}
1384
+ },
1385
+ "whois_details": {
1386
+ "type": "object",
1387
+ "description": "WHOIS details",
1388
+ "properties": {}
1389
+ }
1390
+ },
1391
+ "required": [
1392
+ "tld",
1393
+ "entity_type",
1394
+ "country",
1395
+ "whois_details"
1396
+ ]
1397
+ },
1398
+ "security": [
1399
+ {
1400
+ "apiToken": []
1401
+ }
1402
+ ],
1403
+ "group": "domains"
1404
+ },
1405
+ {
1406
+ "name": "domains_getWHOISProfileUsageV1",
1407
+ "title": "Get WHOIS profile usage",
1408
+ "annotations": {
1409
+ "title": "Get WHOIS profile usage",
1410
+ "readOnlyHint": true,
1411
+ "destructiveHint": false
1412
+ },
1413
+ "description": "Retrieve domain list where provided WHOIS contact profile is used.\n\nUse this endpoint to view which domains use specific contact profiles.",
1414
+ "method": "GET",
1415
+ "path": "/api/domains/v1/whois/{whoisId}/usage",
1416
+ "inputSchema": {
1417
+ "type": "object",
1418
+ "properties": {
1419
+ "whoisId": {
1420
+ "type": "integer",
1421
+ "description": "WHOIS ID"
1422
+ }
1423
+ },
1424
+ "required": [
1425
+ "whoisId"
1426
+ ]
1427
+ },
1428
+ "security": [
1429
+ {
1430
+ "apiToken": []
1431
+ }
1432
+ ],
1433
+ "group": "domains"
1434
+ }
1435
+ ];