@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,1247 @@
1
+ <!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
2
+
3
+ # `g8.api.signatures`: Signatures
4
+
5
+ 24 operations (7 read, 16 write, 1 destructive).
6
+
7
+ No hand-written client covers this area. Call it through `g8.api.signatures.*` 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: [signatures.d.ts](signatures.d.ts).
20
+
21
+ ## Operations
22
+
23
+ | Call | HTTP | Tier | Scope | Summary |
24
+ |---|---|---|---|---|
25
+ | [`archiveSignatureTemplate`](#op-archivesignaturetemplate) | `DELETE /api/v1/signatures/templates/{template_id}` | destructive | `signatures:delete` | Archive Signature Template |
26
+ | [`assignSignatureIdentity`](#op-assignsignatureidentity) | `POST /api/v1/signatures/assignments` | write | `signatures:write` | Assign Signature Identity |
27
+ | [`assignSignatureTemplate`](#op-assignsignaturetemplate) | `POST /api/v1/signatures/templates/{template_id}/assign` | write | `signatures:write` | Assign Signature Template |
28
+ | [`changeSignatureSource`](#op-changesignaturesource) | `POST /api/v1/signatures/mailboxes/{mailbox_id}/source` | write | `signatures:write` | Change Signature Source |
29
+ | [`createSignatureCampaign`](#op-createsignaturecampaign) | `POST /api/v1/signatures/campaigns` | write | `signatures:write` | Create Signature Campaign |
30
+ | [`createSignatureTemplate`](#op-createsignaturetemplate) | `POST /api/v1/signatures/templates` | write | `signatures:write` | Create Signature Template |
31
+ | [`getSignatureReport`](#op-getsignaturereport) | `GET /api/v1/signatures/reports` | read | `signatures:read` | Get Signature Report |
32
+ | [`getSignatureSettings`](#op-getsignaturesettings) | `GET /api/v1/signatures/settings` | read | `signatures:read` | Get Signature Settings |
33
+ | [`getSignatureTemplate`](#op-getsignaturetemplate) | `GET /api/v1/signatures/templates/{template_id}` | read | `signatures:read` | Get Signature Template |
34
+ | [`listSignatureCampaigns`](#op-listsignaturecampaigns) | `GET /api/v1/signatures/campaigns` | read | `signatures:read` | List Signature Campaigns |
35
+ | [`listSignatureDeployments`](#op-listsignaturedeployments) | `GET /api/v1/signatures/mailboxes` | read | `signatures:read` | List Signature Deployments |
36
+ | [`listSignatureMembers`](#op-listsignaturemembers) | `GET /api/v1/signatures/members` | read | `signatures:read` | List Signature Members |
37
+ | [`listSignatureTemplates`](#op-listsignaturetemplates) | `GET /api/v1/signatures/templates` | read | `signatures:read` | List Signature Templates |
38
+ | [`previewSavedSignatureTemplate`](#op-previewsavedsignaturetemplate) | `POST /api/v1/signatures/templates/{template_id}/preview` | write | `signatures:write` | Preview Saved Signature Template |
39
+ | [`previewSignatureCampaign`](#op-previewsignaturecampaign) | `POST /api/v1/signatures/campaigns/preview` | write | `signatures:write` | Preview Signature Campaign |
40
+ | [`previewSignatureSetup`](#op-previewsignaturesetup) | `POST /api/v1/signatures/setup-preview` | write | `signatures:write` | Preview Signature Setup |
41
+ | [`previewSignatureTemplate`](#op-previewsignaturetemplate) | `POST /api/v1/signatures/preview` | write | `signatures:write` | Preview Signature Template |
42
+ | [`pushSignature`](#op-pushsignature) | `POST /api/v1/signatures/mailboxes/{mailbox_id}/push` | write | `signatures:write` | Push Signature |
43
+ | [`pushSignatures`](#op-pushsignatures) | `POST /api/v1/signatures/mailboxes/push` | write | `signatures:write` | Push Signatures |
44
+ | [`restoreSignature`](#op-restoresignature) | `POST /api/v1/signatures/mailboxes/{mailbox_id}/restore` | write | `signatures:write` | Restore Signature |
45
+ | [`setDefaultSignatureTemplate`](#op-setdefaultsignaturetemplate) | `POST /api/v1/signatures/templates/{template_id}/set-default` | write | `signatures:write` | Set Default Signature Template |
46
+ | [`updateSignatureCampaign`](#op-updatesignaturecampaign) | `PATCH /api/v1/signatures/campaigns/{campaign_id}` | write | `signatures:write` | Update Signature Campaign |
47
+ | [`updateSignatureSettings`](#op-updatesignaturesettings) | `PUT /api/v1/signatures/settings` | write | `signatures:write` | Update Signature Settings |
48
+ | [`updateSignatureTemplate`](#op-updatesignaturetemplate) | `PATCH /api/v1/signatures/templates/{template_id}` | write | `signatures:write` | Update Signature Template |
49
+
50
+ ---
51
+
52
+ <a id="op-archivesignaturetemplate"></a>
53
+
54
+ ### `g8.api.signatures.archiveSignatureTemplate(input)`
55
+
56
+ **Archive Signature Template**
57
+
58
+ - HTTP: `DELETE /api/v1/signatures/templates/{template_id}`
59
+ - operationId: `archive_signature_template_signatures_templates__template_id__delete` (also callable as `g8.api.call("archive_signature_template_signatures_templates__template_id__delete", input)`)
60
+ - Tier: `destructive`: deletes or archives data; confirm with a human before calling
61
+ - API-key scope: `signatures:delete`
62
+
63
+ Archive a template.
64
+
65
+ Refused with 409 while the template is still the org default, a department
66
+ default, or assigned to any mailbox — reassign those first. Archiving hides
67
+ the template from the library; already-installed signatures are untouched.
68
+
69
+ **Input**
70
+
71
+ | Field | Type | Required | Description |
72
+ |---|---|---|---|
73
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
74
+ | `query.version` | `integer` | yes | Template version you last read. A mismatch is a 409. |
75
+
76
+ **Returns** `ApiResponse_SignatureArchiveResponse_`: the envelope `{ data: SignatureArchiveResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
77
+
78
+ Other envelope fields: `pagination` (PaginationMeta).
79
+
80
+ `SignatureArchiveResponse` fields:
81
+
82
+ | Field | Type | Required | Description |
83
+ |---|---|---|---|
84
+ | `archived` | `boolean` | yes | |
85
+
86
+ **Example**
87
+
88
+ ```ts
89
+ // destructive: deletes or archives data; confirm with a human before calling.
90
+ const result = await g8.api.signatures.archiveSignatureTemplate({
91
+ path: { template_id: "00000000-0000-0000-0000-000000000000" },
92
+ query: { version: 1 },
93
+ });
94
+ ```
95
+
96
+ ---
97
+
98
+ <a id="op-assignsignatureidentity"></a>
99
+
100
+ ### `g8.api.signatures.assignSignatureIdentity(input)`
101
+
102
+ **Assign Signature Identity**
103
+
104
+ - HTTP: `POST /api/v1/signatures/assignments`
105
+ - operationId: `assign_signature_identity_signatures_assignments_post` (also callable as `g8.api.call("assign_signature_identity_signatures_assignments_post", input)`)
106
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
107
+ - API-key scope: `signatures:write`
108
+
109
+ Bind an employee identity to mailboxes and queue the first install.
110
+
111
+ This is a TAKEOVER: the mailbox's existing signature is captured for restore
112
+ and replaced, which is why ``confirm_takeover`` must be ``true``. Every
113
+ mailbox id must appear in ``expected_revisions`` (use ``0`` for a mailbox with
114
+ no assignment yet) so a stale client cannot clobber a concurrent change.
115
+
116
+ **Input**
117
+
118
+ | Field | Type | Required | Description |
119
+ |---|---|---|---|
120
+ | `body` | `SignatureAssignmentWrite` | yes | Request body; fields below. |
121
+
122
+ Body fields (`SignatureAssignmentWrite`):
123
+
124
+ | Field | Type | Required | Description |
125
+ |---|---|---|---|
126
+ | `body.confirm_takeover` | `true` | yes | Must be true. Acknowledges that the mailbox's current signature is replaced. |
127
+ | `body.data` | `SignatureAssignment` | yes | |
128
+ | `body.expected_revisions` | `Record<string, integer>` | yes | mailbox_id -> revision you last read. Use 0 for a mailbox with no assignment yet. |
129
+ | `body.mailbox_ids` | `Array<integer>` | yes | min items 1, max items 1000 |
130
+
131
+ **Returns** `ApiResponse_list_SignatureAssignmentResult__`: the envelope `{ data: Array<SignatureAssignmentResult>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
132
+
133
+ Other envelope fields: `pagination` (PaginationMeta).
134
+
135
+ `SignatureAssignmentResult` fields:
136
+
137
+ | Field | Type | Required | Description |
138
+ |---|---|---|---|
139
+ | `mailbox_id` | `integer` | yes | |
140
+ | `revision` | `integer` | yes | |
141
+
142
+ **Example**
143
+
144
+ ```ts
145
+ const result = await g8.api.signatures.assignSignatureIdentity({
146
+ body: {
147
+ confirm_takeover: true,
148
+ data: {
149
+ account_subject: "Example",
150
+ member_id: "00000000-0000-0000-0000-000000000000",
151
+ send_as_email: "jane@acme.com",
152
+ },
153
+ expected_revisions: {},
154
+ mailbox_ids: [123],
155
+ },
156
+ });
157
+ ```
158
+
159
+ ---
160
+
161
+ <a id="op-assignsignaturetemplate"></a>
162
+
163
+ ### `g8.api.signatures.assignSignatureTemplate(input)`
164
+
165
+ **Assign Signature Template**
166
+
167
+ - HTTP: `POST /api/v1/signatures/templates/{template_id}/assign`
168
+ - operationId: `assign_signature_template_signatures_templates__template_id__assign_post` (also callable as `g8.api.call("assign_signature_template_signatures_templates__template_id__assign_post", input)`)
169
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
170
+ - API-key scope: `signatures:write`
171
+
172
+ Point a set of mailboxes at this template and queue a re-install.
173
+
174
+ Targets are mutually exclusive: explicit ``mailbox_ids``, every mailbox whose
175
+ employee is in ``department``, or ``all_mailboxes``. Every targeted mailbox
176
+ must already have an employee assignment (422 otherwise).
177
+
178
+ **Input**
179
+
180
+ | Field | Type | Required | Description |
181
+ |---|---|---|---|
182
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
183
+ | `body` | `SignatureTemplateTargets` | yes | Request body; fields below. |
184
+
185
+ Body fields (`SignatureTemplateTargets`):
186
+
187
+ | Field | Type | Required | Description |
188
+ |---|---|---|---|
189
+ | `body.all_mailboxes` | `boolean` | no | Every active, assigned mailbox. default `false` |
190
+ | `body.department` | `string \| null` | no | Every assigned mailbox whose employee is in this department. |
191
+ | `body.mailbox_ids` | `Array<integer>` | no | max items 1000 |
192
+
193
+ **Returns** `ApiResponse_SignatureBulkTemplateResponse_`: the envelope `{ data: SignatureBulkTemplateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
194
+
195
+ Other envelope fields: `pagination` (PaginationMeta).
196
+
197
+ `SignatureBulkTemplateResponse` fields:
198
+
199
+ | Field | Type | Required | Description |
200
+ |---|---|---|---|
201
+ | `count` | `integer` | yes | |
202
+ | `results` | `Array<Record<string, unknown>>` | yes | |
203
+
204
+ **Example**
205
+
206
+ ```ts
207
+ const result = await g8.api.signatures.assignSignatureTemplate({
208
+ path: { template_id: "00000000-0000-0000-0000-000000000000" },
209
+ body: {},
210
+ });
211
+ ```
212
+
213
+ ---
214
+
215
+ <a id="op-changesignaturesource"></a>
216
+
217
+ ### `g8.api.signatures.changeSignatureSource(input)`
218
+
219
+ **Change Signature Source**
220
+
221
+ - HTTP: `POST /api/v1/signatures/mailboxes/{mailbox_id}/source`
222
+ - operationId: `change_signature_source_signatures_mailboxes__mailbox_id__source_post` (also callable as `g8.api.call("change_signature_source_signatures_mailboxes__mailbox_id__source_post", input)`)
223
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
224
+ - API-key scope: `signatures:write`
225
+
226
+ Choose what this mailbox sends: the org/department default, a named
227
+ template, or its own content.
228
+
229
+ ``custom`` performs the same restore as ``POST .../restore``.
230
+
231
+ **Input**
232
+
233
+ | Field | Type | Required | Description |
234
+ |---|---|---|---|
235
+ | `path.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) — from GET /signatures/mailboxes |
236
+ | `body` | `SignatureSourceWrite` | yes | Request body; fields below. |
237
+
238
+ Body fields (`SignatureSourceWrite`):
239
+
240
+ | Field | Type | Required | Description |
241
+ |---|---|---|---|
242
+ | `body.source` | `"org" \| "template" \| "custom"` | yes | |
243
+ | `body.version` | `integer` | yes | Revision you last read. A mismatch is a 409. |
244
+ | `body.template_id` | `string (uuid) \| null` | no | Required when source is 'template'. |
245
+
246
+ **Returns** `ApiResponse_SignatureDeploymentStatus_`: the envelope `{ data: SignatureDeploymentStatus, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
247
+
248
+ Other envelope fields: `pagination` (PaginationMeta).
249
+
250
+ `SignatureDeploymentStatus` fields:
251
+
252
+ | Field | Type | Required | Description |
253
+ |---|---|---|---|
254
+ | `status` | `string` | yes | |
255
+ | `message` | `string \| null` | no | |
256
+ | `revision` | `integer \| null` | no | |
257
+
258
+ **Example**
259
+
260
+ ```ts
261
+ const result = await g8.api.signatures.changeSignatureSource({ path: { mailbox_id: 123 }, body: { source: "org", version: 1 } });
262
+ ```
263
+
264
+ ---
265
+
266
+ <a id="op-createsignaturecampaign"></a>
267
+
268
+ ### `g8.api.signatures.createSignatureCampaign(input)`
269
+
270
+ **Create Signature Campaign**
271
+
272
+ - HTTP: `POST /api/v1/signatures/campaigns`
273
+ - operationId: `create_signature_campaign_signatures_campaigns_post` (also callable as `g8.api.call("create_signature_campaign_signatures_campaigns_post", input)`)
274
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
275
+ - API-key scope: `signatures:write`
276
+
277
+ Create a banner campaign.
278
+
279
+ The creative must be an OPTIONAL banner block, and ``starts_at`` /
280
+ ``ends_at`` must be timezone-aware with the end after the start. Campaigns
281
+ start in ``draft`` unless you set ``status``.
282
+
283
+ **Input**
284
+
285
+ | Field | Type | Required | Description |
286
+ |---|---|---|---|
287
+ | `body` | `SignatureCampaignWrite` | yes | Request body; fields below. |
288
+
289
+ Body fields (`SignatureCampaignWrite`):
290
+
291
+ | Field | Type | Required | Description |
292
+ |---|---|---|---|
293
+ | `body.data` | `SignatureCampaign` | yes | |
294
+ | `body.version` | `integer` | no | Revision you last read. Ignored on create. default `0` |
295
+
296
+ **Returns** `ApiResponse_SignatureCampaignResponse_`: the envelope `{ data: SignatureCampaignResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
297
+
298
+ Other envelope fields: `pagination` (PaginationMeta).
299
+
300
+ `SignatureCampaignResponse` fields:
301
+
302
+ | Field | Type | Required | Description |
303
+ |---|---|---|---|
304
+ | `data` | `Record<string, unknown>` | yes | The stored campaign document. |
305
+ | `id` | `string` | yes | |
306
+ | `revision` | `integer` | yes | |
307
+
308
+ **Example**
309
+
310
+ ```ts
311
+ const result = await g8.api.signatures.createSignatureCampaign({
312
+ body: {
313
+ data: {
314
+ block: { id: "id", kind: "identity" },
315
+ ends_at: "2026-01-01T09:00:00Z",
316
+ name: "Example",
317
+ starts_at: "2026-01-01T09:00:00Z",
318
+ },
319
+ },
320
+ });
321
+ ```
322
+
323
+ ---
324
+
325
+ <a id="op-createsignaturetemplate"></a>
326
+
327
+ ### `g8.api.signatures.createSignatureTemplate(input)`
328
+
329
+ **Create Signature Template**
330
+
331
+ - HTTP: `POST /api/v1/signatures/templates`
332
+ - operationId: `create_signature_template_signatures_templates_post` (also callable as `g8.api.call("create_signature_template_signatures_templates_post", input)`)
333
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
334
+ - API-key scope: `signatures:write`
335
+
336
+ Create a signature template.
337
+
338
+ The block list is validated the way the in-app editor validates it: exactly
339
+ one required, locked identity block, at most one optional banner slot, unique
340
+ block ids. A rejected template answers 422 with the reason.
341
+
342
+ **Input**
343
+
344
+ | Field | Type | Required | Description |
345
+ |---|---|---|---|
346
+ | `body` | `SignatureTemplateWrite` | yes | Request body; fields below. |
347
+
348
+ Body fields (`SignatureTemplateWrite`):
349
+
350
+ | Field | Type | Required | Description |
351
+ |---|---|---|---|
352
+ | `body.data` | `SignatureTemplate` | yes | |
353
+ | `body.version` | `integer` | no | Version you last read. Ignored on create. default `0` |
354
+
355
+ **Returns** `ApiResponse_SignatureTemplateResponse_`: the envelope `{ data: SignatureTemplateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
356
+
357
+ Other envelope fields: `pagination` (PaginationMeta).
358
+
359
+ `SignatureTemplateResponse` fields:
360
+
361
+ | Field | Type | Required | Description |
362
+ |---|---|---|---|
363
+ | `data` | `Record<string, unknown>` | yes | The stored template document. |
364
+ | `id` | `string` | yes | |
365
+ | `version` | `integer` | yes | |
366
+
367
+ **Example**
368
+
369
+ ```ts
370
+ const result = await g8.api.signatures.createSignatureTemplate({
371
+ body: {
372
+ data: { blocks: [{ id: "id", kind: "identity" }], name: "Example" },
373
+ },
374
+ });
375
+ ```
376
+
377
+ ---
378
+
379
+ <a id="op-getsignaturereport"></a>
380
+
381
+ ### `g8.api.signatures.getSignatureReport(input?)`
382
+
383
+ **Get Signature Report**
384
+
385
+ - HTTP: `GET /api/v1/signatures/reports`
386
+ - operationId: `get_signature_report_signatures_reports_get` (also callable as `g8.api.call("get_signature_report_signatures_reports_get", input)`)
387
+ - Tier: `read`: reads data; safe to call and to retry
388
+ - API-key scope: `signatures:read`
389
+
390
+ Signature and campaign engagement: impressions and clicks by mailbox and campaign.
391
+
392
+ **Input**: none.
393
+
394
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
395
+
396
+ Other envelope fields: `pagination` (PaginationMeta).
397
+
398
+ **Example**
399
+
400
+ ```ts
401
+ const result = await g8.api.signatures.getSignatureReport();
402
+ ```
403
+
404
+ ---
405
+
406
+ <a id="op-getsignaturesettings"></a>
407
+
408
+ ### `g8.api.signatures.getSignatureSettings(input?)`
409
+
410
+ **Get Signature Settings**
411
+
412
+ - HTTP: `GET /api/v1/signatures/settings`
413
+ - operationId: `get_signature_settings_signatures_settings_get` (also callable as `g8.api.call("get_signature_settings_signatures_settings_get", input)`)
414
+ - Tier: `read`: reads data; safe to call and to retry
415
+ - API-key scope: `signatures:read`
416
+
417
+ Read the org-wide signature policy and its current version.
418
+
419
+ ``mode`` is ``off`` (nothing managed), ``default`` (managed, employees may
420
+ override) or ``enforced`` (managed, overrides refused).
421
+
422
+ **Input**: none.
423
+
424
+ **Returns** `ApiResponse_SignatureSettingsResponse_`: the envelope `{ data: SignatureSettingsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
425
+
426
+ Other envelope fields: `pagination` (PaginationMeta).
427
+
428
+ `SignatureSettingsResponse` fields:
429
+
430
+ | Field | Type | Required | Description |
431
+ |---|---|---|---|
432
+ | `data` | `Record<string, unknown>` | yes | The stored policy document. |
433
+ | `version` | `integer` | yes | Version after the write; pass it to the next update. |
434
+
435
+ **Example**
436
+
437
+ ```ts
438
+ const result = await g8.api.signatures.getSignatureSettings();
439
+ ```
440
+
441
+ ---
442
+
443
+ <a id="op-getsignaturetemplate"></a>
444
+
445
+ ### `g8.api.signatures.getSignatureTemplate(input)`
446
+
447
+ **Get Signature Template**
448
+
449
+ - HTTP: `GET /api/v1/signatures/templates/{template_id}`
450
+ - operationId: `get_signature_template_signatures_templates__template_id__get` (also callable as `g8.api.call("get_signature_template_signatures_templates__template_id__get", input)`)
451
+ - Tier: `read`: reads data; safe to call and to retry
452
+ - API-key scope: `signatures:read`
453
+
454
+ Read one template, including the ``version`` needed to update it.
455
+
456
+ **Input**
457
+
458
+ | Field | Type | Required | Description |
459
+ |---|---|---|---|
460
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
461
+
462
+ **Returns** `ApiResponse_SignatureTemplateResponse_`: the envelope `{ data: SignatureTemplateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
463
+
464
+ Other envelope fields: `pagination` (PaginationMeta).
465
+
466
+ `SignatureTemplateResponse` fields:
467
+
468
+ | Field | Type | Required | Description |
469
+ |---|---|---|---|
470
+ | `data` | `Record<string, unknown>` | yes | The stored template document. |
471
+ | `id` | `string` | yes | |
472
+ | `version` | `integer` | yes | |
473
+
474
+ **Example**
475
+
476
+ ```ts
477
+ const result = await g8.api.signatures.getSignatureTemplate({ path: { template_id: "00000000-0000-0000-0000-000000000000" } });
478
+ ```
479
+
480
+ ---
481
+
482
+ <a id="op-listsignaturecampaigns"></a>
483
+
484
+ ### `g8.api.signatures.listSignatureCampaigns(input?)`
485
+
486
+ **List Signature Campaigns**
487
+
488
+ - HTTP: `GET /api/v1/signatures/campaigns`
489
+ - operationId: `list_signature_campaigns_signatures_campaigns_get` (also callable as `g8.api.call("list_signature_campaigns_signatures_campaigns_get", input)`)
490
+ - Tier: `read`: reads data; safe to call and to retry
491
+ - API-key scope: `signatures:read`
492
+
493
+ List signature banner campaigns and the ``revision`` needed to edit one.
494
+
495
+ **Input**: none.
496
+
497
+ **Returns** `ApiResponse_list_SignatureCampaignResponse__`: the envelope `{ data: Array<SignatureCampaignResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
498
+
499
+ Other envelope fields: `pagination` (PaginationMeta).
500
+
501
+ `SignatureCampaignResponse` fields:
502
+
503
+ | Field | Type | Required | Description |
504
+ |---|---|---|---|
505
+ | `data` | `Record<string, unknown>` | yes | The stored campaign document. |
506
+ | `id` | `string` | yes | |
507
+ | `revision` | `integer` | yes | |
508
+
509
+ **Example**
510
+
511
+ ```ts
512
+ const result = await g8.api.signatures.listSignatureCampaigns();
513
+ ```
514
+
515
+ ---
516
+
517
+ <a id="op-listsignaturedeployments"></a>
518
+
519
+ ### `g8.api.signatures.listSignatureDeployments(input?)`
520
+
521
+ **List Signature Deployments**
522
+
523
+ - HTTP: `GET /api/v1/signatures/mailboxes`
524
+ - operationId: `list_signature_deployments_signatures_mailboxes_get` (also callable as `g8.api.call("list_signature_deployments_signatures_mailboxes_get", input)`)
525
+ - Tier: `read`: reads data; safe to call and to retry
526
+ - API-key scope: `signatures:read`
527
+
528
+ List every mailbox's signature deployment: assignment, revision, status, drift.
529
+
530
+ ``revision`` here is the optimistic-concurrency token for every per-mailbox
531
+ write below. ``alert`` is true when the deployment needs an admin — blocked,
532
+ unassigned, missing a provider grant, drifted, or in restore conflict.
533
+
534
+ **Input**: none.
535
+
536
+ **Returns** `ApiResponse_list_dict__`: the envelope `{ data: Array<Record<string, unknown>>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
537
+
538
+ Other envelope fields: `pagination` (PaginationMeta).
539
+
540
+ **Example**
541
+
542
+ ```ts
543
+ const result = await g8.api.signatures.listSignatureDeployments();
544
+ ```
545
+
546
+ ---
547
+
548
+ <a id="op-listsignaturemembers"></a>
549
+
550
+ ### `g8.api.signatures.listSignatureMembers(input?)`
551
+
552
+ **List Signature Members**
553
+
554
+ - HTTP: `GET /api/v1/signatures/members`
555
+ - operationId: `list_signature_members_signatures_members_get` (also callable as `g8.api.call("list_signature_members_signatures_members_get", input)`)
556
+ - Tier: `read`: reads data; safe to call and to retry
557
+ - API-key scope: `signatures:read`
558
+
559
+ List the directory employees a mailbox signature can be assigned to.
560
+
561
+ ``id`` is the ``member_id`` required by ``POST /signatures/assignments``.
562
+
563
+ **Input**: none.
564
+
565
+ **Returns** `ApiResponse_list_SignatureMember__`: the envelope `{ data: Array<SignatureMember>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
566
+
567
+ Other envelope fields: `pagination` (PaginationMeta).
568
+
569
+ `SignatureMember` fields:
570
+
571
+ | Field | Type | Required | Description |
572
+ |---|---|---|---|
573
+ | `id` | `string` | yes | |
574
+ | `department` | `string \| null` | no | |
575
+ | `email` | `string \| null` | no | |
576
+ | `name` | `string \| null` | no | |
577
+
578
+ **Example**
579
+
580
+ ```ts
581
+ const result = await g8.api.signatures.listSignatureMembers();
582
+ ```
583
+
584
+ ---
585
+
586
+ <a id="op-listsignaturetemplates"></a>
587
+
588
+ ### `g8.api.signatures.listSignatureTemplates(input?)`
589
+
590
+ **List Signature Templates**
591
+
592
+ - HTTP: `GET /api/v1/signatures/templates`
593
+ - operationId: `list_signature_templates_signatures_templates_get` (also callable as `g8.api.call("list_signature_templates_signatures_templates_get", input)`)
594
+ - Tier: `read`: reads data; safe to call and to retry
595
+ - API-key scope: `signatures:read`
596
+
597
+ List every non-archived signature template in the org.
598
+
599
+ **Input**: none.
600
+
601
+ **Returns** `ApiResponse_list_SignatureTemplateResponse__`: the envelope `{ data: Array<SignatureTemplateResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
602
+
603
+ Other envelope fields: `pagination` (PaginationMeta).
604
+
605
+ `SignatureTemplateResponse` fields:
606
+
607
+ | Field | Type | Required | Description |
608
+ |---|---|---|---|
609
+ | `data` | `Record<string, unknown>` | yes | The stored template document. |
610
+ | `id` | `string` | yes | |
611
+ | `version` | `integer` | yes | |
612
+
613
+ **Example**
614
+
615
+ ```ts
616
+ const result = await g8.api.signatures.listSignatureTemplates();
617
+ ```
618
+
619
+ ---
620
+
621
+ <a id="op-previewsavedsignaturetemplate"></a>
622
+
623
+ ### `g8.api.signatures.previewSavedSignatureTemplate(input)`
624
+
625
+ **Preview Saved Signature Template**
626
+
627
+ - HTTP: `POST /api/v1/signatures/templates/{template_id}/preview`
628
+ - operationId: `preview_saved_signature_template_signatures_templates__template_id__preview_post` (also callable as `g8.api.call("preview_saved_signature_template_signatures_templates__template_id__preview_post", input)`)
629
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
630
+ - API-key scope: `signatures:write`
631
+
632
+ Render a stored template. Reads only — nothing is saved or sent.
633
+
634
+ Supply ``mailbox_id`` AND ``member_id`` to render with that employee's real
635
+ details; omit them for sample data.
636
+
637
+ **Input**
638
+
639
+ | Field | Type | Required | Description |
640
+ |---|---|---|---|
641
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
642
+ | `body` | `SignatureSavedPreviewRequest` | yes | Request body; fields below. |
643
+
644
+ Body fields (`SignatureSavedPreviewRequest`):
645
+
646
+ | Field | Type | Required | Description |
647
+ |---|---|---|---|
648
+ | `body.mailbox_id` | `integer \| null` | no | |
649
+ | `body.member_id` | `string (uuid) \| null` | no | |
650
+
651
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
652
+
653
+ Other envelope fields: `pagination` (PaginationMeta).
654
+
655
+ **Example**
656
+
657
+ ```ts
658
+ const result = await g8.api.signatures.previewSavedSignatureTemplate({
659
+ path: { template_id: "00000000-0000-0000-0000-000000000000" },
660
+ body: {},
661
+ });
662
+ ```
663
+
664
+ ---
665
+
666
+ <a id="op-previewsignaturecampaign"></a>
667
+
668
+ ### `g8.api.signatures.previewSignatureCampaign(input)`
669
+
670
+ **Preview Signature Campaign**
671
+
672
+ - HTTP: `POST /api/v1/signatures/campaigns/preview`
673
+ - operationId: `preview_signature_campaign_signatures_campaigns_preview_post` (also callable as `g8.api.call("preview_signature_campaign_signatures_campaigns_preview_post", input)`)
674
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
675
+ - API-key scope: `signatures:write`
676
+
677
+ Render a campaign banner and, optionally, test who it would reach.
678
+
679
+ Reads only. With ``mailbox_id`` set, ``matching`` explains whether the
680
+ campaign would apply to that sender and the supplied ``recipients``, and
681
+ which campaign wins on priority.
682
+
683
+ **Input**
684
+
685
+ | Field | Type | Required | Description |
686
+ |---|---|---|---|
687
+ | `body` | `SignatureCampaignPreviewRequest` | yes | Request body; fields below. |
688
+
689
+ Body fields (`SignatureCampaignPreviewRequest`):
690
+
691
+ | Field | Type | Required | Description |
692
+ |---|---|---|---|
693
+ | `body.data` | `SignatureCampaign` | yes | |
694
+ | `body.campaign_id` | `string (uuid) \| null` | no | Exclude this campaign from the priority comparison when previewing an edit. |
695
+ | `body.mailbox_id` | `integer \| null` | no | Evaluate the campaign's targeting rules against this mailbox. Omit to render only. |
696
+ | `body.recipients` | `Array<string>` | no | Candidate recipient addresses to test the targeting rules against. max items 100 |
697
+ | `body.version` | `integer` | no | Revision you last read. Ignored on create. default `0` |
698
+
699
+ **Returns** `ApiResponse_SignatureCampaignPreviewResponse_`: the envelope `{ data: SignatureCampaignPreviewResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
700
+
701
+ Other envelope fields: `pagination` (PaginationMeta).
702
+
703
+ `SignatureCampaignPreviewResponse` fields:
704
+
705
+ | Field | Type | Required | Description |
706
+ |---|---|---|---|
707
+ | `html` | `string` | yes | |
708
+ | `native_static` | `boolean` | yes | |
709
+ | `plain` | `string` | yes | |
710
+ | `matching` | `Record<string, unknown> \| null` | no | Targeting evaluation. Null unless mailbox_id was supplied. |
711
+
712
+ **Example**
713
+
714
+ ```ts
715
+ const result = await g8.api.signatures.previewSignatureCampaign({
716
+ body: {
717
+ data: {
718
+ block: { id: "id", kind: "identity" },
719
+ ends_at: "2026-01-01T09:00:00Z",
720
+ name: "Example",
721
+ starts_at: "2026-01-01T09:00:00Z",
722
+ },
723
+ },
724
+ });
725
+ ```
726
+
727
+ ---
728
+
729
+ <a id="op-previewsignaturesetup"></a>
730
+
731
+ ### `g8.api.signatures.previewSignatureSetup(input)`
732
+
733
+ **Preview Signature Setup**
734
+
735
+ - HTTP: `POST /api/v1/signatures/setup-preview`
736
+ - operationId: `preview_signature_setup_signatures_setup_preview_post` (also callable as `g8.api.call("preview_signature_setup_signatures_setup_preview_post", input)`)
737
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
738
+ - API-key scope: `signatures:write`
739
+
740
+ Dry-run an assignment against the mail provider before committing it.
741
+
742
+ Confirms the employee account and send-as alias resolve, and returns the
743
+ signature currently installed there. Write capability stays unverified until
744
+ a real deployment succeeds. A provider refusal answers 422 with the state and
745
+ reason rather than a stack trace.
746
+
747
+ **Input**
748
+
749
+ | Field | Type | Required | Description |
750
+ |---|---|---|---|
751
+ | `body` | `SignatureSetupPreviewRequest` | yes | Request body; fields below. |
752
+
753
+ Body fields (`SignatureSetupPreviewRequest`):
754
+
755
+ | Field | Type | Required | Description |
756
+ |---|---|---|---|
757
+ | `body.data` | `SignatureAssignment` | yes | |
758
+ | `body.mailbox_id` | `integer` | yes | |
759
+
760
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
761
+
762
+ Other envelope fields: `pagination` (PaginationMeta).
763
+
764
+ **Example**
765
+
766
+ ```ts
767
+ const result = await g8.api.signatures.previewSignatureSetup({
768
+ body: {
769
+ data: {
770
+ account_subject: "Example",
771
+ member_id: "00000000-0000-0000-0000-000000000000",
772
+ send_as_email: "jane@acme.com",
773
+ },
774
+ mailbox_id: 123,
775
+ },
776
+ });
777
+ ```
778
+
779
+ ---
780
+
781
+ <a id="op-previewsignaturetemplate"></a>
782
+
783
+ ### `g8.api.signatures.previewSignatureTemplate(input)`
784
+
785
+ **Preview Signature Template**
786
+
787
+ - HTTP: `POST /api/v1/signatures/preview`
788
+ - operationId: `preview_signature_template_signatures_preview_post` (also callable as `g8.api.call("preview_signature_template_signatures_preview_post", input)`)
789
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
790
+ - API-key scope: `signatures:write`
791
+
792
+ Render an unsaved template draft. Reads only — nothing is saved or sent.
793
+
794
+ **Input**
795
+
796
+ | Field | Type | Required | Description |
797
+ |---|---|---|---|
798
+ | `body` | `SignaturePreviewRequest` | yes | Request body; fields below. |
799
+
800
+ Body fields (`SignaturePreviewRequest`):
801
+
802
+ | Field | Type | Required | Description |
803
+ |---|---|---|---|
804
+ | `body.data` | `SignatureTemplate` | yes | |
805
+ | `body.mailbox_id` | `integer \| null` | no | |
806
+ | `body.member_id` | `string (uuid) \| null` | no | Render with this employee's real details. Requires mailbox_id; otherwise sample data is used. |
807
+ | `body.overrides` | `Record<string, string>` | no | |
808
+
809
+ **Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
810
+
811
+ Other envelope fields: `pagination` (PaginationMeta).
812
+
813
+ **Example**
814
+
815
+ ```ts
816
+ const result = await g8.api.signatures.previewSignatureTemplate({
817
+ body: {
818
+ data: { blocks: [{ id: "id", kind: "identity" }], name: "Example" },
819
+ },
820
+ });
821
+ ```
822
+
823
+ ---
824
+
825
+ <a id="op-pushsignature"></a>
826
+
827
+ ### `g8.api.signatures.pushSignature(input)`
828
+
829
+ **Push Signature**
830
+
831
+ - HTTP: `POST /api/v1/signatures/mailboxes/{mailbox_id}/push`
832
+ - operationId: `push_signature_signatures_mailboxes__mailbox_id__push_post` (also callable as `g8.api.call("push_signature_signatures_mailboxes__mailbox_id__push_post", input)`)
833
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
834
+ - API-key scope: `signatures:write`
835
+
836
+ Queue a re-compile and re-install for one mailbox.
837
+
838
+ **Input**
839
+
840
+ | Field | Type | Required | Description |
841
+ |---|---|---|---|
842
+ | `path.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) — from GET /signatures/mailboxes |
843
+ | `body` | `SignatureRevision` | yes | Request body; fields below. |
844
+
845
+ Body fields (`SignatureRevision`):
846
+
847
+ | Field | Type | Required | Description |
848
+ |---|---|---|---|
849
+ | `body.version` | `integer` | yes | Revision you last read. A mismatch is a 409. |
850
+
851
+ **Returns** `ApiResponse_SignatureDeploymentStatus_`: the envelope `{ data: SignatureDeploymentStatus, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
852
+
853
+ Other envelope fields: `pagination` (PaginationMeta).
854
+
855
+ `SignatureDeploymentStatus` fields:
856
+
857
+ | Field | Type | Required | Description |
858
+ |---|---|---|---|
859
+ | `status` | `string` | yes | |
860
+ | `message` | `string \| null` | no | |
861
+ | `revision` | `integer \| null` | no | |
862
+
863
+ **Example**
864
+
865
+ ```ts
866
+ const result = await g8.api.signatures.pushSignature({ path: { mailbox_id: 123 }, body: { version: 1 } });
867
+ ```
868
+
869
+ ---
870
+
871
+ <a id="op-pushsignatures"></a>
872
+
873
+ ### `g8.api.signatures.pushSignatures(input)`
874
+
875
+ **Push Signatures**
876
+
877
+ - HTTP: `POST /api/v1/signatures/mailboxes/push`
878
+ - operationId: `push_signatures_signatures_mailboxes_push_post` (also callable as `g8.api.call("push_signatures_signatures_mailboxes_push_post", input)`)
879
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
880
+ - API-key scope: `signatures:write`
881
+
882
+ Queue a re-install for several mailboxes at once.
883
+
884
+ Every mailbox must have a live assignment; a restored or unassigned mailbox
885
+ in the list fails the whole call with 422 rather than half-applying.
886
+
887
+ **Input**
888
+
889
+ | Field | Type | Required | Description |
890
+ |---|---|---|---|
891
+ | `body` | `SignatureBulkPushRequest` | yes | Request body; fields below. |
892
+
893
+ Body fields (`SignatureBulkPushRequest`):
894
+
895
+ | Field | Type | Required | Description |
896
+ |---|---|---|---|
897
+ | `body.mailbox_ids` | `Array<integer>` | yes | min items 1, max items 1000 |
898
+
899
+ **Returns** `ApiResponse_SignatureDeploymentStatus_`: the envelope `{ data: SignatureDeploymentStatus, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
900
+
901
+ Other envelope fields: `pagination` (PaginationMeta).
902
+
903
+ `SignatureDeploymentStatus` fields:
904
+
905
+ | Field | Type | Required | Description |
906
+ |---|---|---|---|
907
+ | `status` | `string` | yes | |
908
+ | `message` | `string \| null` | no | |
909
+ | `revision` | `integer \| null` | no | |
910
+
911
+ **Example**
912
+
913
+ ```ts
914
+ const result = await g8.api.signatures.pushSignatures({ body: { mailbox_ids: [123] } });
915
+ ```
916
+
917
+ ---
918
+
919
+ <a id="op-restoresignature"></a>
920
+
921
+ ### `g8.api.signatures.restoreSignature(input)`
922
+
923
+ **Restore Signature**
924
+
925
+ - HTTP: `POST /api/v1/signatures/mailboxes/{mailbox_id}/restore`
926
+ - operationId: `restore_signature_signatures_mailboxes__mailbox_id__restore_post` (also callable as `g8.api.call("restore_signature_signatures_mailboxes__mailbox_id__restore_post", input)`)
927
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
928
+ - API-key scope: `signatures:write`
929
+
930
+ Put back the signature this mailbox had before graph8 took it over.
931
+
932
+ Refused with 409 while the policy is ``enforced``. If the installed content
933
+ was edited outside graph8 since takeover the deployment is parked as
934
+ ``restore_conflict`` and nothing is overwritten.
935
+
936
+ **Input**
937
+
938
+ | Field | Type | Required | Description |
939
+ |---|---|---|---|
940
+ | `path.mailbox_id` | `integer` | yes | Mailbox id (mailboxes.id) — from GET /signatures/mailboxes |
941
+ | `body` | `SignatureRevision` | yes | Request body; fields below. |
942
+
943
+ Body fields (`SignatureRevision`):
944
+
945
+ | Field | Type | Required | Description |
946
+ |---|---|---|---|
947
+ | `body.version` | `integer` | yes | Revision you last read. A mismatch is a 409. |
948
+
949
+ **Returns** `ApiResponse_SignatureDeploymentStatus_`: the envelope `{ data: SignatureDeploymentStatus, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
950
+
951
+ Other envelope fields: `pagination` (PaginationMeta).
952
+
953
+ `SignatureDeploymentStatus` fields:
954
+
955
+ | Field | Type | Required | Description |
956
+ |---|---|---|---|
957
+ | `status` | `string` | yes | |
958
+ | `message` | `string \| null` | no | |
959
+ | `revision` | `integer \| null` | no | |
960
+
961
+ **Example**
962
+
963
+ ```ts
964
+ const result = await g8.api.signatures.restoreSignature({ path: { mailbox_id: 123 }, body: { version: 1 } });
965
+ ```
966
+
967
+ ---
968
+
969
+ <a id="op-setdefaultsignaturetemplate"></a>
970
+
971
+ ### `g8.api.signatures.setDefaultSignatureTemplate(input)`
972
+
973
+ **Set Default Signature Template**
974
+
975
+ - HTTP: `POST /api/v1/signatures/templates/{template_id}/set-default`
976
+ - operationId: `set_default_signature_template_signatures_templates__template_id__set_default_post` (also callable as `g8.api.call("set_default_signature_template_signatures_templates__template_id__set_default_post", input)`)
977
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
978
+ - API-key scope: `signatures:write`
979
+
980
+ Make this template the organisation default.
981
+
982
+ ``version`` is the POLICY version (from ``GET /signatures/settings``), not the
983
+ template's — this writes the policy document.
984
+
985
+ **Input**
986
+
987
+ | Field | Type | Required | Description |
988
+ |---|---|---|---|
989
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
990
+ | `body` | `SignatureRevision` | yes | Request body; fields below. |
991
+
992
+ Body fields (`SignatureRevision`):
993
+
994
+ | Field | Type | Required | Description |
995
+ |---|---|---|---|
996
+ | `body.version` | `integer` | yes | Revision you last read. A mismatch is a 409. |
997
+
998
+ **Returns** `ApiResponse_SignatureVersionResponse_`: the envelope `{ data: SignatureVersionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
999
+
1000
+ Other envelope fields: `pagination` (PaginationMeta).
1001
+
1002
+ `SignatureVersionResponse` fields:
1003
+
1004
+ | Field | Type | Required | Description |
1005
+ |---|---|---|---|
1006
+ | `version` | `integer` | yes | |
1007
+
1008
+ **Example**
1009
+
1010
+ ```ts
1011
+ const result = await g8.api.signatures.setDefaultSignatureTemplate({
1012
+ path: { template_id: "00000000-0000-0000-0000-000000000000" },
1013
+ body: { version: 1 },
1014
+ });
1015
+ ```
1016
+
1017
+ ---
1018
+
1019
+ <a id="op-updatesignaturecampaign"></a>
1020
+
1021
+ ### `g8.api.signatures.updateSignatureCampaign(input)`
1022
+
1023
+ **Update Signature Campaign**
1024
+
1025
+ - HTTP: `PATCH /api/v1/signatures/campaigns/{campaign_id}`
1026
+ - operationId: `update_signature_campaign_signatures_campaigns__campaign_id__patch` (also callable as `g8.api.call("update_signature_campaign_signatures_campaigns__campaign_id__patch", input)`)
1027
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
1028
+ - API-key scope: `signatures:write`
1029
+
1030
+ Replace a campaign's content or schedule. Send the ``revision`` you read.
1031
+
1032
+ **Input**
1033
+
1034
+ | Field | Type | Required | Description |
1035
+ |---|---|---|---|
1036
+ | `path.campaign_id` | `string (uuid)` | yes | Signature campaign id |
1037
+ | `body` | `SignatureCampaignWrite` | yes | Request body; fields below. |
1038
+
1039
+ Body fields (`SignatureCampaignWrite`):
1040
+
1041
+ | Field | Type | Required | Description |
1042
+ |---|---|---|---|
1043
+ | `body.data` | `SignatureCampaign` | yes | |
1044
+ | `body.version` | `integer` | no | Revision you last read. Ignored on create. default `0` |
1045
+
1046
+ **Returns** `ApiResponse_SignatureCampaignResponse_`: the envelope `{ data: SignatureCampaignResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1047
+
1048
+ Other envelope fields: `pagination` (PaginationMeta).
1049
+
1050
+ `SignatureCampaignResponse` fields:
1051
+
1052
+ | Field | Type | Required | Description |
1053
+ |---|---|---|---|
1054
+ | `data` | `Record<string, unknown>` | yes | The stored campaign document. |
1055
+ | `id` | `string` | yes | |
1056
+ | `revision` | `integer` | yes | |
1057
+
1058
+ **Example**
1059
+
1060
+ ```ts
1061
+ const result = await g8.api.signatures.updateSignatureCampaign({
1062
+ path: { campaign_id: "00000000-0000-0000-0000-000000000000" },
1063
+ body: {
1064
+ data: {
1065
+ block: { id: "id", kind: "identity" },
1066
+ ends_at: "2026-01-01T09:00:00Z",
1067
+ name: "Example",
1068
+ starts_at: "2026-01-01T09:00:00Z",
1069
+ },
1070
+ },
1071
+ });
1072
+ ```
1073
+
1074
+ ---
1075
+
1076
+ <a id="op-updatesignaturesettings"></a>
1077
+
1078
+ ### `g8.api.signatures.updateSignatureSettings(input)`
1079
+
1080
+ **Update Signature Settings**
1081
+
1082
+ - HTTP: `PUT /api/v1/signatures/settings`
1083
+ - operationId: `update_signature_settings_signatures_settings_put` (also callable as `g8.api.call("update_signature_settings_signatures_settings_put", input)`)
1084
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
1085
+ - API-key scope: `signatures:write`
1086
+
1087
+ Replace the signature policy.
1088
+
1089
+ Enabling management requires a default template; ``enforced`` additionally
1090
+ requires every active mailbox to already have an assignment. Send the
1091
+ ``version`` you read — a concurrent change answers 409.
1092
+
1093
+ **Input**
1094
+
1095
+ | Field | Type | Required | Description |
1096
+ |---|---|---|---|
1097
+ | `body` | `SignatureSettingsWrite` | yes | Request body; fields below. |
1098
+
1099
+ Body fields (`SignatureSettingsWrite`):
1100
+
1101
+ | Field | Type | Required | Description |
1102
+ |---|---|---|---|
1103
+ | `body.data` | `SignatureSettings` | yes | |
1104
+ | `body.version` | `integer` | yes | Version you last read. A mismatch is a 409. |
1105
+
1106
+ **Returns** `ApiResponse_SignatureSettingsResponse_`: the envelope `{ data: SignatureSettingsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1107
+
1108
+ Other envelope fields: `pagination` (PaginationMeta).
1109
+
1110
+ `SignatureSettingsResponse` fields:
1111
+
1112
+ | Field | Type | Required | Description |
1113
+ |---|---|---|---|
1114
+ | `data` | `Record<string, unknown>` | yes | The stored policy document. |
1115
+ | `version` | `integer` | yes | Version after the write; pass it to the next update. |
1116
+
1117
+ **Example**
1118
+
1119
+ ```ts
1120
+ const result = await g8.api.signatures.updateSignatureSettings({ body: { data: {}, version: 1 } });
1121
+ ```
1122
+
1123
+ ---
1124
+
1125
+ <a id="op-updatesignaturetemplate"></a>
1126
+
1127
+ ### `g8.api.signatures.updateSignatureTemplate(input)`
1128
+
1129
+ **Update Signature Template**
1130
+
1131
+ - HTTP: `PATCH /api/v1/signatures/templates/{template_id}`
1132
+ - operationId: `update_signature_template_signatures_templates__template_id__patch` (also callable as `g8.api.call("update_signature_template_signatures_templates__template_id__patch", input)`)
1133
+ - Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
1134
+ - API-key scope: `signatures:write`
1135
+
1136
+ Replace a template's content. Send the ``version`` you read.
1137
+
1138
+ **Input**
1139
+
1140
+ | Field | Type | Required | Description |
1141
+ |---|---|---|---|
1142
+ | `path.template_id` | `string (uuid)` | yes | Signature template id |
1143
+ | `body` | `SignatureTemplateWrite` | yes | Request body; fields below. |
1144
+
1145
+ Body fields (`SignatureTemplateWrite`):
1146
+
1147
+ | Field | Type | Required | Description |
1148
+ |---|---|---|---|
1149
+ | `body.data` | `SignatureTemplate` | yes | |
1150
+ | `body.version` | `integer` | no | Version you last read. Ignored on create. default `0` |
1151
+
1152
+ **Returns** `ApiResponse_SignatureTemplateResponse_`: the envelope `{ data: SignatureTemplateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
1153
+
1154
+ Other envelope fields: `pagination` (PaginationMeta).
1155
+
1156
+ `SignatureTemplateResponse` fields:
1157
+
1158
+ | Field | Type | Required | Description |
1159
+ |---|---|---|---|
1160
+ | `data` | `Record<string, unknown>` | yes | The stored template document. |
1161
+ | `id` | `string` | yes | |
1162
+ | `version` | `integer` | yes | |
1163
+
1164
+ **Example**
1165
+
1166
+ ```ts
1167
+ const result = await g8.api.signatures.updateSignatureTemplate({
1168
+ path: { template_id: "00000000-0000-0000-0000-000000000000" },
1169
+ body: {
1170
+ data: { blocks: [{ id: "id", kind: "identity" }], name: "Example" },
1171
+ },
1172
+ });
1173
+ ```
1174
+
1175
+ ---
1176
+
1177
+ ## Referenced types
1178
+
1179
+ Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
1180
+
1181
+ <a id="type-signatureassignment"></a>
1182
+
1183
+ ### `SignatureAssignment`
1184
+
1185
+ Which employee a mailbox signs as, and which template it renders.
1186
+
1187
+ | Field | Type | Required | Description |
1188
+ |---|---|---|---|
1189
+ | `account_subject` | `string` | yes | min length 3, max length 255 |
1190
+ | `member_id` | `string (uuid)` | yes | |
1191
+ | `send_as_email` | `string` | yes | min length 3, max length 255 |
1192
+ | `integration_id` | `string (uuid) \| null` | no | |
1193
+ | `native_requested` | `boolean` | no | default `false` |
1194
+ | `overrides` | `Record<string, string>` | no | |
1195
+ | `template_id` | `string (uuid) \| null` | no | |
1196
+
1197
+ <a id="type-signaturecampaign"></a>
1198
+
1199
+ ### `SignatureCampaign`
1200
+
1201
+ A time-boxed banner campaign injected into managed signatures.
1202
+
1203
+ | Field | Type | Required | Description |
1204
+ |---|---|---|---|
1205
+ | `block` | `Block` | yes | |
1206
+ | `ends_at` | `string (date-time)` | yes | |
1207
+ | `name` | `string` | yes | min length 1, max length 150 |
1208
+ | `starts_at` | `string (date-time)` | yes | |
1209
+ | `departments` | `Array<string>` | no | max items 1000 |
1210
+ | `excluded_domains` | `Array<string>` | no | max items 1000 |
1211
+ | `external_only` | `boolean` | no | default `true` |
1212
+ | `mailbox_ids` | `Array<integer>` | no | max items 10000 |
1213
+ | `native_static` | `boolean` | no | default `false` |
1214
+ | `priority` | `integer` | no | default `0`, min -1000, max 1000 |
1215
+ | `recipient_domains` | `Array<string>` | no | max items 1000 |
1216
+ | `recipient_list_ids` | `Array<integer>` | no | max items 1000 |
1217
+ | `status` | `"draft" \| "scheduled" \| "paused"` | no | default `"draft"` |
1218
+
1219
+ <a id="type-signaturesettings"></a>
1220
+
1221
+ ### `SignatureSettings`
1222
+
1223
+ Org-wide signature policy document. Same contract as the in-app editor.
1224
+
1225
+ | Field | Type | Required | Description |
1226
+ |---|---|---|---|
1227
+ | `allow_employee_overrides` | `boolean` | no | default `true` |
1228
+ | `cold_sends_variant` | `"full" \| "compact"` | no | default `"compact"` |
1229
+ | `default_template_id` | `string (uuid) \| null` | no | |
1230
+ | `department_templates` | `Record<string, string (uuid)>` | no | |
1231
+ | `mode` | `"off" \| "default" \| "enforced"` | no | default `"off"` |
1232
+ | `native_enabled` | `boolean` | no | default `false` |
1233
+
1234
+ <a id="type-signaturetemplate"></a>
1235
+
1236
+ ### `SignatureTemplate`
1237
+
1238
+ A signature template's blocks, layout and branding.
1239
+
1240
+ | Field | Type | Required | Description |
1241
+ |---|---|---|---|
1242
+ | `blocks` | `Array<Block>` | yes | min items 1, max items 30 |
1243
+ | `name` | `string` | yes | min length 1, max length 150 |
1244
+ | `brand_source` | `"brand_kit" \| "custom"` | no | default `"brand_kit"` |
1245
+ | `font` | `"Arial" \| "Verdana" \| "Georgia" \| "Tahoma"` | no | default `"Arial"` |
1246
+ | `layout` | `"classic-stacked" \| "photo-left" \| "logo-left" \| "two-column" \| "compact-inline" \| "banner-hero"` | no | default `"classic-stacked"` |
1247
+ | `primary_color` | `string` | no | default `"#222222"`, pattern `^#[a-fA-F0-9]{6}$` |