@graph8/sdk 0.251.0 → 0.262.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 (350) hide show
  1. package/README.md +9 -2
  2. package/dist/cli.js +216 -0
  3. package/dist/index.d.mts +105 -7
  4. package/dist/index.d.ts +105 -7
  5. package/dist/index.js +44 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +44 -3
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react.d.mts +103 -7
  10. package/dist/react.d.ts +103 -7
  11. package/dist/react.js +62 -11
  12. package/dist/react.js.map +1 -1
  13. package/dist/react.mjs +53 -12
  14. package/dist/react.mjs.map +1 -1
  15. package/dist/types/README.md +7 -0
  16. package/dist/types/agency.d.ts +20 -0
  17. package/dist/types/agentSetup.d.ts +57 -0
  18. package/dist/types/api.d.ts +127 -0
  19. package/dist/types/appClient.d.ts +99 -0
  20. package/dist/types/appPlatform.d.ts +269 -0
  21. package/dist/types/appTokens.d.ts +125 -0
  22. package/dist/types/apps.d.ts +130 -0
  23. package/dist/types/audiences.d.ts +88 -0
  24. package/dist/types/calendar.d.ts +55 -0
  25. package/dist/types/campaigns.d.ts +61 -0
  26. package/dist/types/chat.d.ts +35 -0
  27. package/dist/types/cli.d.ts +14 -0
  28. package/dist/types/companies.d.ts +123 -0
  29. package/dist/types/contacts.d.ts +200 -0
  30. package/dist/types/copilot.d.ts +31 -0
  31. package/dist/types/core.d.ts +1052 -0
  32. package/dist/types/deals.d.ts +215 -0
  33. package/dist/types/enrich.d.ts +51 -0
  34. package/dist/types/fields.d.ts +84 -0
  35. package/dist/types/forms.d.ts +16 -0
  36. package/dist/types/http.d.ts +141 -0
  37. package/dist/types/inbox.d.ts +123 -0
  38. package/dist/types/index.d.ts +63 -0
  39. package/dist/types/intent.d.ts +196 -0
  40. package/dist/types/lists.d.ts +44 -0
  41. package/dist/types/mailboxes.d.ts +240 -0
  42. package/dist/types/marketplace.d.ts +62 -0
  43. package/dist/types/meetings.d.ts +70 -0
  44. package/dist/types/newsletter.d.ts +212 -0
  45. package/dist/types/notes.d.ts +57 -0
  46. package/dist/types/objects.d.ts +281 -0
  47. package/dist/types/pipelines.d.ts +135 -0
  48. package/dist/types/quotes.d.ts +143 -0
  49. package/dist/types/react.d.ts +978 -0
  50. package/dist/types/search.d.ts +99 -0
  51. package/dist/types/sequences.d.ts +255 -0
  52. package/dist/types/signals.d.ts +28 -0
  53. package/dist/types/skills.d.ts +176 -0
  54. package/dist/types/snippet.d.ts +24 -0
  55. package/dist/types/studio.d.ts +161 -0
  56. package/dist/types/tasks.d.ts +101 -0
  57. package/dist/types/types.d.ts +45 -0
  58. package/dist/types/utils.d.ts +21 -0
  59. package/dist/types/version.d.ts +10 -0
  60. package/dist/types/visitors.d.ts +29 -0
  61. package/dist/types/voice.d.ts +304 -0
  62. package/dist/types/webhooks.d.ts +71 -0
  63. package/dist/types/workflows.d.ts +229 -0
  64. package/docs/agents.md +748 -0
  65. package/docs/api/README.md +165 -0
  66. package/docs/api/accounts.d.ts +396 -0
  67. package/docs/api/accounts.md +644 -0
  68. package/docs/api/adCampaigns.d.ts +707 -0
  69. package/docs/api/adCampaigns.md +1091 -0
  70. package/docs/api/adCreatives.d.ts +996 -0
  71. package/docs/api/adCreatives.md +1708 -0
  72. package/docs/api/agency.d.ts +556 -0
  73. package/docs/api/agency.md +845 -0
  74. package/docs/api/agent.d.ts +330 -0
  75. package/docs/api/agent.md +514 -0
  76. package/docs/api/agents.d.ts +1622 -0
  77. package/docs/api/agents.md +2860 -0
  78. package/docs/api/aiInbox.d.ts +1984 -0
  79. package/docs/api/aiInbox.md +3490 -0
  80. package/docs/api/analytics.d.ts +1273 -0
  81. package/docs/api/analytics.md +2095 -0
  82. package/docs/api/apiKeys.d.ts +252 -0
  83. package/docs/api/apiKeys.md +318 -0
  84. package/docs/api/appDeployments.d.ts +236 -0
  85. package/docs/api/appDeployments.md +471 -0
  86. package/docs/api/appDomains.d.ts +171 -0
  87. package/docs/api/appDomains.md +281 -0
  88. package/docs/api/appLogs.d.ts +120 -0
  89. package/docs/api/appLogs.md +159 -0
  90. package/docs/api/appObjects.d.ts +415 -0
  91. package/docs/api/appObjects.md +568 -0
  92. package/docs/api/appPages.d.ts +557 -0
  93. package/docs/api/appPages.md +796 -0
  94. package/docs/api/appPlatformTokens.d.ts +123 -0
  95. package/docs/api/appPlatformTokens.md +172 -0
  96. package/docs/api/appointments.d.ts +2361 -0
  97. package/docs/api/appointments.md +3917 -0
  98. package/docs/api/apps.d.ts +822 -0
  99. package/docs/api/apps.md +1342 -0
  100. package/docs/api/assertUpsert.d.ts +286 -0
  101. package/docs/api/assertUpsert.md +370 -0
  102. package/docs/api/audienceSyncs.d.ts +259 -0
  103. package/docs/api/audienceSyncs.md +395 -0
  104. package/docs/api/brandKit.d.ts +686 -0
  105. package/docs/api/brandKit.md +1133 -0
  106. package/docs/api/bugReports.d.ts +181 -0
  107. package/docs/api/bugReports.md +268 -0
  108. package/docs/api/by-path.md +3260 -0
  109. package/docs/api/calendarInvites.d.ts +117 -0
  110. package/docs/api/calendarInvites.md +148 -0
  111. package/docs/api/campaignWorkflows.d.ts +152 -0
  112. package/docs/api/campaignWorkflows.md +200 -0
  113. package/docs/api/campaigns.d.ts +721 -0
  114. package/docs/api/campaigns.md +1236 -0
  115. package/docs/api/channels.d.ts +171 -0
  116. package/docs/api/channels.md +235 -0
  117. package/docs/api/cliCampaigns.d.ts +205 -0
  118. package/docs/api/cliCampaigns.md +256 -0
  119. package/docs/api/cliPipelines.d.ts +324 -0
  120. package/docs/api/cliPipelines.md +562 -0
  121. package/docs/api/clickHouse.d.ts +115 -0
  122. package/docs/api/clickHouse.md +138 -0
  123. package/docs/api/companies.d.ts +1636 -0
  124. package/docs/api/companies.md +2211 -0
  125. package/docs/api/companyIntelligence.d.ts +299 -0
  126. package/docs/api/companyIntelligence.md +488 -0
  127. package/docs/api/contacts.d.ts +2173 -0
  128. package/docs/api/contacts.md +3143 -0
  129. package/docs/api/content.d.ts +968 -0
  130. package/docs/api/content.md +1667 -0
  131. package/docs/api/contentGridSkills.d.ts +177 -0
  132. package/docs/api/contentGridSkills.md +271 -0
  133. package/docs/api/copilot.d.ts +1017 -0
  134. package/docs/api/copilot.md +1765 -0
  135. package/docs/api/crmSyncs.d.ts +215 -0
  136. package/docs/api/crmSyncs.md +301 -0
  137. package/docs/api/customerSuccess.d.ts +491 -0
  138. package/docs/api/customerSuccess.md +776 -0
  139. package/docs/api/deals.d.ts +1697 -0
  140. package/docs/api/deals.md +2436 -0
  141. package/docs/api/deliverability.d.ts +418 -0
  142. package/docs/api/deliverability.md +677 -0
  143. package/docs/api/desk.d.ts +1765 -0
  144. package/docs/api/desk.md +3007 -0
  145. package/docs/api/dialer.d.ts +1185 -0
  146. package/docs/api/dialer.md +2166 -0
  147. package/docs/api/dialerAnalytics.d.ts +187 -0
  148. package/docs/api/dialerAnalytics.md +257 -0
  149. package/docs/api/documents.d.ts +895 -0
  150. package/docs/api/documents.md +1440 -0
  151. package/docs/api/duplicates.d.ts +195 -0
  152. package/docs/api/duplicates.md +315 -0
  153. package/docs/api/eSign.d.ts +38 -0
  154. package/docs/api/eSign.md +54 -0
  155. package/docs/api/eSignature.d.ts +242 -0
  156. package/docs/api/eSignature.md +341 -0
  157. package/docs/api/enrichment.d.ts +3207 -0
  158. package/docs/api/enrichment.md +5225 -0
  159. package/docs/api/events.d.ts +115 -0
  160. package/docs/api/events.md +105 -0
  161. package/docs/api/fields.d.ts +482 -0
  162. package/docs/api/fields.md +566 -0
  163. package/docs/api/forms.d.ts +1012 -0
  164. package/docs/api/forms.md +1542 -0
  165. package/docs/api/gtmCampaigns.d.ts +662 -0
  166. package/docs/api/gtmCampaigns.md +1044 -0
  167. package/docs/api/gtmContext.d.ts +1187 -0
  168. package/docs/api/gtmContext.md +2112 -0
  169. package/docs/api/gtmDeliverability.d.ts +60 -0
  170. package/docs/api/gtmDeliverability.md +63 -0
  171. package/docs/api/gtmKnowledgeBase.d.ts +76 -0
  172. package/docs/api/gtmKnowledgeBase.md +91 -0
  173. package/docs/api/gtmLaunchHelpers.d.ts +123 -0
  174. package/docs/api/gtmLaunchHelpers.md +148 -0
  175. package/docs/api/gtmLibrary.d.ts +448 -0
  176. package/docs/api/gtmLibrary.md +780 -0
  177. package/docs/api/health.d.ts +39 -0
  178. package/docs/api/health.md +58 -0
  179. package/docs/api/imageLibrary.d.ts +341 -0
  180. package/docs/api/imageLibrary.md +569 -0
  181. package/docs/api/imports.d.ts +157 -0
  182. package/docs/api/imports.md +174 -0
  183. package/docs/api/inbox.d.ts +709 -0
  184. package/docs/api/inbox.md +1067 -0
  185. package/docs/api/install.d.ts +213 -0
  186. package/docs/api/install.md +317 -0
  187. package/docs/api/installedApps.d.ts +131 -0
  188. package/docs/api/installedApps.md +241 -0
  189. package/docs/api/integrationStatus.d.ts +142 -0
  190. package/docs/api/integrationStatus.md +205 -0
  191. package/docs/api/integrations.d.ts +2327 -0
  192. package/docs/api/integrations.md +3791 -0
  193. package/docs/api/intent.d.ts +482 -0
  194. package/docs/api/intent.md +858 -0
  195. package/docs/api/knowledge.d.ts +501 -0
  196. package/docs/api/knowledge.md +843 -0
  197. package/docs/api/knowledgeBase.d.ts +84 -0
  198. package/docs/api/knowledgeBase.md +96 -0
  199. package/docs/api/landingPages.d.ts +1411 -0
  200. package/docs/api/landingPages.md +2488 -0
  201. package/docs/api/leads.d.ts +133 -0
  202. package/docs/api/leads.md +180 -0
  203. package/docs/api/library.d.ts +217 -0
  204. package/docs/api/library.md +338 -0
  205. package/docs/api/linkedIn.d.ts +227 -0
  206. package/docs/api/linkedIn.md +289 -0
  207. package/docs/api/linkedInOutreach.d.ts +727 -0
  208. package/docs/api/linkedInOutreach.md +990 -0
  209. package/docs/api/lists.d.ts +1106 -0
  210. package/docs/api/lists.md +1609 -0
  211. package/docs/api/logs.d.ts +71 -0
  212. package/docs/api/logs.md +70 -0
  213. package/docs/api/mailboxes.d.ts +1050 -0
  214. package/docs/api/mailboxes.md +1690 -0
  215. package/docs/api/marketingIntelligence.d.ts +256 -0
  216. package/docs/api/marketingIntelligence.md +454 -0
  217. package/docs/api/marketplace.d.ts +3173 -0
  218. package/docs/api/marketplace.md +5953 -0
  219. package/docs/api/mcp.d.ts +69 -0
  220. package/docs/api/mcp.md +69 -0
  221. package/docs/api/me.d.ts +54 -0
  222. package/docs/api/me.md +56 -0
  223. package/docs/api/meetings.d.ts +539 -0
  224. package/docs/api/meetings.md +747 -0
  225. package/docs/api/newsletter.d.ts +1613 -0
  226. package/docs/api/newsletter.md +2746 -0
  227. package/docs/api/notes.d.ts +517 -0
  228. package/docs/api/notes.md +888 -0
  229. package/docs/api/notifications.d.ts +94 -0
  230. package/docs/api/notifications.md +105 -0
  231. package/docs/api/objects.d.ts +621 -0
  232. package/docs/api/objects.md +1098 -0
  233. package/docs/api/openSearch.d.ts +234 -0
  234. package/docs/api/openSearch.md +297 -0
  235. package/docs/api/ops.d.ts +299 -0
  236. package/docs/api/ops.md +339 -0
  237. package/docs/api/orgGovernance.d.ts +393 -0
  238. package/docs/api/orgGovernance.md +623 -0
  239. package/docs/api/orgVideos.d.ts +184 -0
  240. package/docs/api/orgVideos.md +252 -0
  241. package/docs/api/organizationSettings.d.ts +626 -0
  242. package/docs/api/organizationSettings.md +911 -0
  243. package/docs/api/phoneNumbers.d.ts +484 -0
  244. package/docs/api/phoneNumbers.md +777 -0
  245. package/docs/api/profile.d.ts +329 -0
  246. package/docs/api/profile.md +540 -0
  247. package/docs/api/programmaticPages.d.ts +400 -0
  248. package/docs/api/programmaticPages.md +626 -0
  249. package/docs/api/providerDomains.d.ts +866 -0
  250. package/docs/api/providerDomains.md +1446 -0
  251. package/docs/api/providerUsage.d.ts +129 -0
  252. package/docs/api/providerUsage.md +186 -0
  253. package/docs/api/public.d.ts +69 -0
  254. package/docs/api/public.md +78 -0
  255. package/docs/api/publicCopilot.d.ts +67 -0
  256. package/docs/api/publicCopilot.md +80 -0
  257. package/docs/api/publicSignals.d.ts +66 -0
  258. package/docs/api/publicSignals.md +71 -0
  259. package/docs/api/publicVisitors.d.ts +97 -0
  260. package/docs/api/publicVisitors.md +118 -0
  261. package/docs/api/quotes.d.ts +1564 -0
  262. package/docs/api/quotes.md +2553 -0
  263. package/docs/api/radar.d.ts +808 -0
  264. package/docs/api/radar.md +1431 -0
  265. package/docs/api/radarReports.d.ts +208 -0
  266. package/docs/api/radarReports.md +306 -0
  267. package/docs/api/recordRoles.d.ts +143 -0
  268. package/docs/api/recordRoles.md +175 -0
  269. package/docs/api/repos.d.ts +146 -0
  270. package/docs/api/repos.md +211 -0
  271. package/docs/api/research.d.ts +295 -0
  272. package/docs/api/research.md +534 -0
  273. package/docs/api/revenue.d.ts +402 -0
  274. package/docs/api/revenue.md +608 -0
  275. package/docs/api/revenueAnalytics.d.ts +147 -0
  276. package/docs/api/revenueAnalytics.md +212 -0
  277. package/docs/api/revenueLifecycle.d.ts +207 -0
  278. package/docs/api/revenueLifecycle.md +274 -0
  279. package/docs/api/revenueRecords.d.ts +372 -0
  280. package/docs/api/revenueRecords.md +563 -0
  281. package/docs/api/roles.d.ts +431 -0
  282. package/docs/api/roles.md +812 -0
  283. package/docs/api/salesCoach.d.ts +877 -0
  284. package/docs/api/salesCoach.md +1540 -0
  285. package/docs/api/sandbox.d.ts +210 -0
  286. package/docs/api/sandbox.md +380 -0
  287. package/docs/api/scans.d.ts +104 -0
  288. package/docs/api/scans.md +136 -0
  289. package/docs/api/scheduleBuy.d.ts +293 -0
  290. package/docs/api/scheduleBuy.md +431 -0
  291. package/docs/api/scraping.d.ts +266 -0
  292. package/docs/api/scraping.md +383 -0
  293. package/docs/api/sdrAnalytics.d.ts +138 -0
  294. package/docs/api/sdrAnalytics.md +246 -0
  295. package/docs/api/search.d.ts +598 -0
  296. package/docs/api/search.md +866 -0
  297. package/docs/api/seo.d.ts +447 -0
  298. package/docs/api/seo.md +660 -0
  299. package/docs/api/sequenceLifecycle.d.ts +439 -0
  300. package/docs/api/sequenceLifecycle.md +513 -0
  301. package/docs/api/sequences.d.ts +1936 -0
  302. package/docs/api/sequences.md +3232 -0
  303. package/docs/api/settings.d.ts +448 -0
  304. package/docs/api/settings.md +731 -0
  305. package/docs/api/signals.d.ts +1441 -0
  306. package/docs/api/signals.md +2526 -0
  307. package/docs/api/signatures.d.ts +719 -0
  308. package/docs/api/signatures.md +1247 -0
  309. package/docs/api/skills.d.ts +230 -0
  310. package/docs/api/skills.md +466 -0
  311. package/docs/api/snippet.d.ts +85 -0
  312. package/docs/api/snippet.md +106 -0
  313. package/docs/api/socialPublishing.d.ts +824 -0
  314. package/docs/api/socialPublishing.md +1245 -0
  315. package/docs/api/studioDocuments.d.ts +244 -0
  316. package/docs/api/studioDocuments.md +348 -0
  317. package/docs/api/support.d.ts +90 -0
  318. package/docs/api/support.md +76 -0
  319. package/docs/api/suppressions.d.ts +241 -0
  320. package/docs/api/suppressions.md +343 -0
  321. package/docs/api/surveys.d.ts +847 -0
  322. package/docs/api/surveys.md +1223 -0
  323. package/docs/api/tasks.d.ts +813 -0
  324. package/docs/api/tasks.md +1344 -0
  325. package/docs/api/teamMembers.d.ts +668 -0
  326. package/docs/api/teamMembers.md +1040 -0
  327. package/docs/api/teams.d.ts +784 -0
  328. package/docs/api/teams.md +1395 -0
  329. package/docs/api/usage.d.ts +277 -0
  330. package/docs/api/usage.md +389 -0
  331. package/docs/api/visitors.d.ts +690 -0
  332. package/docs/api/visitors.md +1075 -0
  333. package/docs/api/voice.d.ts +4661 -0
  334. package/docs/api/voice.md +7905 -0
  335. package/docs/api/webAnalytics.d.ts +964 -0
  336. package/docs/api/webAnalytics.md +1452 -0
  337. package/docs/api/webChat.d.ts +1704 -0
  338. package/docs/api/webChat.md +2048 -0
  339. package/docs/api/webhooks.d.ts +251 -0
  340. package/docs/api/webhooks.md +386 -0
  341. package/docs/api/websiteEditor.d.ts +324 -0
  342. package/docs/api/websiteEditor.md +517 -0
  343. package/docs/api/work.d.ts +2298 -0
  344. package/docs/api/work.md +3096 -0
  345. package/docs/api/workbench.d.ts +2962 -0
  346. package/docs/api/workbench.md +4884 -0
  347. package/docs/api/workflows.d.ts +1218 -0
  348. package/docs/api/workflows.md +2302 -0
  349. package/docs/sdk-clients.md +4339 -0
  350. package/package.json +10 -3
