@graph8/sdk 0.251.0 → 0.260.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 +104 -7
  4. package/dist/index.d.ts +104 -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 +102 -7
  10. package/dist/react.d.ts +102 -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 +1696 -0
  140. package/docs/api/deals.md +2432 -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,76 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.support`: Support
4
+
5
+ 1 operation (1 write).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.support.*` 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: [support.d.ts](support.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`contactSupport`](#op-contactsupport) | `POST /api/v1/support/contact` | write | `account:write` | Contact Support |
26
+
27
+ ---
28
+
29
+ <a id="op-contactsupport"></a>
30
+
31
+ ### `g8.api.support.contactSupport(input)`
32
+
33
+ **Contact Support**
34
+
35
+ - HTTP: `POST /api/v1/support/contact`
36
+ - operationId: `contact_support_support_contact_post` (also callable as `g8.api.call("contact_support_support_contact_post", input)`)
37
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
38
+ - API-key scope: `account:write`
39
+
40
+ Send a message to graph8's human support team.
41
+
42
+ The reply channel is email: support answers to ``contact_email`` when
43
+ provided, otherwise to the authenticated user's own address.
44
+
45
+ **Input**
46
+
47
+ | Field | Type | Required | Description |
48
+ |---|---|---|---|
49
+ | `body` | `ContactSupportRequest` | yes | Request body; fields below. |
50
+
51
+ Body fields (`ContactSupportRequest`):
52
+
53
+ | Field | Type | Required | Description |
54
+ |---|---|---|---|
55
+ | `body.message` | `string` | yes | What the user needs help with, in their own words. min length 3, max length 5000 |
56
+ | `body.contact_email` | `string (email) \| null` | no | Where graph8 support should reply. Optional for personal API keys (the key's own user email is used); REQUIRED for org-scoped machine keys, which carry no personal email. |
57
+ | `body.urgency` | `string \| null` | no | Free-form urgency hint, e.g. 'normal', 'high', 'urgent'. max length 32 |
58
+
59
+ **Returns** `ApiResponse_ContactSupportResponse_`: the envelope `{ data: ContactSupportResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
60
+
61
+ Other envelope fields: `pagination` (PaginationMeta).
62
+
63
+ `ContactSupportResponse` fields:
64
+
65
+ | Field | Type | Required | Description |
66
+ |---|---|---|---|
67
+ | `status` | `string` | yes | |
68
+ | `note` | `string` | no | Human-readable summary for the caller to relay to the user. default `""` |
69
+ | `notified` | `integer` | no | Support staff notified on this call (0 on cooldown). default `0` |
70
+ | `reply_email` | `string \| null` | no | Address graph8 support will reply to. |
71
+
72
+ **Example**
73
+
74
+ ```ts
75
+ const result = await g8.api.support.contactSupport({ body: { message: "example" } });
76
+ ```
@@ -0,0 +1,241 @@
1
+ /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
+
3
+ /**
4
+ * Types for `g8.api.suppressions` (Suppressions): 6 operations.
5
+ *
6
+ * For reading. In code, import from the package instead:
7
+ * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
8
+ * type In = ApiInput<"bulk_add_suppressions_contacts_suppressions_bulk_add_post">;
9
+ *
10
+ * Reference with examples: suppressions.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.suppressions.<member>` -> the operationId it calls. */
15
+ export interface SuppressionsMembers {
16
+ bulkAddSuppressions: "bulk_add_suppressions_contacts_suppressions_bulk_add_post";
17
+ checkContactSuppression: "check_contact_suppression_contacts__contact_id__suppression_get";
18
+ listSuppressions: "list_suppressions_contacts_suppressions_get";
19
+ reinstateSuppressions: "reinstate_suppressions_contacts_suppressions_reinstate_post";
20
+ suppressContact: "suppress_contact_contacts__contact_id__suppress_post";
21
+ unsuppressContact: "unsuppress_contact_contacts__contact_id__unsuppress_post";
22
+ }
23
+
24
+ /** Input and output of every `g8.api.suppressions` operation, keyed by operationId. */
25
+ export interface SuppressionsOperations {
26
+ /**
27
+ * POST /contacts/suppressions/bulk-add
28
+ * Bulk Add Suppressions
29
+ * tier: write · scope: contacts:write
30
+ */
31
+ bulk_add_suppressions_contacts_suppressions_bulk_add_post: {
32
+ input: {
33
+ headers?: {
34
+ "X-Target-Org-Id"?: string | null;
35
+ };
36
+ body: SuppressionsBulkAddRequest;
37
+ };
38
+ output: ApiResponse_BulkSuppressResponse_;
39
+ };
40
+ /**
41
+ * GET /contacts/{contact_id}/suppression
42
+ * Check Contact Suppression
43
+ * tier: read · scope: contacts:read
44
+ */
45
+ check_contact_suppression_contacts__contact_id__suppression_get: {
46
+ input: {
47
+ path: {
48
+ /** Contact ID (mashup_contacts.id) */
49
+ contact_id: number;
50
+ };
51
+ headers?: {
52
+ "X-Target-Org-Id"?: string | null;
53
+ };
54
+ };
55
+ output: ApiResponse_SuppressionStatusResponse_;
56
+ };
57
+ /**
58
+ * GET /contacts/suppressions
59
+ * List Suppressions
60
+ * tier: read · scope: contacts:read
61
+ */
62
+ list_suppressions_contacts_suppressions_get: {
63
+ input: {
64
+ query?: {
65
+ /** Filter: all | email | phone | linkedin */
66
+ channel?: ("all" | "email" | "phone" | "linkedin") | null;
67
+ /** Filter: contact_initiated | org_initiated | system */
68
+ category?: ("contact_initiated" | "org_initiated" | "system") | null;
69
+ limit?: number;
70
+ offset?: number;
71
+ };
72
+ headers?: {
73
+ "X-Target-Org-Id"?: string | null;
74
+ };
75
+ };
76
+ output: ApiResponse_list_SuppressionRecord__;
77
+ };
78
+ /**
79
+ * POST /contacts/suppressions/reinstate
80
+ * Reinstate Suppressions
81
+ * tier: write · scope: contacts:write
82
+ */
83
+ reinstate_suppressions_contacts_suppressions_reinstate_post: {
84
+ input: {
85
+ headers?: {
86
+ "X-Target-Org-Id"?: string | null;
87
+ };
88
+ body: SuppressionsReinstateRequest;
89
+ };
90
+ output: ApiResponse_BulkReinstateResponse_;
91
+ };
92
+ /**
93
+ * POST /contacts/{contact_id}/suppress
94
+ * Suppress Contact
95
+ * tier: write · scope: contacts:write
96
+ */
97
+ suppress_contact_contacts__contact_id__suppress_post: {
98
+ input: {
99
+ path: {
100
+ /** Contact ID (mashup_contacts.id) */
101
+ contact_id: number;
102
+ };
103
+ headers?: {
104
+ "X-Target-Org-Id"?: string | null;
105
+ };
106
+ body?: SuppressContactRequest;
107
+ };
108
+ output: ApiResponse_SuppressActionResponse_;
109
+ };
110
+ /**
111
+ * POST /contacts/{contact_id}/unsuppress
112
+ * Unsuppress Contact
113
+ * tier: write · scope: contacts:write
114
+ */
115
+ unsuppress_contact_contacts__contact_id__unsuppress_post: {
116
+ input: {
117
+ path: {
118
+ /** Contact ID (mashup_contacts.id) */
119
+ contact_id: number;
120
+ };
121
+ headers?: {
122
+ "X-Target-Org-Id"?: string | null;
123
+ };
124
+ body?: SuppressContactRequest;
125
+ };
126
+ output: ApiResponse_UnsuppressActionResponse_;
127
+ };
128
+ }
129
+
130
+ // 17 schemas referenced above (the same as G8Contract.<Name>).
131
+
132
+ export interface ApiResponse_BulkReinstateResponse_ {
133
+ data: BulkReinstateResponse;
134
+ pagination?: PaginationMeta | null;
135
+ }
136
+
137
+ export interface ApiResponse_BulkSuppressResponse_ {
138
+ data: BulkSuppressResponse;
139
+ pagination?: PaginationMeta | null;
140
+ }
141
+
142
+ export interface ApiResponse_SuppressActionResponse_ {
143
+ data: SuppressActionResponse;
144
+ pagination?: PaginationMeta | null;
145
+ }
146
+
147
+ export interface ApiResponse_SuppressionStatusResponse_ {
148
+ data: SuppressionStatusResponse;
149
+ pagination?: PaginationMeta | null;
150
+ }
151
+
152
+ export interface ApiResponse_UnsuppressActionResponse_ {
153
+ data: UnsuppressActionResponse;
154
+ pagination?: PaginationMeta | null;
155
+ }
156
+
157
+ export interface ApiResponse_list_SuppressionRecord__ {
158
+ data: Array<SuppressionRecord>;
159
+ pagination?: PaginationMeta | null;
160
+ }
161
+
162
+ export interface BulkReinstateResponse {
163
+ reinstated?: Array<number>;
164
+ skipped?: Array<ReinstateSkip>;
165
+ total_requested: number;
166
+ }
167
+
168
+ export interface BulkSuppressResponse {
169
+ channel: string;
170
+ suppressed: number;
171
+ total_requested: number;
172
+ }
173
+
174
+ export interface PaginationMeta {
175
+ /** Whether there are more pages */
176
+ has_next: boolean;
177
+ /** Items per page */
178
+ limit: number;
179
+ /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
180
+ next_cursor?: string | null;
181
+ /** Current page number (1-indexed) */
182
+ page: number;
183
+ /** Total number of items */
184
+ total: number;
185
+ }
186
+
187
+ export interface ReinstateSkip {
188
+ contact_id: number;
189
+ reason: string;
190
+ }
191
+
192
+ export interface SuppressActionResponse {
193
+ contact_id: number;
194
+ is_suppressed: boolean;
195
+ revision: number;
196
+ }
197
+
198
+ export interface SuppressContactRequest {
199
+ reason?: string | null;
200
+ }
201
+
202
+ /** One row of the central ``contact_suppressions`` ledger. */
203
+ export interface SuppressionRecord {
204
+ /** contact_initiated | org_initiated | system */
205
+ category: string;
206
+ /** all | email | phone | linkedin */
207
+ channel: string;
208
+ contact_id: number;
209
+ created_at?: string | null;
210
+ created_by?: string | null;
211
+ id: string;
212
+ reason?: string | null;
213
+ revision?: number | null;
214
+ source?: string | null;
215
+ source_ref?: string | null;
216
+ }
217
+
218
+ /** Answer to "is this contact suppressed, and on which channels?". */
219
+ export interface SuppressionStatusResponse {
220
+ active_channels?: Array<string>;
221
+ contact_id: number;
222
+ is_suppressed: boolean;
223
+ suppressions?: Array<SuppressionRecord>;
224
+ }
225
+
226
+ export interface SuppressionsBulkAddRequest {
227
+ channel?: "all" | "email" | "phone" | "linkedin";
228
+ contact_ids: Array<number>;
229
+ reason?: string | null;
230
+ }
231
+
232
+ export interface SuppressionsReinstateRequest {
233
+ contact_ids: Array<number>;
234
+ reason?: string | null;
235
+ }
236
+
237
+ export interface UnsuppressActionResponse {
238
+ channels_cleared?: Array<string>;
239
+ contact_id: number;
240
+ is_suppressed: boolean;
241
+ }
@@ -0,0 +1,343 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.suppressions`: Suppressions
4
+
5
+ 6 operations (2 read, 4 write).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.suppressions.*` 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: [suppressions.d.ts](suppressions.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`bulkAddSuppressions`](#op-bulkaddsuppressions) | `POST /api/v1/contacts/suppressions/bulk-add` | write | `contacts:write` | Bulk Add Suppressions |
26
+ | [`checkContactSuppression`](#op-checkcontactsuppression) | `GET /api/v1/contacts/{contact_id}/suppression` | read | `contacts:read` | Check Contact Suppression |
27
+ | [`listSuppressions`](#op-listsuppressions) | `GET /api/v1/contacts/suppressions` | read | `contacts:read` | List Suppressions |
28
+ | [`reinstateSuppressions`](#op-reinstatesuppressions) | `POST /api/v1/contacts/suppressions/reinstate` | write | `contacts:write` | Reinstate Suppressions |
29
+ | [`suppressContact`](#op-suppresscontact) | `POST /api/v1/contacts/{contact_id}/suppress` | write | `contacts:write` | Suppress Contact |
30
+ | [`unsuppressContact`](#op-unsuppresscontact) | `POST /api/v1/contacts/{contact_id}/unsuppress` | write | `contacts:write` | Unsuppress Contact |
31
+
32
+ ---
33
+
34
+ <a id="op-bulkaddsuppressions"></a>
35
+
36
+ ### `g8.api.suppressions.bulkAddSuppressions(input)`
37
+
38
+ **Bulk Add Suppressions**
39
+
40
+ - HTTP: `POST /api/v1/contacts/suppressions/bulk-add`
41
+ - operationId: `bulk_add_suppressions_contacts_suppressions_bulk_add_post` (also callable as `g8.api.call("bulk_add_suppressions_contacts_suppressions_bulk_add_post", input)`)
42
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
43
+ - API-key scope: `contacts:write`
44
+
45
+ Suppress an explicit set of contacts in one call. Proxies the SAME
46
+ handler the app's Lists -> add-to-suppressions bulk action calls
47
+ (``contacts/router.py:1819``), minus the list/filter-model resolution
48
+ (a UI concept) -- pass the contact PKs you already have. Idempotent:
49
+ already-active rows are left untouched.
50
+
51
+ **Input**
52
+
53
+ | Field | Type | Required | Description |
54
+ |---|---|---|---|
55
+ | `body` | `SuppressionsBulkAddRequest` | yes | Request body; fields below. |
56
+
57
+ Body fields (`SuppressionsBulkAddRequest`):
58
+
59
+ | Field | Type | Required | Description |
60
+ |---|---|---|---|
61
+ | `body.contact_ids` | `Array<integer>` | yes | min items 1, max items 5000 |
62
+ | `body.channel` | `"all" \| "email" \| "phone" \| "linkedin"` | no | default `"all"` |
63
+ | `body.reason` | `string \| null` | no | max length 1000 |
64
+
65
+ **Returns** `ApiResponse_BulkSuppressResponse_`: the envelope `{ data: BulkSuppressResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
66
+
67
+ Other envelope fields: `pagination` (PaginationMeta).
68
+
69
+ `BulkSuppressResponse` fields:
70
+
71
+ | Field | Type | Required | Description |
72
+ |---|---|---|---|
73
+ | `channel` | `string` | yes | |
74
+ | `suppressed` | `integer` | yes | |
75
+ | `total_requested` | `integer` | yes | |
76
+
77
+ **Example**
78
+
79
+ ```ts
80
+ const result = await g8.api.suppressions.bulkAddSuppressions({ body: { contact_ids: [123] } });
81
+ ```
82
+
83
+ ---
84
+
85
+ <a id="op-checkcontactsuppression"></a>
86
+
87
+ ### `g8.api.suppressions.checkContactSuppression(input)`
88
+
89
+ **Check Contact Suppression**
90
+
91
+ - HTTP: `GET /api/v1/contacts/{contact_id}/suppression`
92
+ - operationId: `check_contact_suppression_contacts__contact_id__suppression_get` (also callable as `g8.api.call("check_contact_suppression_contacts__contact_id__suppression_get", input)`)
93
+ - Tier: `read`: reads data; safe to call and to retry
94
+ - API-key scope: `contacts:read`
95
+
96
+ Is this contact suppressed, and on which channel(s)?
97
+
98
+ Reads the SAME central ledger every send path checks
99
+ (``apps.suppression().service().list_suppressions``), so a "not
100
+ suppressed" answer here means the same thing it means to the sequencer
101
+ and newsletter send gates.
102
+
103
+ **Input**
104
+
105
+ | Field | Type | Required | Description |
106
+ |---|---|---|---|
107
+ | `path.contact_id` | `integer` | yes | Contact ID (mashup_contacts.id) |
108
+
109
+ **Returns** `ApiResponse_SuppressionStatusResponse_`: the envelope `{ data: SuppressionStatusResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
110
+
111
+ Other envelope fields: `pagination` (PaginationMeta).
112
+
113
+ `SuppressionStatusResponse` fields:
114
+
115
+ | Field | Type | Required | Description |
116
+ |---|---|---|---|
117
+ | `contact_id` | `integer` | yes | |
118
+ | `is_suppressed` | `boolean` | yes | |
119
+ | `active_channels` | `Array<string>` | no | |
120
+ | `suppressions` | `Array<SuppressionRecord>` | no | |
121
+
122
+ **Example**
123
+
124
+ ```ts
125
+ const result = await g8.api.suppressions.checkContactSuppression({ path: { contact_id: 123 } });
126
+ ```
127
+
128
+ ---
129
+
130
+ <a id="op-listsuppressions"></a>
131
+
132
+ ### `g8.api.suppressions.listSuppressions(input?)`
133
+
134
+ **List Suppressions**
135
+
136
+ - HTTP: `GET /api/v1/contacts/suppressions`
137
+ - operationId: `list_suppressions_contacts_suppressions_get` (also callable as `g8.api.call("list_suppressions_contacts_suppressions_get", input)`)
138
+ - Tier: `read`: reads data; safe to call and to retry
139
+ - API-key scope: `contacts:read`
140
+
141
+ Paginated org-wide list of active suppressions.
142
+
143
+ Unlike the app's Data -> Suppressions grid (which joins contact/company
144
+ names for display), this is the raw ledger -- no PII, see module
145
+ docstring. Resolve a row's contact via ``GET /contacts/{contact_id}``.
146
+
147
+ **Input**
148
+
149
+ | Field | Type | Required | Description |
150
+ |---|---|---|---|
151
+ | `query.channel` | `"all" \| "email" \| "phone" \| "linkedin" \| null` | no | Filter: all \| email \| phone \| linkedin |
152
+ | `query.category` | `"contact_initiated" \| "org_initiated" \| "system" \| null` | no | Filter: contact_initiated \| org_initiated \| system |
153
+ | `query.limit` | `integer` | no | default `50` |
154
+ | `query.offset` | `integer` | no | default `0` |
155
+
156
+ **Returns** `ApiResponse_list_SuppressionRecord__`: the envelope `{ data: Array<SuppressionRecord>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
157
+
158
+ Other envelope fields: `pagination` (PaginationMeta).
159
+
160
+ `SuppressionRecord` fields:
161
+
162
+ | Field | Type | Required | Description |
163
+ |---|---|---|---|
164
+ | `category` | `string` | yes | contact_initiated \| org_initiated \| system |
165
+ | `channel` | `string` | yes | all \| email \| phone \| linkedin |
166
+ | `contact_id` | `integer` | yes | |
167
+ | `id` | `string` | yes | |
168
+ | `created_at` | `string \| null` | no | |
169
+ | `created_by` | `string \| null` | no | |
170
+ | `reason` | `string \| null` | no | |
171
+ | `revision` | `integer \| null` | no | |
172
+ | `source` | `string \| null` | no | |
173
+ | `source_ref` | `string \| null` | no | |
174
+
175
+ **Example**
176
+
177
+ ```ts
178
+ const result = await g8.api.suppressions.listSuppressions();
179
+ ```
180
+
181
+ ---
182
+
183
+ <a id="op-reinstatesuppressions"></a>
184
+
185
+ ### `g8.api.suppressions.reinstateSuppressions(input)`
186
+
187
+ **Reinstate Suppressions**
188
+
189
+ - HTTP: `POST /api/v1/contacts/suppressions/reinstate`
190
+ - operationId: `reinstate_suppressions_contacts_suppressions_reinstate_post` (also callable as `g8.api.call("reinstate_suppressions_contacts_suppressions_reinstate_post", input)`)
191
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
192
+ - API-key scope: `contacts:write`
193
+
194
+ Bulk-reinstate contacts. Proxies the SAME handler the app's
195
+ Suppressions grid "Reinstate" bulk action calls
196
+ (``contacts/router.py:1771``). ``operator_reversible`` is recomputed
197
+ server-side per contact; a contact whose only active suppression is
198
+ contact_initiated or system is skipped and reported, never reinstated.
199
+
200
+ **Input**
201
+
202
+ | Field | Type | Required | Description |
203
+ |---|---|---|---|
204
+ | `body` | `SuppressionsReinstateRequest` | yes | Request body; fields below. |
205
+
206
+ Body fields (`SuppressionsReinstateRequest`):
207
+
208
+ | Field | Type | Required | Description |
209
+ |---|---|---|---|
210
+ | `body.contact_ids` | `Array<integer>` | yes | min items 1, max items 5000 |
211
+ | `body.reason` | `string \| null` | no | max length 1000 |
212
+
213
+ **Returns** `ApiResponse_BulkReinstateResponse_`: the envelope `{ data: BulkReinstateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
214
+
215
+ Other envelope fields: `pagination` (PaginationMeta).
216
+
217
+ `BulkReinstateResponse` fields:
218
+
219
+ | Field | Type | Required | Description |
220
+ |---|---|---|---|
221
+ | `total_requested` | `integer` | yes | |
222
+ | `reinstated` | `Array<integer>` | no | |
223
+ | `skipped` | `Array<ReinstateSkip>` | no | |
224
+
225
+ **Example**
226
+
227
+ ```ts
228
+ const result = await g8.api.suppressions.reinstateSuppressions({ body: { contact_ids: [123] } });
229
+ ```
230
+
231
+ ---
232
+
233
+ <a id="op-suppresscontact"></a>
234
+
235
+ ### `g8.api.suppressions.suppressContact(input)`
236
+
237
+ **Suppress Contact**
238
+
239
+ - HTTP: `POST /api/v1/contacts/{contact_id}/suppress`
240
+ - operationId: `suppress_contact_contacts__contact_id__suppress_post` (also callable as `g8.api.call("suppress_contact_contacts__contact_id__suppress_post", input)`)
241
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
242
+ - API-key scope: `contacts:write`
243
+
244
+ Stop all outreach to a contact. Proxies the SAME handler the in-app
245
+ contact view's "Suppress" action calls (``contacts/router.py:1660``) --
246
+ channel=all, category=org_initiated, honoured by every surface that
247
+ reads the central ledger (sequencer, newsletter, audience_sync).
248
+
249
+ **Input**
250
+
251
+ | Field | Type | Required | Description |
252
+ |---|---|---|---|
253
+ | `path.contact_id` | `integer` | yes | Contact ID (mashup_contacts.id) |
254
+ | `body` | `SuppressContactRequest` | no | Request body; fields below. |
255
+
256
+ Body fields (`SuppressContactRequest`):
257
+
258
+ | Field | Type | Required | Description |
259
+ |---|---|---|---|
260
+ | `body.reason` | `string \| null` | no | max length 1000 |
261
+
262
+ **Returns** `ApiResponse_SuppressActionResponse_`: the envelope `{ data: SuppressActionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
263
+
264
+ Other envelope fields: `pagination` (PaginationMeta).
265
+
266
+ `SuppressActionResponse` fields:
267
+
268
+ | Field | Type | Required | Description |
269
+ |---|---|---|---|
270
+ | `contact_id` | `integer` | yes | |
271
+ | `is_suppressed` | `boolean` | yes | |
272
+ | `revision` | `integer` | yes | |
273
+
274
+ **Example**
275
+
276
+ ```ts
277
+ const result = await g8.api.suppressions.suppressContact({ path: { contact_id: 123 } });
278
+ ```
279
+
280
+ ---
281
+
282
+ <a id="op-unsuppresscontact"></a>
283
+
284
+ ### `g8.api.suppressions.unsuppressContact(input)`
285
+
286
+ **Unsuppress Contact**
287
+
288
+ - HTTP: `POST /api/v1/contacts/{contact_id}/unsuppress`
289
+ - operationId: `unsuppress_contact_contacts__contact_id__unsuppress_post` (also callable as `g8.api.call("unsuppress_contact_contacts__contact_id__unsuppress_post", input)`)
290
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
291
+ - API-key scope: `contacts:write`
292
+
293
+ Reverse an operator suppression. Proxies the SAME handler the in-app
294
+ contact view's "Unsuppress" action calls (``contacts/router.py:1702``).
295
+ Clears ONLY the org_initiated umbrella -- an independent
296
+ contact_initiated (they-asked) or system (bounce/complaint) opt-out is
297
+ never overridden through this endpoint, matching the app exactly.
298
+
299
+ **Input**
300
+
301
+ | Field | Type | Required | Description |
302
+ |---|---|---|---|
303
+ | `path.contact_id` | `integer` | yes | Contact ID (mashup_contacts.id) |
304
+ | `body` | `SuppressContactRequest` | no | Request body; fields below. |
305
+
306
+ Body fields (`SuppressContactRequest`):
307
+
308
+ | Field | Type | Required | Description |
309
+ |---|---|---|---|
310
+ | `body.reason` | `string \| null` | no | max length 1000 |
311
+
312
+ **Returns** `ApiResponse_UnsuppressActionResponse_`: the envelope `{ data: UnsuppressActionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
313
+
314
+ Other envelope fields: `pagination` (PaginationMeta).
315
+
316
+ `UnsuppressActionResponse` fields:
317
+
318
+ | Field | Type | Required | Description |
319
+ |---|---|---|---|
320
+ | `contact_id` | `integer` | yes | |
321
+ | `is_suppressed` | `boolean` | yes | |
322
+ | `channels_cleared` | `Array<string>` | no | |
323
+
324
+ **Example**
325
+
326
+ ```ts
327
+ const result = await g8.api.suppressions.unsuppressContact({ path: { contact_id: 123 } });
328
+ ```
329
+
330
+ ---
331
+
332
+ ## Referenced types
333
+
334
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
335
+
336
+ <a id="type-reinstateskip"></a>
337
+
338
+ ### `ReinstateSkip`
339
+
340
+ | Field | Type | Required | Description |
341
+ |---|---|---|---|
342
+ | `contact_id` | `integer` | yes | |
343
+ | `reason` | `string` | yes | |