@@ -0,0 +1,1446 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.providerDomains`: Provider Domains
4
+
5
+ 34 operations (13 read, 2 write, 4 destructive, 9 billable, 6 external).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.providerDomains.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
8
+
9
+ Every example below assumes this setup (server-side, API key):
10
+
11
+ ```ts
12
+ import { g8 } from "@graph8/sdk";
13
+
14
+ g8.init({ apiKey: process.env.G8_API_KEY! });
15
+ ```
16
+
17
+ Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
18
+
19
+ Exact TypeScript types for every operation on this page, and every schema they use: [providerDomains.d.ts](providerDomains.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`addExternalDomains`](#op-addexternaldomains) | `POST /api/v1/provider-domains/add-external` | billable | `campaigns:run` | Add External Domains |
26
+ | [`cancelDomainTransfer`](#op-canceldomaintransfer) | `POST /api/v1/provider-domains/cancel-transfer` | destructive | `campaigns:delete` | Cancel Domain Transfer |
27
+ | [`checkDomainAvailability`](#op-checkdomainavailability) | `POST /api/v1/provider-domains/check-availability` | billable | `campaigns:run` | Check Domain Availability |
28
+ | [`checkDomainPropagation`](#op-checkdomainpropagation) | `POST /api/v1/provider-domains/{domain_id}/check-propagation` | billable | `campaigns:run` | Check Domain Propagation |
29
+ | [`checkExternalAvailability`](#op-checkexternalavailability) | `POST /api/v1/provider-domains/check-external-availability` | read | `campaigns:read` | Check External Availability |
30
+ | [`checkMailboxStatus`](#op-checkmailboxstatus) | `POST /api/v1/provider-domains/{domain_id}/check-mailbox-status` | write | `campaigns:write` | Check Mailbox Status |
31
+ | [`checkTransferAvailability`](#op-checktransferavailability) | `POST /api/v1/provider-domains/check-transfer-availability` | read | `campaigns:read` | Check Transfer Availability |
32
+ | [`checkoutPurchaseDomains`](#op-checkoutpurchasedomains) | `POST /api/v1/provider-domains/checkout-purchase` | billable | `campaigns:run` | Checkout Purchase Domains |
33
+ | [`checkoutPurchaseMailboxes`](#op-checkoutpurchasemailboxes) | `POST /api/v1/provider-domains/{domain_id}/checkout-mailboxes` | billable | `campaigns:run` | Checkout Purchase Mailboxes |
34
+ | [`checkoutTransferDomain`](#op-checkouttransferdomain) | `POST /api/v1/provider-domains/checkout-transfer` | billable | `campaigns:run` | Checkout Transfer Domain |
35
+ | [`connectProvider`](#op-connectprovider) | `POST /api/v1/provider-domains/{domain_id}/connect-provider` | billable | `campaigns:run` | Connect Provider |
36
+ | [`deleteDomainForwarding`](#op-deletedomainforwarding) | `DELETE /api/v1/provider-domains/{domain_id}/forwarding` | destructive | `campaigns:delete` | Delete Domain Forwarding |
37
+ | [`deleteDomainMailbox`](#op-deletedomainmailbox) | `POST /api/v1/provider-domains/{domain_id}/delete-mailbox` | destructive | `campaigns:delete` | Delete Domain Mailbox |
38
+ | [`generateDomainNames`](#op-generatedomainnames) | `POST /api/v1/provider-domains/generate-domains` | read | `campaigns:read` | Generate Domain Names |
39
+ | [`getDomainInfo`](#op-getdomaininfo) | `POST /api/v1/provider-domains/{domain_id}/info` | read | `campaigns:read` | Get Domain Info |
40
+ | [`getExternalDomainInfo`](#op-getexternaldomaininfo) | `POST /api/v1/provider-domains/{domain_id}/external-info` | read | `campaigns:read` | Get External Domain Info |
41
+ | [`getProviderStatus`](#op-getproviderstatus) | `POST /api/v1/provider-domains/{domain_id}/provider-status` | read | `campaigns:read` | Get Provider Status |
42
+ | [`getProvisioningStates`](#op-getprovisioningstates) | `POST /api/v1/provider-domains/{domain_id}/provisioning-states` | read | `campaigns:read` | Get Provisioning States |
43
+ | [`getSendingDomainStats`](#op-getsendingdomainstats) | `GET /api/v1/provider-domains/stats` | read | `campaigns:read` | Get Sending Domain Stats |
44
+ | [`getSendingPricing`](#op-getsendingpricing) | `GET /api/v1/provider-domains/pricing` | read | `campaigns:read` | Get Sending Pricing |
45
+ | [`getTransferInfo`](#op-gettransferinfo) | `POST /api/v1/provider-domains/{domain_id}/transfer-info` | read | `campaigns:read` | Get Transfer Info |
46
+ | [`listDomainMailboxes`](#op-listdomainmailboxes) | `GET /api/v1/provider-domains/{domain_id}/mailboxes` | read | `campaigns:read` | List Domain Mailboxes |
47
+ | [`listMailboxesForStat`](#op-listmailboxesforstat) | `GET /api/v1/provider-domains/stats/mailboxes/{stat_key}` | read | `campaigns:read` | List Mailboxes For Stat |
48
+ | [`listProviderDomains`](#op-listproviderdomains) | `GET /api/v1/provider-domains` | read | `campaigns:read` | List Provider Domains |
49
+ | [`refreshDomainFromProvider`](#op-refreshdomainfromprovider) | `POST /api/v1/provider-domains/{domain_id}/refresh-from-provider` | write | `campaigns:write` | Refresh Domain From Provider |
50
+ | [`regenerateNameservers`](#op-regeneratenameservers) | `POST /api/v1/provider-domains/{domain_id}/regenerate-nameservers` | external | `campaigns:run` | Regenerate Nameservers |
51
+ | [`resendRegistrantVerification`](#op-resendregistrantverification) | `POST /api/v1/provider-domains/{domain_id}/resend-verification` | external | `campaigns:run` | Resend Registrant Verification |
52
+ | [`resendTransferPassword`](#op-resendtransferpassword) | `POST /api/v1/provider-domains/{domain_id}/resend-transfer-password` | external | `campaigns:run` | Resend Transfer Password |
53
+ | [`resetMailboxPassword`](#op-resetmailboxpassword) | `POST /api/v1/provider-domains/{domain_id}/reset-password` | destructive | `campaigns:delete` | Reset Mailbox Password |
54
+ | [`setAutoWarmup`](#op-setautowarmup) | `POST /api/v1/provider-domains/{domain_id}/auto-warmup` | billable | `campaigns:run` | Set Auto Warmup |
55
+ | [`setDnsRecords`](#op-setdnsrecords) | `POST /api/v1/provider-domains/{domain_id}/dns` | billable | `campaigns:run` | Set Dns Records |
56
+ | [`setDomainForwarding`](#op-setdomainforwarding) | `POST /api/v1/provider-domains/{domain_id}/forwarding` | external | `campaigns:run` | Set Domain Forwarding |
57
+ | [`setNameservers`](#op-setnameservers) | `POST /api/v1/provider-domains/{domain_id}/set-nameservers` | external | `campaigns:run` | Set Nameservers |
58
+ | [`updateMailboxProfilePicture`](#op-updatemailboxprofilepicture) | `POST /api/v1/provider-domains/{domain_id}/mailbox-profile-picture` | external | `campaigns:run` | Update Mailbox Profile Picture |
59
+
60
+ ---
61
+
62
+ <a id="op-addexternaldomains"></a>
63
+
64
+ ### `g8.api.providerDomains.addExternalDomains(input)`
65
+
66
+ **Add External Domains**
67
+
68
+ - HTTP: `POST /api/v1/provider-domains/add-external`
69
+ - operationId: `add_external_domains_provider_domains_add_external_post` (also callable as `g8.api.call("add_external_domains_provider_domains_add_external_post", input)`)
70
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
71
+ - API-key scope: `campaigns:run`
72
+
73
+ Register domains you already own elsewhere for use as sending domains.
74
+ Spends no credits — no registrar purchase happens here.
75
+
76
+ **Input**
77
+
78
+ | Field | Type | Required | Description |
79
+ |---|---|---|---|
80
+ | `body` | `AddExternalDomainsRequest` | yes | Request body; fields below. |
81
+
82
+ Body fields (`AddExternalDomainsRequest`):
83
+
84
+ | Field | Type | Required | Description |
85
+ |---|---|---|---|
86
+ | `body.domains` | `Array<string>` | yes | Domains already owned outside graph8, e.g. ['acme.com'] |
87
+
88
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
89
+
90
+ Other envelope fields: `pagination` (PaginationMeta).
91
+
92
+ **Example**
93
+
94
+ ```ts
95
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
96
+ const result = await g8.api.providerDomains.addExternalDomains({ body: { domains: ["acme.com"] } });
97
+ ```
98
+
99
+ ---
100
+
101
+ <a id="op-canceldomaintransfer"></a>
102
+
103
+ ### `g8.api.providerDomains.cancelDomainTransfer(input)`
104
+
105
+ **Cancel Domain Transfer**
106
+
107
+ - HTTP: `POST /api/v1/provider-domains/cancel-transfer`
108
+ - operationId: `cancel_domain_transfer_provider_domains_cancel_transfer_post` (also callable as `g8.api.call("cancel_domain_transfer_provider_domains_cancel_transfer_post", input)`)
109
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
110
+ - API-key scope: `campaigns:delete`
111
+
112
+ Abort an in-flight transfer.
113
+
114
+ Refunds are the registrar's business, not graph8's: cancelling stops the
115
+ move, it does not guarantee the transfer fee back.
116
+
117
+ **Input**
118
+
119
+ | Field | Type | Required | Description |
120
+ |---|---|---|---|
121
+ | `body` | `DomainTransferCancelRequest` | yes | Request body; fields below. |
122
+
123
+ Body fields (`DomainTransferCancelRequest`):
124
+
125
+ | Field | Type | Required | Description |
126
+ |---|---|---|---|
127
+ | `body.domain_id` | `integer` | yes | Provider domain id whose transfer should be aborted > 0 |
128
+
129
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
130
+
131
+ Other envelope fields: `pagination` (PaginationMeta).
132
+
133
+ **Example**
134
+
135
+ ```ts
136
+ // destructive: deletes or archives data; confirm with a human before calling.
137
+ const result = await g8.api.providerDomains.cancelDomainTransfer({ body: { domain_id: 1 } });
138
+ ```
139
+
140
+ ---
141
+
142
+ <a id="op-checkdomainavailability"></a>
143
+
144
+ ### `g8.api.providerDomains.checkDomainAvailability(input)`
145
+
146
+ **Check Domain Availability**
147
+
148
+ - HTTP: `POST /api/v1/provider-domains/check-availability`
149
+ - operationId: `check_domain_availability_provider_domains_check_availability_post` (also callable as `g8.api.call("check_domain_availability_provider_domains_check_availability_post", input)`)
150
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
151
+ - API-key scope: `campaigns:run`
152
+
153
+ Check whether a domain is available to buy, and its price. Spends no credits.
154
+
155
+ Proxies the same handler the in-app purchase wizard's first step calls.
156
+
157
+ **Input**
158
+
159
+ | Field | Type | Required | Description |
160
+ |---|---|---|---|
161
+ | `body` | `DomainAvailabilityCheckRequest` | yes | Request body; fields below. |
162
+
163
+ Body fields (`DomainAvailabilityCheckRequest`):
164
+
165
+ | Field | Type | Required | Description |
166
+ |---|---|---|---|
167
+ | `body.domain` | `string` | yes | Domain to check, e.g. acme-outreach.com |
168
+ | `body.provider` | `"registrar" \| "managed"` | no | Provisioning path to check availability/price against. default `"registrar"` |
169
+
170
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
171
+
172
+ Other envelope fields: `pagination` (PaginationMeta).
173
+
174
+ **Example**
175
+
176
+ ```ts
177
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
178
+ const result = await g8.api.providerDomains.checkDomainAvailability({ body: { domain: "acme.com" } });
179
+ ```
180
+
181
+ ---
182
+
183
+ <a id="op-checkdomainpropagation"></a>
184
+
185
+ ### `g8.api.providerDomains.checkDomainPropagation(input)`
186
+
187
+ **Check Domain Propagation**
188
+
189
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/check-propagation`
190
+ - operationId: `check_domain_propagation_provider_domains__domain_id__check_propagation_post` (also callable as `g8.api.call("check_domain_propagation_provider_domains__domain_id__check_propagation_post", input)`)
191
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
192
+ - API-key scope: `campaigns:run`
193
+
194
+ Check whether a connected domain's nameservers have propagated yet.
195
+
196
+ **Input**
197
+
198
+ | Field | Type | Required | Description |
199
+ |---|---|---|---|
200
+ | `path.domain_id` | `integer` | yes | Provider domain ID (provider_domains.id) — from GET /provider-domains |
201
+
202
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
203
+
204
+ Other envelope fields: `pagination` (PaginationMeta).
205
+
206
+ **Example**
207
+
208
+ ```ts
209
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
210
+ const result = await g8.api.providerDomains.checkDomainPropagation({ path: { domain_id: 123 } });
211
+ ```
212
+
213
+ ---
214
+
215
+ <a id="op-checkexternalavailability"></a>
216
+
217
+ ### `g8.api.providerDomains.checkExternalAvailability(input)`
218
+
219
+ **Check External Availability**
220
+
221
+ - HTTP: `POST /api/v1/provider-domains/check-external-availability`
222
+ - operationId: `check_external_availability_provider_domains_check_external_availability_post` (also callable as `g8.api.call("check_external_availability_provider_domains_check_external_availability_post", input)`)
223
+ - Tier: `read`: reads data; safe to call and to retry
224
+ - API-key scope: `campaigns:read`
225
+
226
+ Can this domain be attached as an EXTERNAL sending domain? SPENDS NOTHING.
227
+
228
+ External means graph8 never owns or bills the registration - you keep the
229
+ domain where it is and point its DNS here. The follow-up is
230
+ `POST /provider-domains/add-external`.
231
+
232
+ **Input**
233
+
234
+ | Field | Type | Required | Description |
235
+ |---|---|---|---|
236
+ | `body` | `ExternalDomainAvailabilityRequest` | yes | Request body; fields below. |
237
+
238
+ Body fields (`ExternalDomainAvailabilityRequest`):
239
+
240
+ | Field | Type | Required | Description |
241
+ |---|---|---|---|
242
+ | `body.domain` | `string` | yes | Domain to check, e.g. acme.com |
243
+
244
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
245
+
246
+ Other envelope fields: `pagination` (PaginationMeta).
247
+
248
+ **Example**
249
+
250
+ ```ts
251
+ const result = await g8.api.providerDomains.checkExternalAvailability({ body: { domain: "acme.com" } });
252
+ ```
253
+
254
+ ---
255
+
256
+ <a id="op-checkmailboxstatus"></a>
257
+
258
+ ### `g8.api.providerDomains.checkMailboxStatus(input)`
259
+
260
+ **Check Mailbox Status**
261
+
262
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/check-mailbox-status`
263
+ - operationId: `check_mailbox_status_provider_domains__domain_id__check_mailbox_status_post` (also callable as `g8.api.call("check_mailbox_status_provider_domains__domain_id__check_mailbox_status_post", input)`)
264
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
265
+ - API-key scope: `campaigns:write`
266
+
267
+ Re-check one mailbox's provisioning with the provider, and record the answer.
268
+
269
+ Not a pure read: a mailbox the provider now reports as ready is flipped to
270
+ active here, which is what makes it usable for sending.
271
+
272
+ **Input**
273
+
274
+ | Field | Type | Required | Description |
275
+ |---|---|---|---|
276
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
277
+ | `body` | `DomainMailboxRefRequest` | yes | Request body; fields below. |
278
+
279
+ Body fields (`DomainMailboxRefRequest`):
280
+
281
+ | Field | Type | Required | Description |
282
+ |---|---|---|---|
283
+ | `body.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) on this domain > 0 |
284
+
285
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
286
+
287
+ Other envelope fields: `pagination` (PaginationMeta).
288
+
289
+ **Example**
290
+
291
+ ```ts
292
+ const result = await g8.api.providerDomains.checkMailboxStatus({ path: { domain_id: 123 }, body: { mailbox_id: 1 } });
293
+ ```
294
+
295
+ ---
296
+
297
+ <a id="op-checktransferavailability"></a>
298
+
299
+ ### `g8.api.providerDomains.checkTransferAvailability(input)`
300
+
301
+ **Check Transfer Availability**
302
+
303
+ - HTTP: `POST /api/v1/provider-domains/check-transfer-availability`
304
+ - operationId: `check_transfer_availability_provider_domains_check_transfer_availability_post` (also callable as `g8.api.call("check_transfer_availability_provider_domains_check_transfer_availability_post", input)`)
305
+ - Tier: `read`: reads data; safe to call and to retry
306
+ - API-key scope: `campaigns:read`
307
+
308
+ Can this domain be transferred in, and what would it cost? SPENDS NOTHING.
309
+
310
+ Different question from `check-availability`, which asks whether a domain
311
+ is free to REGISTER. This one asks about a domain you already own at
312
+ another registrar.
313
+
314
+ **Input**
315
+
316
+ | Field | Type | Required | Description |
317
+ |---|---|---|---|
318
+ | `body` | `DomainTransferAvailabilityRequest` | yes | Request body; fields below. |
319
+
320
+ Body fields (`DomainTransferAvailabilityRequest`):
321
+
322
+ | Field | Type | Required | Description |
323
+ |---|---|---|---|
324
+ | `body.domain` | `string` | yes | Domain to check, e.g. acme-outreach.com |
325
+
326
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
327
+
328
+ Other envelope fields: `pagination` (PaginationMeta).
329
+
330
+ **Example**
331
+
332
+ ```ts
333
+ const result = await g8.api.providerDomains.checkTransferAvailability({ body: { domain: "acme.com" } });
334
+ ```
335
+
336
+ ---
337
+
338
+ <a id="op-checkoutpurchasedomains"></a>
339
+
340
+ ### `g8.api.providerDomains.checkoutPurchaseDomains(input)`
341
+
342
+ **Checkout Purchase Domains**
343
+
344
+ - HTTP: `POST /api/v1/provider-domains/checkout-purchase`
345
+ - operationId: `checkout_purchase_domains_provider_domains_checkout_purchase_post` (also callable as `g8.api.call("checkout_purchase_domains_provider_domains_checkout_purchase_post", input)`)
346
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
347
+ - API-key scope: `campaigns:run`
348
+
349
+ Buy one or more sending domains. SPENDS REAL CREDITS — unrestricted, same
350
+ as the app; there is no per-key spend cap.
351
+
352
+ Send an ``Idempotency-Key`` header to make a retry safe (a repeat with the
353
+ same key returns the original response instead of buying twice). Returns
354
+ 402 if the credit hold can't clear, 422 if the org's plan can't fund a
355
+ purchase at all (same gate the app UI checks), 400 for a pilot-only
356
+ provider or an unsupported TLD.
357
+
358
+ **Input**
359
+
360
+ | Field | Type | Required | Description |
361
+ |---|---|---|---|
362
+ | `body` | `DomainPurchaseRequest` | yes | Request body; fields below. |
363
+
364
+ Body fields (`DomainPurchaseRequest`):
365
+
366
+ | Field | Type | Required | Description |
367
+ |---|---|---|---|
368
+ | `body.contact_info` | `Record<string, string>` | yes | Registrant contact used for domain registration |
369
+ | `body.domains` | `Array<string>` | yes | Domains to buy, e.g. ['acme-outreach.com']. Up to 50 per request. max items 50 |
370
+ | `body.period` | `integer` | no | Registration period, in years default `1`, min 1 |
371
+ | `body.provider` | `"registrar" \| "managed" \| "pilot"` | no | Provisioning path. 'pilot' is limited to allowlisted orgs and otherwise returns 400. default `"registrar"` |
372
+ | `body.spare_domains` | `Array<string>` | no | Extra domains bought as spare warm-up capacity (warm from day 0, excluded from sending until promoted). Up to 50 per request. max items 50 |
373
+
374
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
375
+
376
+ Other envelope fields: `pagination` (PaginationMeta).
377
+
378
+ **Example**
379
+
380
+ ```ts
381
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
382
+ const result = await g8.api.providerDomains.checkoutPurchaseDomains({ body: { contact_info: {}, domains: ["acme.com"] } });
383
+ ```
384
+
385
+ ---
386
+
387
+ <a id="op-checkoutpurchasemailboxes"></a>
388
+
389
+ ### `g8.api.providerDomains.checkoutPurchaseMailboxes(input)`
390
+
391
+ **Checkout Purchase Mailboxes**
392
+
393
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/checkout-mailboxes`
394
+ - operationId: `checkout_purchase_mailboxes_provider_domains__domain_id__checkout_mailboxes_post` (also callable as `g8.api.call("checkout_purchase_mailboxes_provider_domains__domain_id__checkout_mailboxes_post", input)`)
395
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
396
+ - API-key scope: `campaigns:run`
397
+
398
+ Buy one or more mailboxes on a domain. SPENDS REAL CREDITS — unrestricted,
399
+ same as the app; there is no per-key spend cap.
400
+
401
+ Send an ``Idempotency-Key`` header to make a retry safe. Returns 402 if
402
+ the credit hold can't clear, 422 if the org's plan can't fund a purchase
403
+ at all, 400 for an unconnected/wrong-platform domain, too many mailboxes,
404
+ or a missing username, 404 if ``domain_id`` doesn't belong to this org.
405
+
406
+ **Input**
407
+
408
+ | Field | Type | Required | Description |
409
+ |---|---|---|---|
410
+ | `path.domain_id` | `integer` | yes | Provider domain ID (provider_domains.id) — from GET /provider-domains |
411
+ | `body` | `MailboxPurchaseRequest` | yes | Request body; fields below. |
412
+
413
+ Body fields (`MailboxPurchaseRequest`):
414
+
415
+ | Field | Type | Required | Description |
416
+ |---|---|---|---|
417
+ | `body.mailboxes` | `Array<MailboxPurchaseItem>` | yes | Mailboxes to create. Up to 5 per domain for a provider='managed' purchase, and up to 250 per request. max items 250 |
418
+ | `body.enable_warmup` | `boolean` | no | Enroll each mailbox in warmup immediately after purchase default `true` |
419
+ | `body.platform` | `"GOOGLE" \| "MICROSOFT" \| null` | no | Mailbox platform. Required when provider='managed'. |
420
+ | `body.provider` | `"registrar" \| "managed" \| "pilot"` | no | default `"registrar"` |
421
+ | `body.warmup_engine` | `"instantly" \| "smartlead" \| "managed" \| null` | no | Warmup engine. Omit to use the account default. |
422
+ | `body.warmup_settings` | `Record<string, unknown> \| null` | no | |
423
+
424
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
425
+
426
+ Other envelope fields: `pagination` (PaginationMeta).
427
+
428
+ **Example**
429
+
430
+ ```ts
431
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
432
+ const result = await g8.api.providerDomains.checkoutPurchaseMailboxes({ path: { domain_id: 123 }, body: { mailboxes: [{}] } });
433
+ ```
434
+
435
+ ---
436
+
437
+ <a id="op-checkouttransferdomain"></a>
438
+
439
+ ### `g8.api.providerDomains.checkoutTransferDomain(input)`
440
+
441
+ **Checkout Transfer Domain**
442
+
443
+ - HTTP: `POST /api/v1/provider-domains/checkout-transfer`
444
+ - operationId: `checkout_transfer_domain_provider_domains_checkout_transfer_post` (also callable as `g8.api.call("checkout_transfer_domain_provider_domains_checkout_transfer_post", input)`)
445
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
446
+ - API-key scope: `campaigns:run`
447
+
448
+ Transfer a domain you own elsewhere into graph8. SPENDS REAL CREDITS.
449
+
450
+ This is a purchase: it pays the registrar to move the domain and extends
451
+ the registration. There is no per-key spend cap, the same as the app.
452
+
453
+ Send an `Idempotency-Key` header so a retry cannot pay twice. 202 means
454
+ the transfer was accepted and is now in the registrar's hands - it
455
+ completes asynchronously and can take days. 402 if the credit hold cannot
456
+ clear, 422 if the org's plan cannot fund a purchase at all.
457
+
458
+ Get `auth_info` from your current registrar first; a wrong code fails the
459
+ transfer at the registrar AFTER the money has moved.
460
+
461
+ **Input**
462
+
463
+ | Field | Type | Required | Description |
464
+ |---|---|---|---|
465
+ | `body` | `DomainTransferRequest` | yes | Request body; fields below. |
466
+
467
+ Body fields (`DomainTransferRequest`):
468
+
469
+ | Field | Type | Required | Description |
470
+ |---|---|---|---|
471
+ | `body.auth_info` | `string` | yes | Transfer authorisation code from your current registrar |
472
+ | `body.contact_info` | `Record<string, string>` | yes | Registrant contact recorded with the registrar |
473
+ | `body.domain` | `string` | yes | Domain to transfer in, e.g. acme-outreach.com |
474
+
475
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
476
+
477
+ Other envelope fields: `pagination` (PaginationMeta).
478
+
479
+ **Example**
480
+
481
+ ```ts
482
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
483
+ const result = await g8.api.providerDomains.checkoutTransferDomain({
484
+ body: { auth_info: "example", contact_info: {}, domain: "acme.com" },
485
+ });
486
+ ```
487
+
488
+ ---
489
+
490
+ <a id="op-connectprovider"></a>
491
+
492
+ ### `g8.api.providerDomains.connectProvider(input)`
493
+
494
+ **Connect Provider**
495
+
496
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/connect-provider`
497
+ - operationId: `connect_provider_provider_domains__domain_id__connect_provider_post` (also callable as `g8.api.call("connect_provider_provider_domains__domain_id__connect_provider_post", input)`)
498
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
499
+ - API-key scope: `campaigns:run`
500
+
501
+ Connect a purchased domain to the managed mailbox-provisioning backend.
502
+
503
+ Required once per domain before ``checkout-mailboxes`` will succeed for a
504
+ managed (``provider='managed'``) purchase — an unconnected domain 400s
505
+ there with an actionable message pointing back here.
506
+
507
+ **Input**
508
+
509
+ | Field | Type | Required | Description |
510
+ |---|---|---|---|
511
+ | `path.domain_id` | `integer` | yes | Provider domain ID (provider_domains.id) — from GET /provider-domains |
512
+
513
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
514
+
515
+ Other envelope fields: `pagination` (PaginationMeta).
516
+
517
+ **Example**
518
+
519
+ ```ts
520
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
521
+ const result = await g8.api.providerDomains.connectProvider({ path: { domain_id: 123 } });
522
+ ```
523
+
524
+ ---
525
+
526
+ <a id="op-deletedomainforwarding"></a>
527
+
528
+ ### `g8.api.providerDomains.deleteDomainForwarding(input)`
529
+
530
+ **Delete Domain Forwarding**
531
+
532
+ - HTTP: `DELETE /api/v1/provider-domains/{domain_id}/forwarding`
533
+ - operationId: `delete_domain_forwarding_provider_domains__domain_id__forwarding_delete` (also callable as `g8.api.call("delete_domain_forwarding_provider_domains__domain_id__forwarding_delete", input)`)
534
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
535
+ - API-key scope: `campaigns:delete`
536
+
537
+ Stop forwarding this domain's mail. Mail then lands in its own mailboxes.
538
+
539
+ **Input**
540
+
541
+ | Field | Type | Required | Description |
542
+ |---|---|---|---|
543
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
544
+
545
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
546
+
547
+ Other envelope fields: `pagination` (PaginationMeta).
548
+
549
+ **Example**
550
+
551
+ ```ts
552
+ // destructive: deletes or archives data; confirm with a human before calling.
553
+ const result = await g8.api.providerDomains.deleteDomainForwarding({ path: { domain_id: 123 } });
554
+ ```
555
+
556
+ ---
557
+
558
+ <a id="op-deletedomainmailbox"></a>
559
+
560
+ ### `g8.api.providerDomains.deleteDomainMailbox(input)`
561
+
562
+ **Delete Domain Mailbox**
563
+
564
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/delete-mailbox`
565
+ - operationId: `delete_domain_mailbox_provider_domains__domain_id__delete_mailbox_post` (also callable as `g8.api.call("delete_domain_mailbox_provider_domains__domain_id__delete_mailbox_post", input)`)
566
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
567
+ - API-key scope: `campaigns:delete`
568
+
569
+ Delete a mailbox at the provider. NOT REVERSIBLE.
570
+
571
+ The mailbox stops existing upstream and its mail goes with it. Different
572
+ from `DELETE /mailboxes/{mailbox_id}`, which removes graph8's record of a
573
+ mailbox and leaves the provider's copy alone. A domain's admin mailbox
574
+ cannot be deleted - it is what manages the domain.
575
+
576
+ To stop paying for a purchased mailbox without destroying it, use
577
+ `POST /mailboxes/{mailbox_id}/request-cancellation` instead.
578
+
579
+ **Input**
580
+
581
+ | Field | Type | Required | Description |
582
+ |---|---|---|---|
583
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
584
+ | `body` | `DomainMailboxRefRequest` | yes | Request body; fields below. |
585
+
586
+ Body fields (`DomainMailboxRefRequest`):
587
+
588
+ | Field | Type | Required | Description |
589
+ |---|---|---|---|
590
+ | `body.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) on this domain > 0 |
591
+
592
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
593
+
594
+ Other envelope fields: `pagination` (PaginationMeta).
595
+
596
+ **Example**
597
+
598
+ ```ts
599
+ // destructive: deletes or archives data; confirm with a human before calling.
600
+ const result = await g8.api.providerDomains.deleteDomainMailbox({ path: { domain_id: 123 }, body: { mailbox_id: 1 } });
601
+ ```
602
+
603
+ ---
604
+
605
+ <a id="op-generatedomainnames"></a>
606
+
607
+ ### `g8.api.providerDomains.generateDomainNames(input)`
608
+
609
+ **Generate Domain Names**
610
+
611
+ - HTTP: `POST /api/v1/provider-domains/generate-domains`
612
+ - operationId: `generate_domain_names_provider_domains_generate_domains_post` (also callable as `g8.api.call("generate_domain_names_provider_domains_generate_domains_post", input)`)
613
+ - Tier: `read`: reads data; safe to call and to retry
614
+ - API-key scope: `campaigns:read`
615
+
616
+ Suggest buyable domain names around a keyword. SPENDS NOTHING.
617
+
618
+ A naming aid, not a reservation: a name returned here can still be gone by
619
+ the time you buy it, so `check-availability` remains the authority.
620
+
621
+ **Input**
622
+
623
+ | Field | Type | Required | Description |
624
+ |---|---|---|---|
625
+ | `body` | `DomainNameGenerateRequest` | yes | Request body; fields below. |
626
+
627
+ Body fields (`DomainNameGenerateRequest`):
628
+
629
+ | Field | Type | Required | Description |
630
+ |---|---|---|---|
631
+ | `body.keyword` | `string` | yes | Seed word the generated names are built around, e.g. 'acme' |
632
+ | `body.count` | `integer` | no | How many suggestions to return default `5`, min 1, max 100 |
633
+ | `body.prefixes` | `string \| null` | no | Comma-separated prefixes to try, e.g. 'get,try' |
634
+ | `body.provider` | `"registrar" \| "managed" \| "pilot"` | no | Provisioning path to generate for default `"registrar"` |
635
+ | `body.suffixes` | `string \| null` | no | Comma-separated suffixes to try, e.g. 'hq,mail' |
636
+
637
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
638
+
639
+ Other envelope fields: `pagination` (PaginationMeta).
640
+
641
+ **Example**
642
+
643
+ ```ts
644
+ const result = await g8.api.providerDomains.generateDomainNames({ body: { keyword: "example" } });
645
+ ```
646
+
647
+ ---
648
+
649
+ <a id="op-getdomaininfo"></a>
650
+
651
+ ### `g8.api.providerDomains.getDomainInfo(input)`
652
+
653
+ **Get Domain Info**
654
+
655
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/info`
656
+ - operationId: `get_domain_info_provider_domains__domain_id__info_post` (also callable as `g8.api.call("get_domain_info_provider_domains__domain_id__info_post", input)`)
657
+ - Tier: `read`: reads data; safe to call and to retry
658
+ - API-key scope: `campaigns:read`
659
+
660
+ The registrar's record for this domain: expiry, nameservers, lock state.
661
+
662
+ Read-only, and live - it asks the registrar rather than returning the last
663
+ thing graph8 stored.
664
+
665
+ **Input**
666
+
667
+ | Field | Type | Required | Description |
668
+ |---|---|---|---|
669
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
670
+
671
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
672
+
673
+ Other envelope fields: `pagination` (PaginationMeta).
674
+
675
+ **Example**
676
+
677
+ ```ts
678
+ const result = await g8.api.providerDomains.getDomainInfo({ path: { domain_id: 123 } });
679
+ ```
680
+
681
+ ---
682
+
683
+ <a id="op-getexternaldomaininfo"></a>
684
+
685
+ ### `g8.api.providerDomains.getExternalDomainInfo(input)`
686
+
687
+ **Get External Domain Info**
688
+
689
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/external-info`
690
+ - operationId: `get_external_domain_info_provider_domains__domain_id__external_info_post` (also callable as `g8.api.call("get_external_domain_info_provider_domains__domain_id__external_info_post", input)`)
691
+ - Tier: `read`: reads data; safe to call and to retry
692
+ - API-key scope: `campaigns:read`
693
+
694
+ The DNS records an EXTERNAL domain must publish for graph8 to send from it.
695
+
696
+ Read-only. Add them at whoever hosts the domain's DNS, then confirm with
697
+ `POST /provider-domains/{domain_id}/check-propagation`.
698
+
699
+ **Input**
700
+
701
+ | Field | Type | Required | Description |
702
+ |---|---|---|---|
703
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
704
+
705
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
706
+
707
+ Other envelope fields: `pagination` (PaginationMeta).
708
+
709
+ **Example**
710
+
711
+ ```ts
712
+ const result = await g8.api.providerDomains.getExternalDomainInfo({ path: { domain_id: 123 } });
713
+ ```
714
+
715
+ ---
716
+
717
+ <a id="op-getproviderstatus"></a>
718
+
719
+ ### `g8.api.providerDomains.getProviderStatus(input)`
720
+
721
+ **Get Provider Status**
722
+
723
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/provider-status`
724
+ - operationId: `get_provider_status_provider_domains__domain_id__provider_status_post` (also callable as `g8.api.call("get_provider_status_provider_domains__domain_id__provider_status_post", input)`)
725
+ - Tier: `read`: reads data; safe to call and to retry
726
+ - API-key scope: `campaigns:read`
727
+
728
+ How far this domain has got through managed provisioning. Reads only.
729
+
730
+ `provider_status` is the connection state; the `provider_*_uid` fields are
731
+ opaque references you may need when contacting support.
732
+
733
+ **Input**
734
+
735
+ | Field | Type | Required | Description |
736
+ |---|---|---|---|
737
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
738
+
739
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
740
+
741
+ Other envelope fields: `pagination` (PaginationMeta).
742
+
743
+ **Example**
744
+
745
+ ```ts
746
+ const result = await g8.api.providerDomains.getProviderStatus({ path: { domain_id: 123 } });
747
+ ```
748
+
749
+ ---
750
+
751
+ <a id="op-getprovisioningstates"></a>
752
+
753
+ ### `g8.api.providerDomains.getProvisioningStates(input)`
754
+
755
+ **Get Provisioning States**
756
+
757
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/provisioning-states`
758
+ - operationId: `get_provisioning_states_provider_domains__domain_id__provisioning_states_post` (also callable as `g8.api.call("get_provisioning_states_provider_domains__domain_id__provisioning_states_post", input)`)
759
+ - Tier: `read`: reads data; safe to call and to retry
760
+ - API-key scope: `campaigns:read`
761
+
762
+ Live provisioning step and last error for up to 50 mailboxes. Reads only.
763
+
764
+ Best-effort by design: a mailbox with no live provisioning run - finished,
765
+ never started, or aged out - comes back `null` rather than erroring, so
766
+ poll this and fall back to the mailbox's own status.
767
+
768
+ **Input**
769
+
770
+ | Field | Type | Required | Description |
771
+ |---|---|---|---|
772
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
773
+ | `body` | `ProvisioningStatesRequest` | yes | Request body; fields below. |
774
+
775
+ Body fields (`ProvisioningStatesRequest`):
776
+
777
+ | Field | Type | Required | Description |
778
+ |---|---|---|---|
779
+ | `body.mailbox_ids` | `Array<integer>` | no | Mailbox ids to report on. Up to 50. max items 50 |
780
+
781
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
782
+
783
+ Other envelope fields: `pagination` (PaginationMeta).
784
+
785
+ **Example**
786
+
787
+ ```ts
788
+ const result = await g8.api.providerDomains.getProvisioningStates({ path: { domain_id: 123 }, body: {} });
789
+ ```
790
+
791
+ ---
792
+
793
+ <a id="op-getsendingdomainstats"></a>
794
+
795
+ ### `g8.api.providerDomains.getSendingDomainStats(input?)`
796
+
797
+ **Get Sending Domain Stats**
798
+
799
+ - HTTP: `GET /api/v1/provider-domains/stats`
800
+ - operationId: `get_sending_domain_stats_provider_domains_stats_get` (also callable as `g8.api.call("get_sending_domain_stats_provider_domains_stats_get", input)`)
801
+ - Tier: `read`: reads data; safe to call and to retry
802
+ - API-key scope: `campaigns:read`
803
+
804
+ Counts across the org's sending domains and mailboxes. Reads only.
805
+
806
+ Totals, active and external domains, provisioning progress, domains whose
807
+ registrant has not verified, and the warmed mailboxes that are ready for
808
+ outreach but not yet in any live sequence. The same figures the app's
809
+ dashboard tiles show.
810
+
811
+ **Input**: none.
812
+
813
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
814
+
815
+ Other envelope fields: `pagination` (PaginationMeta).
816
+
817
+ **Example**
818
+
819
+ ```ts
820
+ const result = await g8.api.providerDomains.getSendingDomainStats();
821
+ ```
822
+
823
+ ---
824
+
825
+ <a id="op-getsendingpricing"></a>
826
+
827
+ ### `g8.api.providerDomains.getSendingPricing(input?)`
828
+
829
+ **Get Sending Pricing**
830
+
831
+ - HTTP: `GET /api/v1/provider-domains/pricing`
832
+ - operationId: `get_sending_pricing_provider_domains_pricing_get` (also callable as `g8.api.call("get_sending_pricing_provider_domains_pricing_get", input)`)
833
+ - Tier: `read`: reads data; safe to call and to retry
834
+ - API-key scope: `campaigns:read`
835
+
836
+ What a mailbox and its warmup cost, in credits. SPENDS NOTHING.
837
+
838
+ `credits_per_warmup_month` is the RECURRING monthly charge per mailbox
839
+ while warmup is on - the number `auto-warmup` commits you to for every
840
+ mailbox bought on a domain afterwards.
841
+
842
+ **Input**: none.
843
+
844
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
845
+
846
+ Other envelope fields: `pagination` (PaginationMeta).
847
+
848
+ **Example**
849
+
850
+ ```ts
851
+ const result = await g8.api.providerDomains.getSendingPricing();
852
+ ```
853
+
854
+ ---
855
+
856
+ <a id="op-gettransferinfo"></a>
857
+
858
+ ### `g8.api.providerDomains.getTransferInfo(input)`
859
+
860
+ **Get Transfer Info**
861
+
862
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/transfer-info`
863
+ - operationId: `get_transfer_info_provider_domains__domain_id__transfer_info_post` (also callable as `g8.api.call("get_transfer_info_provider_domains__domain_id__transfer_info_post", input)`)
864
+ - Tier: `read`: reads data; safe to call and to retry
865
+ - API-key scope: `campaigns:read`
866
+
867
+ Where an in-flight transfer has got to. Reads only.
868
+
869
+ POST rather than GET because that is the app's own spelling, kept so the
870
+ two surfaces describe one operation rather than two.
871
+
872
+ **Input**
873
+
874
+ | Field | Type | Required | Description |
875
+ |---|---|---|---|
876
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
877
+
878
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
879
+
880
+ Other envelope fields: `pagination` (PaginationMeta).
881
+
882
+ **Example**
883
+
884
+ ```ts
885
+ const result = await g8.api.providerDomains.getTransferInfo({ path: { domain_id: 123 } });
886
+ ```
887
+
888
+ ---
889
+
890
+ <a id="op-listdomainmailboxes"></a>
891
+
892
+ ### `g8.api.providerDomains.listDomainMailboxes(input)`
893
+
894
+ **List Domain Mailboxes**
895
+
896
+ - HTTP: `GET /api/v1/provider-domains/{domain_id}/mailboxes`
897
+ - operationId: `list_domain_mailboxes_provider_domains__domain_id__mailboxes_get` (also callable as `g8.api.call("list_domain_mailboxes_provider_domains__domain_id__mailboxes_get", input)`)
898
+ - Tier: `read`: reads data; safe to call and to retry
899
+ - API-key scope: `campaigns:read`
900
+
901
+ The mailboxes on one sending domain, a page at a time. Reads only.
902
+
903
+ GET here although the app spells it POST: it changes nothing, and a read
904
+ should be cacheable and retryable as one.
905
+
906
+ **Input**
907
+
908
+ | Field | Type | Required | Description |
909
+ |---|---|---|---|
910
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
911
+ | `query.start_row` | `integer` | no | First row, zero-based default `0` |
912
+ | `query.end_row` | `integer` | no | Row after the last one returned default `100` |
913
+
914
+ **Returns** `ApiResponse_MailboxDomainListPayload_`: the envelope `{ data: MailboxDomainListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
915
+
916
+ Other envelope fields: `pagination` (PaginationMeta).
917
+
918
+ `MailboxDomainListPayload` fields:
919
+
920
+ | Field | Type | Required | Description |
921
+ |---|---|---|---|
922
+ | `items` | `Array<unknown>` | no | |
923
+
924
+ **Example**
925
+
926
+ ```ts
927
+ const result = await g8.api.providerDomains.listDomainMailboxes({ path: { domain_id: 123 } });
928
+ ```
929
+
930
+ ---
931
+
932
+ <a id="op-listmailboxesforstat"></a>
933
+
934
+ ### `g8.api.providerDomains.listMailboxesForStat(input)`
935
+
936
+ **List Mailboxes For Stat**
937
+
938
+ - HTTP: `GET /api/v1/provider-domains/stats/mailboxes/{stat_key}`
939
+ - operationId: `list_mailboxes_for_stat_provider_domains_stats_mailboxes__stat_key__get` (also callable as `g8.api.call("list_mailboxes_for_stat_provider_domains_stats_mailboxes__stat_key__get", input)`)
940
+ - Tier: `read`: reads data; safe to call and to retry
941
+ - API-key scope: `campaigns:read`
942
+
943
+ The mailboxes a stat counts - its result set IS that number's denominator.
944
+
945
+ Use this rather than filtering `GET /mailboxes` yourself, so your list and
946
+ the count can never disagree about which mailboxes match.
947
+
948
+ **Input**
949
+
950
+ | Field | Type | Required | Description |
951
+ |---|---|---|---|
952
+ | `path.stat_key` | `"warmup_ready_to_outreach"` | yes | Which stat to drill into |
953
+ | `query.limit` | `integer` | no | Newest first. The app's own ceiling. default `500` |
954
+
955
+ **Returns** `ApiResponse_MailboxDomainListPayload_`: the envelope `{ data: MailboxDomainListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
956
+
957
+ Other envelope fields: `pagination` (PaginationMeta).
958
+
959
+ `MailboxDomainListPayload` fields:
960
+
961
+ | Field | Type | Required | Description |
962
+ |---|---|---|---|
963
+ | `items` | `Array<unknown>` | no | |
964
+
965
+ **Example**
966
+
967
+ ```ts
968
+ const result = await g8.api.providerDomains.listMailboxesForStat({ path: { stat_key: "warmup_ready_to_outreach" } });
969
+ ```
970
+
971
+ ---
972
+
973
+ <a id="op-listproviderdomains"></a>
974
+
975
+ ### `g8.api.providerDomains.listProviderDomains(input?)`
976
+
977
+ **List Provider Domains**
978
+
979
+ - HTTP: `GET /api/v1/provider-domains`
980
+ - operationId: `list_provider_domains_provider_domains_get` (also callable as `g8.api.call("list_provider_domains_provider_domains_get", input)`)
981
+ - Tier: `read`: reads data; safe to call and to retry
982
+ - API-key scope: `campaigns:read`
983
+
984
+ List the org's sending domains.
985
+
986
+ This is the discovery route: every per-domain endpoint below needs a
987
+ ``domain_id`` from here first. Mirrors the core of the app's own
988
+ ``POST /provider-domains/fetch`` (mailbox count via a correlated
989
+ subquery), without its ag-grid filter/sort surface.
990
+
991
+ **Input**
992
+
993
+ | Field | Type | Required | Description |
994
+ |---|---|---|---|
995
+ | `query.page` | `integer` | no | default `1` |
996
+ | `query.limit` | `integer` | no | default `20` |
997
+
998
+ **Returns** `ApiResponse_List_ProviderDomainResponse__`: the envelope `{ data: Array<ProviderDomainResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
999
+
1000
+ Other envelope fields: `pagination` (PaginationMeta).
1001
+
1002
+ `ProviderDomainResponse` fields:
1003
+
1004
+ | Field | Type | Required | Description |
1005
+ |---|---|---|---|
1006
+ | `domain` | `string` | yes | |
1007
+ | `id` | `integer` | yes | |
1008
+ | `provider_connected` | `boolean` | yes | Whether this domain is connected to the managed mailbox-provisioning backend. Required before checkout-mailboxes will succeed for a managed purchase — connect it first with POST .../connect-provider. |
1009
+ | `source` | `string` | yes | How the domain entered the org, e.g. purchased \| transferred \| external |
1010
+ | `created_at` | `string \| null` | no | |
1011
+ | `created_by` | `string \| null` | no | |
1012
+ | `dns_zone_created` | `boolean` | no | default `false` |
1013
+ | `expires_at` | `string \| null` | no | |
1014
+ | `is_external` | `boolean` | no | default `false` |
1015
+ | `is_transfer` | `boolean` | no | default `false` |
1016
+ | `mailbox_count` | `integer` | no | default `0` |
1017
+ | `purchase_date` | `string \| null` | no | |
1018
+ | `purchase_period` | `integer \| null` | no | |
1019
+ | `status` | `string \| null` | no | |
1020
+ | `updated_at` | `string \| null` | no | |
1021
+
1022
+ **Example**
1023
+
1024
+ ```ts
1025
+ const result = await g8.api.providerDomains.listProviderDomains();
1026
+ ```
1027
+
1028
+ ---
1029
+
1030
+ <a id="op-refreshdomainfromprovider"></a>
1031
+
1032
+ ### `g8.api.providerDomains.refreshDomainFromProvider(input)`
1033
+
1034
+ **Refresh Domain From Provider**
1035
+
1036
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/refresh-from-provider`
1037
+ - operationId: `refresh_domain_from_provider_provider_domains__domain_id__refresh_from_provider_post` (also callable as `g8.api.call("refresh_domain_from_provider_provider_domains__domain_id__refresh_from_provider_post", input)`)
1038
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
1039
+ - API-key scope: `campaigns:write`
1040
+
1041
+ Pull this domain's current state from the provisioning backend and store it.
1042
+
1043
+ Writes: graph8's copy is replaced with what the provider says. Use it when
1044
+ `provider-status` looks stale against reality.
1045
+
1046
+ **Input**
1047
+
1048
+ | Field | Type | Required | Description |
1049
+ |---|---|---|---|
1050
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1051
+
1052
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1053
+
1054
+ Other envelope fields: `pagination` (PaginationMeta).
1055
+
1056
+ **Example**
1057
+
1058
+ ```ts
1059
+ const result = await g8.api.providerDomains.refreshDomainFromProvider({ path: { domain_id: 123 } });
1060
+ ```
1061
+
1062
+ ---
1063
+
1064
+ <a id="op-regeneratenameservers"></a>
1065
+
1066
+ ### `g8.api.providerDomains.regenerateNameservers(input)`
1067
+
1068
+ **Regenerate Nameservers**
1069
+
1070
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/regenerate-nameservers`
1071
+ - operationId: `regenerate_nameservers_provider_domains__domain_id__regenerate_nameservers_post` (also callable as `g8.api.call("regenerate_nameservers_provider_domains__domain_id__regenerate_nameservers_post", input)`)
1072
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1073
+ - API-key scope: `campaigns:run`
1074
+
1075
+ Mint a fresh set of nameservers for this domain.
1076
+
1077
+ For a domain whose propagation window expired or whose nameservers were
1078
+ changed elsewhere. It issues NEW values - you still have to apply them,
1079
+ with `set-nameservers` for a graph8-registered domain or at your own DNS
1080
+ host for an external one.
1081
+
1082
+ **Input**
1083
+
1084
+ | Field | Type | Required | Description |
1085
+ |---|---|---|---|
1086
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1087
+
1088
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1089
+
1090
+ Other envelope fields: `pagination` (PaginationMeta).
1091
+
1092
+ **Example**
1093
+
1094
+ ```ts
1095
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1096
+ const result = await g8.api.providerDomains.regenerateNameservers({ path: { domain_id: 123 } });
1097
+ ```
1098
+
1099
+ ---
1100
+
1101
+ <a id="op-resendregistrantverification"></a>
1102
+
1103
+ ### `g8.api.providerDomains.resendRegistrantVerification(input)`
1104
+
1105
+ **Resend Registrant Verification**
1106
+
1107
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/resend-verification`
1108
+ - operationId: `resend_registrant_verification_provider_domains__domain_id__resend_verification_post` (also callable as `g8.api.call("resend_registrant_verification_provider_domains__domain_id__resend_verification_post", input)`)
1109
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1110
+ - API-key scope: `campaigns:run`
1111
+
1112
+ Re-send the registrant verification mail.
1113
+
1114
+ ICANN suspends a domain whose registrant never verifies, which takes the
1115
+ mailboxes on it down with it. Worth calling for any domain whose
1116
+ verification status is not `Verified`.
1117
+
1118
+ **Input**
1119
+
1120
+ | Field | Type | Required | Description |
1121
+ |---|---|---|---|
1122
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1123
+
1124
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1125
+
1126
+ Other envelope fields: `pagination` (PaginationMeta).
1127
+
1128
+ **Example**
1129
+
1130
+ ```ts
1131
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1132
+ const result = await g8.api.providerDomains.resendRegistrantVerification({ path: { domain_id: 123 } });
1133
+ ```
1134
+
1135
+ ---
1136
+
1137
+ <a id="op-resendtransferpassword"></a>
1138
+
1139
+ ### `g8.api.providerDomains.resendTransferPassword(input)`
1140
+
1141
+ **Resend Transfer Password**
1142
+
1143
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/resend-transfer-password`
1144
+ - operationId: `resend_transfer_password_provider_domains__domain_id__resend_transfer_password_post` (also callable as `g8.api.call("resend_transfer_password_provider_domains__domain_id__resend_transfer_password_post", input)`)
1145
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1146
+ - API-key scope: `campaigns:run`
1147
+
1148
+ Re-send the transfer authorisation mail to the registrant address.
1149
+
1150
+ Use when the original never arrived. It reaches a real inbox, so it is not
1151
+ a free retry loop - the registrar rate-limits it.
1152
+
1153
+ **Input**
1154
+
1155
+ | Field | Type | Required | Description |
1156
+ |---|---|---|---|
1157
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1158
+
1159
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1160
+
1161
+ Other envelope fields: `pagination` (PaginationMeta).
1162
+
1163
+ **Example**
1164
+
1165
+ ```ts
1166
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1167
+ const result = await g8.api.providerDomains.resendTransferPassword({ path: { domain_id: 123 } });
1168
+ ```
1169
+
1170
+ ---
1171
+
1172
+ <a id="op-resetmailboxpassword"></a>
1173
+
1174
+ ### `g8.api.providerDomains.resetMailboxPassword(input)`
1175
+
1176
+ **Reset Mailbox Password**
1177
+
1178
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/reset-password`
1179
+ - operationId: `reset_mailbox_password_provider_domains__domain_id__reset_password_post` (also callable as `g8.api.call("reset_mailbox_password_provider_domains__domain_id__reset_password_post", input)`)
1180
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
1181
+ - API-key scope: `campaigns:delete`
1182
+
1183
+ Replace a provider mailbox's password.
1184
+
1185
+ Anything already signed in with the old password - including graph8's own
1186
+ sending connection until it re-reads the mailbox - stops working
1187
+ immediately. The new password is write-only and is never returned by this
1188
+ or any other endpoint.
1189
+
1190
+ **Input**
1191
+
1192
+ | Field | Type | Required | Description |
1193
+ |---|---|---|---|
1194
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1195
+ | `body` | `MailboxPasswordResetRequest` | yes | Request body; fields below. |
1196
+
1197
+ Body fields (`MailboxPasswordResetRequest`):
1198
+
1199
+ | Field | Type | Required | Description |
1200
+ |---|---|---|---|
1201
+ | `body.email` | `string` | yes | Mailbox address whose password is being replaced |
1202
+ | `body.new_password` | `string` | yes | Write-only. Never returned by any endpoint. |
1203
+
1204
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1205
+
1206
+ Other envelope fields: `pagination` (PaginationMeta).
1207
+
1208
+ **Example**
1209
+
1210
+ ```ts
1211
+ // destructive: deletes or archives data; confirm with a human before calling.
1212
+ const result = await g8.api.providerDomains.resetMailboxPassword({
1213
+ path: { domain_id: 123 },
1214
+ body: { email: "jane@acme.com", new_password: "example" },
1215
+ });
1216
+ ```
1217
+
1218
+ ---
1219
+
1220
+ <a id="op-setautowarmup"></a>
1221
+
1222
+ ### `g8.api.providerDomains.setAutoWarmup(input)`
1223
+
1224
+ **Set Auto Warmup**
1225
+
1226
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/auto-warmup`
1227
+ - operationId: `set_auto_warmup_provider_domains__domain_id__auto_warmup_post` (also callable as `g8.api.call("set_auto_warmup_provider_domains__domain_id__auto_warmup_post", input)`)
1228
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
1229
+ - API-key scope: `campaigns:run`
1230
+
1231
+ Turn automatic warmup enrolment on or off for this domain. ON COMMITS SPEND.
1232
+
1233
+ ON: every mailbox bought on this domain from now on is enrolled in warmup
1234
+ automatically, and warmup is a RECURRING monthly credit charge per mailbox
1235
+ (`GET /provider-domains/pricing` has the figure). It is the default.
1236
+
1237
+ OFF: new mailboxes are not enrolled and not billed for warmup. It does NOT
1238
+ stop warmup already running on existing mailboxes - use
1239
+ `POST /warmup/{mailbox_id}/disable` for that - and it does not affect
1240
+ warmup you start by hand.
1241
+
1242
+ **Input**
1243
+
1244
+ | Field | Type | Required | Description |
1245
+ |---|---|---|---|
1246
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1247
+ | `body` | `AutoWarmupRequest` | yes | Request body; fields below. |
1248
+
1249
+ Body fields (`AutoWarmupRequest`):
1250
+
1251
+ | Field | Type | Required | Description |
1252
+ |---|---|---|---|
1253
+ | `body.enabled` | `boolean` | yes | True enrols new mailboxes automatically and bills warmup for them |
1254
+
1255
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1256
+
1257
+ Other envelope fields: `pagination` (PaginationMeta).
1258
+
1259
+ **Example**
1260
+
1261
+ ```ts
1262
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
1263
+ const result = await g8.api.providerDomains.setAutoWarmup({ path: { domain_id: 123 }, body: { enabled: true } });
1264
+ ```
1265
+
1266
+ ---
1267
+
1268
+ <a id="op-setdnsrecords"></a>
1269
+
1270
+ ### `g8.api.providerDomains.setDnsRecords(input)`
1271
+
1272
+ **Set Dns Records**
1273
+
1274
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/dns`
1275
+ - operationId: `set_dns_records_provider_domains__domain_id__dns_post` (also callable as `g8.api.call("set_dns_records_provider_domains__domain_id__dns_post", input)`)
1276
+ - Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
1277
+ - API-key scope: `campaigns:run`
1278
+
1279
+ Set (or reset to default) the sending DNS records for a domain.
1280
+
1281
+ **Input**
1282
+
1283
+ | Field | Type | Required | Description |
1284
+ |---|---|---|---|
1285
+ | `path.domain_id` | `integer` | yes | Provider domain ID (provider_domains.id) — from GET /provider-domains |
1286
+ | `body` | `DnsRecordsRequest` | yes | Request body; fields below. |
1287
+
1288
+ Body fields (`DnsRecordsRequest`):
1289
+
1290
+ | Field | Type | Required | Description |
1291
+ |---|---|---|---|
1292
+ | `body.records` | `Record<string, Array<Record<string, unknown>>>` | no | DNS records by type, e.g. {'TXT': [...], 'MX': [...], 'CNAME': [...]} |
1293
+ | `body.reset_to_default` | `boolean` | no | Discard `records` and (re)apply graph8's default sending DNS zone default `false` |
1294
+
1295
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1296
+
1297
+ Other envelope fields: `pagination` (PaginationMeta).
1298
+
1299
+ **Example**
1300
+
1301
+ ```ts
1302
+ // billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
1303
+ const result = await g8.api.providerDomains.setDnsRecords({ path: { domain_id: 123 }, body: {} });
1304
+ ```
1305
+
1306
+ ---
1307
+
1308
+ <a id="op-setdomainforwarding"></a>
1309
+
1310
+ ### `g8.api.providerDomains.setDomainForwarding(input)`
1311
+
1312
+ **Set Domain Forwarding**
1313
+
1314
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/forwarding`
1315
+ - operationId: `set_domain_forwarding_provider_domains__domain_id__forwarding_post` (also callable as `g8.api.call("set_domain_forwarding_provider_domains__domain_id__forwarding_post", input)`)
1316
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1317
+ - API-key scope: `campaigns:run`
1318
+
1319
+ Forward mail arriving at this domain to another address.
1320
+
1321
+ REPLACES the current forwarding configuration rather than merging into it.
1322
+
1323
+ **Input**
1324
+
1325
+ | Field | Type | Required | Description |
1326
+ |---|---|---|---|
1327
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1328
+ | `body` | `DomainForwardingRequest` | yes | Request body; fields below. |
1329
+
1330
+ Body fields (`DomainForwardingRequest`):
1331
+
1332
+ | Field | Type | Required | Description |
1333
+ |---|---|---|---|
1334
+ | `body.attributes` | `Record<string, unknown>` | yes | Forwarding attributes accepted by the registrar |
1335
+
1336
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1337
+
1338
+ Other envelope fields: `pagination` (PaginationMeta).
1339
+
1340
+ **Example**
1341
+
1342
+ ```ts
1343
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1344
+ const result = await g8.api.providerDomains.setDomainForwarding({ path: { domain_id: 123 }, body: { attributes: {} } });
1345
+ ```
1346
+
1347
+ ---
1348
+
1349
+ <a id="op-setnameservers"></a>
1350
+
1351
+ ### `g8.api.providerDomains.setNameservers(input)`
1352
+
1353
+ **Set Nameservers**
1354
+
1355
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/set-nameservers`
1356
+ - operationId: `set_nameservers_provider_domains__domain_id__set_nameservers_post` (also callable as `g8.api.call("set_nameservers_provider_domains__domain_id__set_nameservers_post", input)`)
1357
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1358
+ - API-key scope: `campaigns:run`
1359
+
1360
+ Point this domain's nameservers at the managed mail backend, at the registrar.
1361
+
1362
+ Only meaningful for a domain graph8 registered or transferred in. DNS
1363
+ propagation is not instant; confirm with `check-propagation`.
1364
+
1365
+ **Input**
1366
+
1367
+ | Field | Type | Required | Description |
1368
+ |---|---|---|---|
1369
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1370
+
1371
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1372
+
1373
+ Other envelope fields: `pagination` (PaginationMeta).
1374
+
1375
+ **Example**
1376
+
1377
+ ```ts
1378
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1379
+ const result = await g8.api.providerDomains.setNameservers({ path: { domain_id: 123 } });
1380
+ ```
1381
+
1382
+ ---
1383
+
1384
+ <a id="op-updatemailboxprofilepicture"></a>
1385
+
1386
+ ### `g8.api.providerDomains.updateMailboxProfilePicture(input)`
1387
+
1388
+ **Update Mailbox Profile Picture**
1389
+
1390
+ - HTTP: `POST /api/v1/provider-domains/{domain_id}/mailbox-profile-picture`
1391
+ - operationId: `update_mailbox_profile_picture_provider_domains__domain_id__mailbox_profile_picture_post` (also callable as `g8.api.call("update_mailbox_profile_picture_provider_domains__domain_id__mailbox_profile_picture_post", input)`)
1392
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
1393
+ - API-key scope: `campaigns:run`
1394
+
1395
+ Set the avatar recipients see on mail from this mailbox.
1396
+
1397
+ `profile_picture` must be a URL the provider can fetch; it is downloaded
1398
+ server-side, not proxied through graph8.
1399
+
1400
+ **Input**
1401
+
1402
+ | Field | Type | Required | Description |
1403
+ |---|---|---|---|
1404
+ | `path.domain_id` | `integer` | yes | Sending domain id (provider_domains.id) - from GET /provider-domains |
1405
+ | `body` | `MailboxProfilePictureRequest` | yes | Request body; fields below. |
1406
+
1407
+ Body fields (`MailboxProfilePictureRequest`):
1408
+
1409
+ | Field | Type | Required | Description |
1410
+ |---|---|---|---|
1411
+ | `body.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) on this domain > 0 |
1412
+ | `body.profile_picture` | `string` | yes | Publicly reachable image URL |
1413
+
1414
+ **Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1415
+
1416
+ Other envelope fields: `pagination` (PaginationMeta).
1417
+
1418
+ **Example**
1419
+
1420
+ ```ts
1421
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
1422
+ const result = await g8.api.providerDomains.updateMailboxProfilePicture({
1423
+ path: { domain_id: 123 },
1424
+ body: { mailbox_id: 1, profile_picture: "example" },
1425
+ });
1426
+ ```
1427
+
1428
+ ---
1429
+
1430
+ ## Referenced types
1431
+
1432
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
1433
+
1434
+ <a id="type-mailboxpurchaseitem"></a>
1435
+
1436
+ ### `MailboxPurchaseItem`
1437
+
1438
+ One mailbox to create. Supply `username` for a managed purchase (`provider='managed'`) or a full `email` for `registrar`/`pilot`.
1439
+
1440
+ | Field | Type | Required | Description |
1441
+ |---|---|---|---|
1442
+ | `email` | `string \| null` | no | Full mailbox address, e.g. sales@acme.com |
1443
+ | `first_name` | `string \| null` | no | |
1444
+ | `last_name` | `string \| null` | no | Required (non-empty) for a managed purchase — an empty last name is rejected upstream and stalls provisioning. |
1445
+ | `password` | `string \| null` | no | Write-only. Never returned by any endpoint. |
1446
+ | `username` | `string \| null` | no | Local-part, e.g. 'sales' for sales@domain |