@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,1636 @@
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.companies` (Companies): 50 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<"assign_company_owner_companies_assign_owner_post">;
9
+ *
10
+ * Reference with examples: companies.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.companies.<member>` -> the operationId it calls. */
15
+ export interface CompaniesMembers {
16
+ assignCompanyOwner: "assign_company_owner_companies_assign_owner_post";
17
+ attachCompanyContact: "attach_company_contact_companies__company_id__contacts__contact_id__post";
18
+ bulkEnrichCompanies: "bulk_enrich_companies_companies_enrich_bulk_post";
19
+ bulkEnrichCompanyPeople: "bulk_enrich_company_people_companies_enrich_people_bulk_post";
20
+ bulkEnrichCompanyStakeholders: "bulk_enrich_company_stakeholders_companies_enrich_stakeholders_bulk_post";
21
+ createCompany: "create_company_companies_post";
22
+ createCompanyColumn: "create_company_column_companies_columns_create_post";
23
+ createCompanyTask: "create_company_task_companies__company_id__tasks_post";
24
+ deleteCompany: "delete_company_companies__company_id__delete";
25
+ deleteCompanyColumn: "delete_company_column_companies_columns__column_id__delete";
26
+ deleteCompanyDocument: "delete_company_document_companies__company_id__documents__document_id__delete";
27
+ enrichCompany: "enrich_company_companies__company_id__enrich_post";
28
+ generateCompanyDocument: "generate_company_document_companies__company_id__documents_types__doc_type__generate_post";
29
+ getCompaniesOpenJobs: "get_companies_open_jobs_companies_open_jobs_post";
30
+ getCompany: "get_company_companies__company_id__get";
31
+ getCompanyBillingPrefill: "get_company_billing_prefill_companies__company_id__billing_prefill_get";
32
+ getCompanyContacts: "get_company_contacts_companies__company_id__contacts_get";
33
+ getCompanyDashboard: "get_company_dashboard_companies__company_id__dashboard_get";
34
+ getCompanyDetail: "get_company_detail_companies__company_id__detail_get";
35
+ getCompanyEngagementSummary: "get_company_engagement_summary_companies__company_id__engagement_summary_get";
36
+ getCompanyFormFields: "get_company_form_fields_companies_form_fields_get";
37
+ getCompanyIcpFit: "get_company_icp_fit_companies__company_id__icp_fit_get";
38
+ getCompanyIntelligenceData: "get_company_intelligence_data_companies__company_id__intelligence_data__data_type__get";
39
+ getCompanyIntelligenceStatus: "get_company_intelligence_status_companies__company_id__intelligence_status_get";
40
+ getCompanyIntelligenceSteps: "get_company_intelligence_steps_companies__company_id__intelligence_steps_get";
41
+ getCompanyNextBestStep: "get_company_next_best_step_companies__company_id__next_best_step_get";
42
+ getCompanyReviewStats: "get_company_review_stats_companies_review_stats_get";
43
+ getCompanySignals: "get_company_signals_companies__company_id__signals_get";
44
+ getCompanySitesVisited: "get_company_sites_visited_companies__company_id__sites_visited_get";
45
+ getCompanySynthesisReadiness: "get_company_synthesis_readiness_companies__company_id__synthesis_readiness_get";
46
+ getCompanyWorkflowStatus: "get_company_workflow_status_companies__company_id__workflow_status_get";
47
+ importCompanies: "import_companies_companies_import_post";
48
+ listCompanies: "list_companies_companies_get";
49
+ listCompaniesEnriched: "list_companies_enriched_companies_enriched_get";
50
+ listCompanyColumns: "list_company_columns_companies_columns_get";
51
+ listCompanyDocuments: "list_company_documents_companies__company_id__documents_get";
52
+ listCompanyPeople: "list_company_people_companies__company_id__people_get";
53
+ listCompanyTasks: "list_company_tasks_companies__company_id__tasks_get";
54
+ listContactsAcrossCompanies: "list_contacts_across_companies_companies_contacts_get";
55
+ mergeCompany: "merge_company_companies__company_id__merge_post";
56
+ mergeFilteredCompanies: "merge_filtered_companies_companies_merge_filtered_post";
57
+ previewCompanyMerge: "preview_company_merge_companies__company_id__merge_preview_get";
58
+ refreshCompanyBillingPrefill: "refresh_company_billing_prefill_companies__company_id__billing_prefill_refresh_post";
59
+ regenerateCompanyDocument: "regenerate_company_document_companies__company_id__documents_types__doc_type__regenerate_post";
60
+ removeCompanyContact: "remove_company_contact_companies__company_id__contacts__contact_id__delete";
61
+ retryCompanyIntelligence: "retry_company_intelligence_companies__company_id__retry_intelligence_post";
62
+ retryCompanySynthesis: "retry_company_synthesis_companies__company_id__retry_synthesis_post";
63
+ saveSkillResultToCompany: "save_skill_result_to_company_companies__company_id__documents_from_skill_post";
64
+ startCompanyWorkflow: "start_company_workflow_companies__company_id__workflows__workflow_type__start_post";
65
+ updateCompany: "update_company_companies__company_id__patch";
66
+ }
67
+
68
+ /** Input and output of every `g8.api.companies` operation, keyed by operationId. */
69
+ export interface CompaniesOperations {
70
+ /**
71
+ * POST /companies/assign-owner
72
+ * Assign Company Owner
73
+ * tier: write · scope: companies:write
74
+ */
75
+ assign_company_owner_companies_assign_owner_post: {
76
+ input: {
77
+ headers?: {
78
+ "X-Target-Org-Id"?: string | null;
79
+ };
80
+ body: AssignOwnerMatchingRequest;
81
+ };
82
+ output: ApiResponse_CrmRecordPayload_;
83
+ };
84
+ /**
85
+ * POST /companies/{company_id}/contacts/{contact_id}
86
+ * Attach Company Contact
87
+ * tier: write · scope: companies:write
88
+ */
89
+ attach_company_contact_companies__company_id__contacts__contact_id__post: {
90
+ input: {
91
+ path: {
92
+ /** Company id. */
93
+ company_id: string;
94
+ /** Contact to link to the company. */
95
+ contact_id: string;
96
+ };
97
+ headers?: {
98
+ "X-Target-Org-Id"?: string | null;
99
+ };
100
+ };
101
+ output: ApiResponse_CrmRecordPayload_;
102
+ };
103
+ /**
104
+ * POST /companies/enrich/bulk
105
+ * Bulk Enrich Companies
106
+ * tier: billable · scope: enrichment:run
107
+ */
108
+ bulk_enrich_companies_companies_enrich_bulk_post: {
109
+ input: {
110
+ headers?: {
111
+ "X-Target-Org-Id"?: string | null;
112
+ };
113
+ };
114
+ output: ApiResponse_CrmRecordPayload_;
115
+ };
116
+ /**
117
+ * POST /companies/enrich/people/bulk
118
+ * Bulk Enrich Company People
119
+ * tier: billable · scope: enrichment:run
120
+ */
121
+ bulk_enrich_company_people_companies_enrich_people_bulk_post: {
122
+ input: {
123
+ headers?: {
124
+ "X-Target-Org-Id"?: string | null;
125
+ };
126
+ };
127
+ output: ApiResponse_CrmRecordPayload_;
128
+ };
129
+ /**
130
+ * POST /companies/enrich/stakeholders/bulk
131
+ * Bulk Enrich Company Stakeholders
132
+ * tier: billable · scope: enrichment:run
133
+ */
134
+ bulk_enrich_company_stakeholders_companies_enrich_stakeholders_bulk_post: {
135
+ input: {
136
+ headers?: {
137
+ "X-Target-Org-Id"?: string | null;
138
+ };
139
+ };
140
+ output: ApiResponse_CrmRecordPayload_;
141
+ };
142
+ /**
143
+ * POST /companies
144
+ * Create Company
145
+ * tier: write · scope: companies:write
146
+ */
147
+ create_company_companies_post: {
148
+ input: {
149
+ headers?: {
150
+ "X-Target-Org-Id"?: string | null;
151
+ };
152
+ body: CompanyCreateRequest;
153
+ };
154
+ output: ApiResponse_CompanyCreateResponse_;
155
+ };
156
+ /**
157
+ * POST /companies/columns/create
158
+ * Create Company Column
159
+ * tier: write · scope: companies:write
160
+ */
161
+ create_company_column_companies_columns_create_post: {
162
+ input: {
163
+ headers?: {
164
+ "X-Target-Org-Id"?: string | null;
165
+ };
166
+ body: CreateCompanyColumnRequest;
167
+ };
168
+ output: ApiResponse_CreateCompanyColumnResponse_;
169
+ };
170
+ /**
171
+ * POST /companies/{company_id}/tasks
172
+ * Create Company Task
173
+ * tier: write · scope: companies:write
174
+ */
175
+ create_company_task_companies__company_id__tasks_post: {
176
+ input: {
177
+ path: {
178
+ /** Company id. */
179
+ company_id: number;
180
+ };
181
+ headers?: {
182
+ "X-Target-Org-Id"?: string | null;
183
+ };
184
+ body: CompanyTaskCreateRequest;
185
+ };
186
+ output: ApiResponse_CrmRecordPayload_;
187
+ };
188
+ /**
189
+ * DELETE /companies/{company_id}
190
+ * Delete Company
191
+ * tier: destructive · scope: companies:delete
192
+ */
193
+ delete_company_companies__company_id__delete: {
194
+ input: {
195
+ path: {
196
+ /** Company ID */
197
+ company_id: number;
198
+ };
199
+ headers?: {
200
+ "X-Target-Org-Id"?: string | null;
201
+ };
202
+ };
203
+ output: ApiResponse_dict_;
204
+ };
205
+ /**
206
+ * DELETE /companies/columns/{column_id}
207
+ * Delete Company Column
208
+ * tier: destructive · scope: companies:delete
209
+ */
210
+ delete_company_column_companies_columns__column_id__delete: {
211
+ input: {
212
+ path: {
213
+ /** ID of the column to delete */
214
+ column_id: number;
215
+ };
216
+ headers?: {
217
+ "X-Target-Org-Id"?: string | null;
218
+ };
219
+ };
220
+ output: ApiResponse_dict_;
221
+ };
222
+ /**
223
+ * DELETE /companies/{company_id}/documents/{document_id}
224
+ * Delete Company Document
225
+ * tier: destructive · scope: companies:delete
226
+ */
227
+ delete_company_document_companies__company_id__documents__document_id__delete: {
228
+ input: {
229
+ path: {
230
+ /** Company id. */
231
+ company_id: string;
232
+ /** Document id. */
233
+ document_id: string;
234
+ };
235
+ headers?: {
236
+ "X-Target-Org-Id"?: string | null;
237
+ };
238
+ };
239
+ output: ApiResponse_CrmRecordPayload_;
240
+ };
241
+ /**
242
+ * POST /companies/{company_id}/enrich
243
+ * Enrich Company
244
+ * tier: billable · scope: enrichment:run
245
+ */
246
+ enrich_company_companies__company_id__enrich_post: {
247
+ input: {
248
+ path: {
249
+ /** Company id. */
250
+ company_id: string;
251
+ };
252
+ headers?: {
253
+ "X-Target-Org-Id"?: string | null;
254
+ };
255
+ };
256
+ output: ApiResponse_CrmRecordPayload_;
257
+ };
258
+ /**
259
+ * POST /companies/{company_id}/documents/types/{doc_type}/generate
260
+ * Generate Company Document
261
+ * tier: billable · scope: enrichment:run
262
+ */
263
+ generate_company_document_companies__company_id__documents_types__doc_type__generate_post: {
264
+ input: {
265
+ path: {
266
+ /** Company id. */
267
+ company_id: string;
268
+ /** Document type, e.g. `account_brief`. */
269
+ doc_type: string;
270
+ };
271
+ headers?: {
272
+ "X-Target-Org-Id"?: string | null;
273
+ };
274
+ };
275
+ output: ApiResponse_CrmRecordPayload_;
276
+ };
277
+ /**
278
+ * POST /companies/open-jobs
279
+ * Get Companies Open Jobs
280
+ * tier: read · scope: companies:read
281
+ */
282
+ get_companies_open_jobs_companies_open_jobs_post: {
283
+ input: {
284
+ headers?: {
285
+ "X-Target-Org-Id"?: string | null;
286
+ };
287
+ body: CompaniesOpenJobsRequest;
288
+ };
289
+ output: ApiResponse_dict_;
290
+ };
291
+ /**
292
+ * GET /companies/{company_id}
293
+ * Get Company
294
+ * tier: read · scope: companies:read
295
+ */
296
+ get_company_companies__company_id__get: {
297
+ input: {
298
+ path: {
299
+ /** Company ID */
300
+ company_id: number;
301
+ };
302
+ query?: {
303
+ /** When true, the response includes a `custom_fields` object of custom column values keyed by column slug. Default false omits it. */
304
+ include_custom_fields?: boolean;
305
+ };
306
+ headers?: {
307
+ "X-Target-Org-Id"?: string | null;
308
+ };
309
+ };
310
+ output: ApiResponse_CompanyResponse_;
311
+ };
312
+ /**
313
+ * GET /companies/{company_id}/billing-prefill
314
+ * Get Company Billing Prefill
315
+ * tier: read · scope: companies:read
316
+ */
317
+ get_company_billing_prefill_companies__company_id__billing_prefill_get: {
318
+ input: {
319
+ path: {
320
+ /** Company id. */
321
+ company_id: string;
322
+ };
323
+ headers?: {
324
+ "X-Target-Org-Id"?: string | null;
325
+ };
326
+ };
327
+ output: ApiResponse_CrmRecordPayload_;
328
+ };
329
+ /**
330
+ * GET /companies/{company_id}/contacts
331
+ * Get Company Contacts
332
+ * tier: read · scope: companies:read
333
+ */
334
+ get_company_contacts_companies__company_id__contacts_get: {
335
+ input: {
336
+ path: {
337
+ /** Company ID */
338
+ company_id: number;
339
+ };
340
+ query?: {
341
+ /** Items per page (max 200) */
342
+ limit?: number;
343
+ /** Offset for pagination */
344
+ offset?: number;
345
+ };
346
+ headers?: {
347
+ "X-Target-Org-Id"?: string | null;
348
+ };
349
+ };
350
+ output: ApiResponse_list_CompanyContactItem__;
351
+ };
352
+ /**
353
+ * GET /companies/{company_id}/dashboard
354
+ * Get Company Dashboard
355
+ * tier: read · scope: companies:read
356
+ */
357
+ get_company_dashboard_companies__company_id__dashboard_get: {
358
+ input: {
359
+ path: {
360
+ /** Company id. */
361
+ company_id: string;
362
+ };
363
+ headers?: {
364
+ "X-Target-Org-Id"?: string | null;
365
+ };
366
+ };
367
+ output: ApiResponse_CrmRecordPayload_;
368
+ };
369
+ /**
370
+ * GET /companies/{company_id}/detail
371
+ * Get Company Detail
372
+ * tier: read · scope: companies:read
373
+ */
374
+ get_company_detail_companies__company_id__detail_get: {
375
+ input: {
376
+ path: {
377
+ /** Company id. */
378
+ company_id: string;
379
+ };
380
+ query?: {
381
+ /** `auto` resolves the graph8 company id (integer or UUID); `company_id` resolves the global company business key. */
382
+ id_kind?: "auto" | "company_id";
383
+ };
384
+ headers?: {
385
+ "X-Target-Org-Id"?: string | null;
386
+ };
387
+ };
388
+ output: ApiResponse_CrmRecordPayload_;
389
+ };
390
+ /**
391
+ * GET /companies/{company_id}/engagement-summary
392
+ * Get Company Engagement Summary
393
+ * tier: read · scope: companies:read
394
+ */
395
+ get_company_engagement_summary_companies__company_id__engagement_summary_get: {
396
+ input: {
397
+ path: {
398
+ /** Company id. */
399
+ company_id: string;
400
+ };
401
+ headers?: {
402
+ "X-Target-Org-Id"?: string | null;
403
+ };
404
+ };
405
+ output: ApiResponse_CrmRecordPayload_;
406
+ };
407
+ /**
408
+ * GET /companies/form-fields
409
+ * Get Company Form Fields
410
+ * tier: read · scope: companies:read
411
+ */
412
+ get_company_form_fields_companies_form_fields_get: {
413
+ input: {
414
+ query?: {
415
+ /** Include this list's custom fields. */
416
+ list_id?: number | null;
417
+ };
418
+ headers?: {
419
+ "X-Target-Org-Id"?: string | null;
420
+ };
421
+ };
422
+ output: ApiResponse_CrmRecordPayload_;
423
+ };
424
+ /**
425
+ * GET /companies/{company_id}/icp-fit
426
+ * Get Company Icp Fit
427
+ * tier: read · scope: companies:read
428
+ */
429
+ get_company_icp_fit_companies__company_id__icp_fit_get: {
430
+ input: {
431
+ path: {
432
+ /** Company business key. */
433
+ company_id: number;
434
+ };
435
+ headers?: {
436
+ "X-Target-Org-Id"?: string | null;
437
+ };
438
+ };
439
+ output: ApiResponse_CrmRecordPayload_;
440
+ };
441
+ /**
442
+ * GET /companies/{company_id}/intelligence-data/{data_type}
443
+ * Get Company Intelligence Data
444
+ * tier: read · scope: companies:read
445
+ */
446
+ get_company_intelligence_data_companies__company_id__intelligence_data__data_type__get: {
447
+ input: {
448
+ path: {
449
+ /** Company id. */
450
+ company_id: string;
451
+ /** Intelligence data type, e.g. `tech_stack`. */
452
+ data_type: string;
453
+ };
454
+ headers?: {
455
+ "X-Target-Org-Id"?: string | null;
456
+ };
457
+ };
458
+ output: ApiResponse_CrmRecordPayload_;
459
+ };
460
+ /**
461
+ * GET /companies/{company_id}/intelligence-status
462
+ * Get Company Intelligence Status
463
+ * tier: read · scope: companies:read
464
+ */
465
+ get_company_intelligence_status_companies__company_id__intelligence_status_get: {
466
+ input: {
467
+ path: {
468
+ /** Company id. */
469
+ company_id: string;
470
+ };
471
+ headers?: {
472
+ "X-Target-Org-Id"?: string | null;
473
+ };
474
+ };
475
+ output: ApiResponse_CrmRecordPayload_;
476
+ };
477
+ /**
478
+ * GET /companies/{company_id}/intelligence-steps
479
+ * Get Company Intelligence Steps
480
+ * tier: read · scope: companies:read
481
+ */
482
+ get_company_intelligence_steps_companies__company_id__intelligence_steps_get: {
483
+ input: {
484
+ path: {
485
+ /** Company id. */
486
+ company_id: string;
487
+ };
488
+ headers?: {
489
+ "X-Target-Org-Id"?: string | null;
490
+ };
491
+ };
492
+ output: ApiResponse_CrmRecordPayload_;
493
+ };
494
+ /**
495
+ * GET /companies/{company_id}/next-best-step
496
+ * Get Company Next Best Step
497
+ * tier: billable · scope: enrichment:run
498
+ */
499
+ get_company_next_best_step_companies__company_id__next_best_step_get: {
500
+ input: {
501
+ path: {
502
+ /** Company id. */
503
+ company_id: number;
504
+ };
505
+ headers?: {
506
+ "X-Target-Org-Id"?: string | null;
507
+ };
508
+ };
509
+ output: ApiResponse_CrmRecordPayload_;
510
+ };
511
+ /**
512
+ * GET /companies/review-stats
513
+ * Get Company Review Stats
514
+ * tier: read · scope: companies:read
515
+ */
516
+ get_company_review_stats_companies_review_stats_get: {
517
+ input: {
518
+ headers?: {
519
+ "X-Target-Org-Id"?: string | null;
520
+ };
521
+ };
522
+ output: ApiResponse_CrmRecordPayload_;
523
+ };
524
+ /**
525
+ * GET /companies/{company_id}/signals
526
+ * Get Company Signals
527
+ * tier: read · scope: companies:read
528
+ */
529
+ get_company_signals_companies__company_id__signals_get: {
530
+ input: {
531
+ path: {
532
+ /** Company id. */
533
+ company_id: number;
534
+ };
535
+ headers?: {
536
+ "X-Target-Org-Id"?: string | null;
537
+ };
538
+ };
539
+ output: ApiResponse_CrmRecordPayload_;
540
+ };
541
+ /**
542
+ * GET /companies/{company_id}/sites-visited
543
+ * Get Company Sites Visited
544
+ * tier: read · scope: companies:read
545
+ */
546
+ get_company_sites_visited_companies__company_id__sites_visited_get: {
547
+ input: {
548
+ path: {
549
+ /** Company business key. */
550
+ company_id: number;
551
+ };
552
+ query?: {
553
+ /** Lookback window. Bounded here rather than left open: the query is an unindexed analytics scan and an unbounded window is a cheap way to exhaust it. */
554
+ days?: number;
555
+ };
556
+ headers?: {
557
+ "X-Target-Org-Id"?: string | null;
558
+ };
559
+ };
560
+ output: ApiResponse_CrmRecordPayload_;
561
+ };
562
+ /**
563
+ * GET /companies/{company_id}/synthesis-readiness
564
+ * Get Company Synthesis Readiness
565
+ * tier: read · scope: companies:read
566
+ */
567
+ get_company_synthesis_readiness_companies__company_id__synthesis_readiness_get: {
568
+ input: {
569
+ path: {
570
+ /** Company id. */
571
+ company_id: string;
572
+ };
573
+ headers?: {
574
+ "X-Target-Org-Id"?: string | null;
575
+ };
576
+ };
577
+ output: ApiResponse_CrmRecordPayload_;
578
+ };
579
+ /**
580
+ * GET /companies/{company_id}/workflow-status
581
+ * Get Company Workflow Status
582
+ * tier: read · scope: companies:read
583
+ */
584
+ get_company_workflow_status_companies__company_id__workflow_status_get: {
585
+ input: {
586
+ path: {
587
+ /** Company id. */
588
+ company_id: string;
589
+ };
590
+ query?: {
591
+ /** Also list the documents each workflow produced. */
592
+ include_documents?: boolean;
593
+ };
594
+ headers?: {
595
+ "X-Target-Org-Id"?: string | null;
596
+ };
597
+ };
598
+ output: ApiResponse_CrmRecordPayload_;
599
+ };
600
+ /**
601
+ * POST /companies/import
602
+ * Import Companies
603
+ * tier: billable · scope: enrichment:run
604
+ */
605
+ import_companies_companies_import_post: {
606
+ input: {
607
+ headers?: {
608
+ "X-Target-Org-Id"?: string | null;
609
+ };
610
+ body: ImportCompaniesRequest;
611
+ };
612
+ output: ApiResponse_CrmRecordPayload_;
613
+ };
614
+ /**
615
+ * GET /companies
616
+ * List Companies
617
+ * tier: read · scope: companies:read
618
+ */
619
+ list_companies_companies_get: {
620
+ input: {
621
+ query?: {
622
+ /** Page number (1-indexed) */
623
+ page?: number;
624
+ /** Items per page (max 200) */
625
+ limit?: number;
626
+ /** Filter by domain (exact match) */
627
+ domain?: string | null;
628
+ /** Filter by industry (partial match) */
629
+ industry?: string | null;
630
+ /** Filter by company name (partial match) */
631
+ name?: string | null;
632
+ /** Minimum employee count */
633
+ employee_count_min?: number | null;
634
+ /** Maximum employee count */
635
+ employee_count_max?: number | null;
636
+ /** Filter by country (exact match) */
637
+ country?: string | null;
638
+ /** Filter by state (exact match) */
639
+ state?: string | null;
640
+ /** Filter by city (partial match) */
641
+ city?: string | null;
642
+ /** Filter by company description (partial match) */
643
+ description?: string | null;
644
+ /** Minimum annual revenue */
645
+ revenue_min?: number | null;
646
+ /** Maximum annual revenue */
647
+ revenue_max?: number | null;
648
+ /** Minimum founding year */
649
+ founded_year_min?: number | null;
650
+ /** Maximum founding year */
651
+ founded_year_max?: number | null;
652
+ /** Minimum LinkedIn followers */
653
+ linkedin_followers_min?: number | null;
654
+ /** Maximum LinkedIn followers */
655
+ linkedin_followers_max?: number | null;
656
+ /** When true, each company includes a `custom_fields` object of custom column values keyed by column slug. Default false keeps the legacy response shape and adds no extra query. */
657
+ include_custom_fields?: boolean;
658
+ };
659
+ headers?: {
660
+ "X-Target-Org-Id"?: string | null;
661
+ };
662
+ };
663
+ output: ApiResponse_list_CompanyListItem__;
664
+ };
665
+ /**
666
+ * GET /companies/enriched
667
+ * List Companies Enriched
668
+ * tier: read · scope: companies:read
669
+ */
670
+ list_companies_enriched_companies_enriched_get: {
671
+ input: {
672
+ query?: {
673
+ /** Rows to skip. */
674
+ skip?: number;
675
+ /** Rows to return. The app defaults this to 10000 - the entire roster in one response. Defaulted to 100 here; raise it deliberately. */
676
+ limit?: number;
677
+ /** Substring match on name or domain. */
678
+ search?: string | null;
679
+ /** Filter by record status, e.g. `prospect`. */
680
+ status?: string | null;
681
+ /** Filter by website status. */
682
+ website_status?: string | null;
683
+ };
684
+ headers?: {
685
+ "X-Target-Org-Id"?: string | null;
686
+ };
687
+ };
688
+ output: ApiResponse_CrmCollectionPayload_;
689
+ };
690
+ /**
691
+ * GET /companies/columns
692
+ * List Company Columns
693
+ * tier: read · scope: companies:read
694
+ */
695
+ list_company_columns_companies_columns_get: {
696
+ input: {
697
+ query?: {
698
+ /** Optional list ID. When provided, list-specific dynamic columns are included alongside global ones. */
699
+ list_id?: number | null;
700
+ };
701
+ headers?: {
702
+ "X-Target-Org-Id"?: string | null;
703
+ };
704
+ };
705
+ output: ApiResponse_list_Column__;
706
+ };
707
+ /**
708
+ * GET /companies/{company_id}/documents
709
+ * List Company Documents
710
+ * tier: read · scope: companies:read
711
+ */
712
+ list_company_documents_companies__company_id__documents_get: {
713
+ input: {
714
+ path: {
715
+ /** Company id. */
716
+ company_id: string;
717
+ };
718
+ query?: {
719
+ /** Only documents in this folder. */
720
+ folder?: string | null;
721
+ };
722
+ headers?: {
723
+ "X-Target-Org-Id"?: string | null;
724
+ };
725
+ };
726
+ output: ApiResponse_CrmCollectionPayload_;
727
+ };
728
+ /**
729
+ * GET /companies/{company_id}/people
730
+ * List Company People
731
+ * tier: read · scope: companies:read
732
+ */
733
+ list_company_people_companies__company_id__people_get: {
734
+ input: {
735
+ path: {
736
+ /** Company id. */
737
+ company_id: string;
738
+ };
739
+ headers?: {
740
+ "X-Target-Org-Id"?: string | null;
741
+ };
742
+ };
743
+ output: ApiResponse_CrmCollectionPayload_;
744
+ };
745
+ /**
746
+ * GET /companies/{company_id}/tasks
747
+ * List Company Tasks
748
+ * tier: read · scope: companies:read
749
+ */
750
+ list_company_tasks_companies__company_id__tasks_get: {
751
+ input: {
752
+ path: {
753
+ /** Company id. */
754
+ company_id: number;
755
+ };
756
+ query?: {
757
+ /** Only tasks in this status. */
758
+ task_status?: string | null;
759
+ };
760
+ headers?: {
761
+ "X-Target-Org-Id"?: string | null;
762
+ };
763
+ };
764
+ output: ApiResponse_CrmCollectionPayload_;
765
+ };
766
+ /**
767
+ * GET /companies/contacts
768
+ * List Contacts Across Companies
769
+ * tier: read · scope: companies:read
770
+ */
771
+ list_contacts_across_companies_companies_contacts_get: {
772
+ input: {
773
+ query?: {
774
+ skip?: number;
775
+ /** The app defaults this to 10000; 100 here. */
776
+ limit?: number;
777
+ /** Substring match on name or email. */
778
+ search?: string | null;
779
+ /** Filter by job department. */
780
+ department?: string | null;
781
+ /** Filter by buying-committee role, e.g. `decision_maker`. */
782
+ buying_role?: string | null;
783
+ /** Only contacts attached to an open deal. */
784
+ in_pipeline?: boolean;
785
+ /** Filter by contact owner. */
786
+ owner_id?: string | null;
787
+ /** name | title | company_name | department | email | updated_at */
788
+ sort_by?: string;
789
+ /** asc | desc */
790
+ sort_order?: string;
791
+ };
792
+ headers?: {
793
+ "X-Target-Org-Id"?: string | null;
794
+ };
795
+ };
796
+ output: ApiResponse_CrmCollectionPayload_;
797
+ };
798
+ /**
799
+ * POST /companies/{company_id}/merge
800
+ * Merge Company
801
+ * tier: destructive · scope: companies:delete
802
+ */
803
+ merge_company_companies__company_id__merge_post: {
804
+ input: {
805
+ path: {
806
+ /** The company that SURVIVES the merge. */
807
+ company_id: number;
808
+ };
809
+ headers?: {
810
+ "X-Target-Org-Id"?: string | null;
811
+ };
812
+ body: MergeRecordRequest;
813
+ };
814
+ output: ApiResponse_CrmRecordPayload_;
815
+ };
816
+ /**
817
+ * POST /companies/merge-filtered
818
+ * Merge Filtered Companies
819
+ * tier: write · scope: companies:write
820
+ */
821
+ merge_filtered_companies_companies_merge_filtered_post: {
822
+ input: {
823
+ query?: {
824
+ /** Optional per-column filter JSON. */
825
+ filterModel?: string | null;
826
+ /** Optional sort JSON. */
827
+ sortModel?: string | null;
828
+ };
829
+ headers?: {
830
+ "X-Target-Org-Id"?: string | null;
831
+ };
832
+ body: MergeFilteredRequest;
833
+ };
834
+ output: ApiResponse_CrmRecordPayload_;
835
+ };
836
+ /**
837
+ * GET /companies/{company_id}/merge/preview
838
+ * Preview Company Merge
839
+ * tier: read · scope: companies:read
840
+ */
841
+ preview_company_merge_companies__company_id__merge_preview_get: {
842
+ input: {
843
+ path: {
844
+ /** The company that SURVIVES the merge. */
845
+ company_id: number;
846
+ };
847
+ query: {
848
+ /** The company that would be merged AWAY. */
849
+ secondary: number;
850
+ };
851
+ headers?: {
852
+ "X-Target-Org-Id"?: string | null;
853
+ };
854
+ };
855
+ output: ApiResponse_CrmRecordPayload_;
856
+ };
857
+ /**
858
+ * POST /companies/{company_id}/billing-prefill/refresh
859
+ * Refresh Company Billing Prefill
860
+ * tier: write · scope: companies:write
861
+ */
862
+ refresh_company_billing_prefill_companies__company_id__billing_prefill_refresh_post: {
863
+ input: {
864
+ path: {
865
+ /** Company id. */
866
+ company_id: string;
867
+ };
868
+ headers?: {
869
+ "X-Target-Org-Id"?: string | null;
870
+ };
871
+ };
872
+ output: ApiResponse_CrmRecordPayload_;
873
+ };
874
+ /**
875
+ * POST /companies/{company_id}/documents/types/{doc_type}/regenerate
876
+ * Regenerate Company Document
877
+ * tier: billable · scope: enrichment:run
878
+ */
879
+ regenerate_company_document_companies__company_id__documents_types__doc_type__regenerate_post: {
880
+ input: {
881
+ path: {
882
+ /** Company id. */
883
+ company_id: string;
884
+ /** Document type. */
885
+ doc_type: string;
886
+ };
887
+ headers?: {
888
+ "X-Target-Org-Id"?: string | null;
889
+ };
890
+ };
891
+ output: ApiResponse_CrmRecordPayload_;
892
+ };
893
+ /**
894
+ * DELETE /companies/{company_id}/contacts/{contact_id}
895
+ * Remove Company Contact
896
+ * tier: destructive · scope: companies:delete
897
+ */
898
+ remove_company_contact_companies__company_id__contacts__contact_id__delete: {
899
+ input: {
900
+ path: {
901
+ /** Company id. */
902
+ company_id: string;
903
+ /** Contact to unlink from the company. */
904
+ contact_id: string;
905
+ };
906
+ headers?: {
907
+ "X-Target-Org-Id"?: string | null;
908
+ };
909
+ };
910
+ output: ApiResponse_CrmRecordPayload_;
911
+ };
912
+ /**
913
+ * POST /companies/{company_id}/retry-intelligence
914
+ * Retry Company Intelligence
915
+ * tier: billable · scope: enrichment:run
916
+ */
917
+ retry_company_intelligence_companies__company_id__retry_intelligence_post: {
918
+ input: {
919
+ path: {
920
+ /** Company id. */
921
+ company_id: string;
922
+ };
923
+ headers?: {
924
+ "X-Target-Org-Id"?: string | null;
925
+ };
926
+ body?: IntelligenceRetryRequest | null;
927
+ };
928
+ output: ApiResponse_CrmRecordPayload_;
929
+ };
930
+ /**
931
+ * POST /companies/{company_id}/retry-synthesis
932
+ * Retry Company Synthesis
933
+ * tier: billable · scope: enrichment:run
934
+ */
935
+ retry_company_synthesis_companies__company_id__retry_synthesis_post: {
936
+ input: {
937
+ path: {
938
+ /** Company id. */
939
+ company_id: string;
940
+ };
941
+ headers?: {
942
+ "X-Target-Org-Id"?: string | null;
943
+ };
944
+ };
945
+ output: ApiResponse_CrmRecordPayload_;
946
+ };
947
+ /**
948
+ * POST /companies/{company_id}/documents/from-skill
949
+ * Save Skill Result To Company
950
+ * tier: write · scope: companies:write
951
+ */
952
+ save_skill_result_to_company_companies__company_id__documents_from_skill_post: {
953
+ input: {
954
+ path: {
955
+ /** Company id. */
956
+ company_id: string;
957
+ };
958
+ headers?: {
959
+ "X-Target-Org-Id"?: string | null;
960
+ };
961
+ body: SaveSkillResultRequest;
962
+ };
963
+ output: ApiResponse_CrmRecordPayload_;
964
+ };
965
+ /**
966
+ * POST /companies/{company_id}/workflows/{workflow_type}/start
967
+ * Start Company Workflow
968
+ * tier: billable · scope: enrichment:run
969
+ */
970
+ start_company_workflow_companies__company_id__workflows__workflow_type__start_post: {
971
+ input: {
972
+ path: {
973
+ /** Company id. */
974
+ company_id: string;
975
+ /** Which workflow to run. */
976
+ workflow_type: CompanyWorkflowType;
977
+ };
978
+ headers?: {
979
+ "X-Target-Org-Id"?: string | null;
980
+ };
981
+ };
982
+ output: ApiResponse_CrmRecordPayload_;
983
+ };
984
+ /**
985
+ * PATCH /companies/{company_id}
986
+ * Update Company
987
+ * tier: write · scope: companies:write
988
+ */
989
+ update_company_companies__company_id__patch: {
990
+ input: {
991
+ path: {
992
+ /** Company ID */
993
+ company_id: number;
994
+ };
995
+ headers?: {
996
+ "X-Target-Org-Id"?: string | null;
997
+ };
998
+ body: CompanyUpdateRequest;
999
+ };
1000
+ output: ApiResponse_dict_;
1001
+ };
1002
+ }
1003
+
1004
+ // 43 schemas referenced above (the same as G8Contract.<Name>).
1005
+
1006
+ export interface ApiResponse_CompanyCreateResponse_ {
1007
+ data: CompanyCreateResponse;
1008
+ pagination?: PaginationMeta | null;
1009
+ }
1010
+
1011
+ export interface ApiResponse_CompanyResponse_ {
1012
+ data: CompanyResponse;
1013
+ pagination?: PaginationMeta | null;
1014
+ }
1015
+
1016
+ export interface ApiResponse_CreateCompanyColumnResponse_ {
1017
+ data: CreateCompanyColumnResponse;
1018
+ pagination?: PaginationMeta | null;
1019
+ }
1020
+
1021
+ export interface ApiResponse_CrmCollectionPayload_ {
1022
+ data: CrmCollectionPayload;
1023
+ pagination?: PaginationMeta | null;
1024
+ }
1025
+
1026
+ export interface ApiResponse_CrmRecordPayload_ {
1027
+ data: CrmRecordPayload;
1028
+ pagination?: PaginationMeta | null;
1029
+ }
1030
+
1031
+ export interface ApiResponse_dict_ {
1032
+ data: Record<string, unknown>;
1033
+ pagination?: PaginationMeta | null;
1034
+ }
1035
+
1036
+ export interface ApiResponse_list_Column__ {
1037
+ data: Array<Column>;
1038
+ pagination?: PaginationMeta | null;
1039
+ }
1040
+
1041
+ export interface ApiResponse_list_CompanyContactItem__ {
1042
+ data: Array<CompanyContactItem>;
1043
+ pagination?: PaginationMeta | null;
1044
+ }
1045
+
1046
+ export interface ApiResponse_list_CompanyListItem__ {
1047
+ data: Array<CompanyListItem>;
1048
+ pagination?: PaginationMeta | null;
1049
+ }
1050
+
1051
+ /**
1052
+ * Set the owner on every record matching a selection.
1053
+ *
1054
+ * A null `owner_id` UNASSIGNS the matching records rather than leaving them
1055
+ * alone, so an omitted owner is a destructive instruction, not a no-op.
1056
+ */
1057
+ export interface AssignOwnerMatchingRequest {
1058
+ /** Per-column filters. */
1059
+ filterModel?: Record<string, unknown>;
1060
+ /** Restrict the selection to this list. */
1061
+ list_id?: number | null;
1062
+ /** Owner to assign. Null clears the owner on every match. */
1063
+ owner_id?: string | null;
1064
+ /** Advanced AND/OR filter tree. */
1065
+ segmentFilter?: SegmentFilterGroup | null;
1066
+ }
1067
+
1068
+ /**
1069
+ * Column entity representing a database column definition.
1070
+ * Used to describe table column metadata for MashupContact and other entities.
1071
+ */
1072
+ export interface Column {
1073
+ data_type?: ColumnType;
1074
+ id?: number | null;
1075
+ /** Automatically computed: True if object_id is None/empty, False otherwise. */
1076
+ is_global: boolean;
1077
+ name?: string | null;
1078
+ object_id?: string | null;
1079
+ source?: ColumnSource;
1080
+ title: string;
1081
+ }
1082
+
1083
+ /**
1084
+ * Which entity a field in the contact field list belongs to.
1085
+ *
1086
+ * The ``GET /contacts/columns`` response deliberately combines fields from
1087
+ * three provenances into one list (issue #21184): the person record, their
1088
+ * employer's company record, and user-created custom columns. Consumers
1089
+ * (form-mapping UI, AI-agent field listing, CSV import) need to tell them
1090
+ * apart — a company field like ``COMPANY_REVENUE`` describes the employer,
1091
+ * not the contact.
1092
+ *
1093
+ * - ``contact``: a field on the person record (``MashupContact.*``) — the default.
1094
+ * - ``company``: a field on the contact's employer (``MashupCompany.*``),
1095
+ * surfaced so contacts can be mapped/filtered by company attributes.
1096
+ * - ``custom``: a user-created dynamic column (global or list-scoped).
1097
+ */
1098
+ export type ColumnSource = "contact" | "company" | "custom";
1099
+
1100
+ /**
1101
+ * User-selectable dynamic-column data types.
1102
+ *
1103
+ * Every member must have a physical type in the repos' pg_type_map
1104
+ * (contacts/companies CDP repos + enrichment DynamicColumnRepository:
1105
+ * int→INTEGER, numeric→NUMERIC, text→TEXT, boolean→BOOLEAN) and belong to
1106
+ * the user-owned family in lists/usecases/dynamic_column_write_contract.py —
1107
+ * both already list these four. Write paths coerce values per type via
1108
+ * shared.infrustructure.db.cdp.dynamic_column_values.coerce_dynamic_value.
1109
+ */
1110
+ export type ColumnType = "text" | "int" | "numeric" | "boolean";
1111
+
1112
+ /**
1113
+ * Request contract for the hiring-signal batch lookup.
1114
+ *
1115
+ * Field-for-field identical to the main-app model of the same name in
1116
+ * ``companies/interfaces/fastapi/router.py``. It is redefined here rather
1117
+ * than imported because that module imports
1118
+ * ``developer_api.dependencies.hybrid_auth``; importing it back would couple
1119
+ * the two app halves at import time. ``test_companies_open_jobs_api.py`` locks
1120
+ * the two models together so the duplication cannot silently drift.
1121
+ */
1122
+ export interface CompaniesOpenJobsRequest {
1123
+ /** CRM company IDs (mashup_companies.id) - NOT linkedin_company_id */
1124
+ company_ids: Array<number>;
1125
+ /** False = counts only (one CH query) */
1126
+ include_postings?: boolean;
1127
+ /** Roll subsidiary postings into the parent. Off by default: one row = one company. NOTE: when true, `jobs` expands to child companies but `open_jobs` stays parent-only, so len(jobs) can exceed open_jobs. */
1128
+ include_subsidiaries?: boolean;
1129
+ limit_per_company?: number;
1130
+ window_days?: number;
1131
+ }
1132
+
1133
+ /**
1134
+ * One contact in a company import.
1135
+ *
1136
+ * Contacts are grouped by email domain, so `email` decides which company a
1137
+ * row lands on - `company_name` only names a company that does not exist yet.
1138
+ */
1139
+ export interface CompanyContactImport {
1140
+ /** Company name, used only when the domain is unknown. */
1141
+ company_name?: string | null;
1142
+ /** Company owner. */
1143
+ company_owner?: string | null;
1144
+ /** Contact owner. */
1145
+ contact_owner?: string | null;
1146
+ /** Email address. Also the company-grouping key. */
1147
+ email: string;
1148
+ /** First name. */
1149
+ first_name: string;
1150
+ /** Last name. */
1151
+ last_name: string;
1152
+ /** LinkedIn profile URL. */
1153
+ linkedin_url?: string | null;
1154
+ /** Phone number. */
1155
+ phone?: string | null;
1156
+ /** Buying-committee role: decision_maker | influencer | champion | end_user | blocker | coach. */
1157
+ role?: string | null;
1158
+ /** Job title. */
1159
+ title?: string | null;
1160
+ }
1161
+
1162
+ /** Contact summary within a company. */
1163
+ export interface CompanyContactItem {
1164
+ city?: string | null;
1165
+ country?: string | null;
1166
+ direct_phone?: string | null;
1167
+ first_name?: string | null;
1168
+ full_name?: string | null;
1169
+ id: number;
1170
+ job_title?: string | null;
1171
+ last_name?: string | null;
1172
+ linkedin_url?: string | null;
1173
+ seniority_level?: string | null;
1174
+ state?: string | null;
1175
+ work_email?: string | null;
1176
+ }
1177
+
1178
+ /**
1179
+ * Request body for creating a company.
1180
+ *
1181
+ * ``domain`` is required — it drives dedup (an existing company with the same
1182
+ * domain is reused, not duplicated) and the Deals company picker. Every other
1183
+ * field is optional.
1184
+ */
1185
+ export interface CompanyCreateRequest {
1186
+ address?: string | null;
1187
+ city?: string | null;
1188
+ country?: string | null;
1189
+ /** Company domain, e.g. acme.com (required) */
1190
+ domain: string;
1191
+ employee_count?: string | null;
1192
+ industry?: string | null;
1193
+ linkedin_url?: string | null;
1194
+ /** Optional list to add the company to after creation */
1195
+ list_id?: number | null;
1196
+ name?: string | null;
1197
+ phone?: string | null;
1198
+ state?: string | null;
1199
+ website?: string | null;
1200
+ zip?: string | null;
1201
+ }
1202
+
1203
+ export interface CompanyCreateResponse {
1204
+ company_id?: number | null;
1205
+ merged?: boolean;
1206
+ status: string;
1207
+ }
1208
+
1209
+ /** Lighter company representation for list endpoints. */
1210
+ export interface CompanyListItem {
1211
+ city?: string | null;
1212
+ country?: string | null;
1213
+ custom_fields?: (Record<string, string | null>) | null;
1214
+ description?: string | null;
1215
+ domain?: string | null;
1216
+ employee_count?: string | null;
1217
+ founded_year?: number | null;
1218
+ id?: number | null;
1219
+ industry?: string | null;
1220
+ linkedin_followers?: string | null;
1221
+ linkedin_url?: string | null;
1222
+ logo_url?: string | null;
1223
+ name?: string | null;
1224
+ owner_id?: string | null;
1225
+ owner_name?: string | null;
1226
+ revenue?: string | null;
1227
+ state?: string | null;
1228
+ website?: string | null;
1229
+ }
1230
+
1231
+ export interface CompanyResponse {
1232
+ address?: string | null;
1233
+ city?: string | null;
1234
+ contact_count?: number | null;
1235
+ country?: string | null;
1236
+ created_at?: string | null;
1237
+ crunchbase_url?: string | null;
1238
+ custom_fields?: (Record<string, string | null>) | null;
1239
+ description?: string | null;
1240
+ domain?: string | null;
1241
+ employee_count?: string | null;
1242
+ facebook_url?: string | null;
1243
+ founded_year?: number | null;
1244
+ id: number;
1245
+ industry?: string | null;
1246
+ industry_group?: string | null;
1247
+ linkedin_followers?: string | null;
1248
+ linkedin_url?: string | null;
1249
+ logo_url?: string | null;
1250
+ meta_data?: Record<string, unknown> | null;
1251
+ name?: string | null;
1252
+ phone?: string | null;
1253
+ revenue?: string | null;
1254
+ state?: string | null;
1255
+ twitter_url?: string | null;
1256
+ updated_at?: string | null;
1257
+ website?: string | null;
1258
+ zip?: string | null;
1259
+ }
1260
+
1261
+ /** Mirrors `companies.interfaces.fastapi.router.CompanyTaskCreateRequest`. */
1262
+ export interface CompanyTaskCreateRequest {
1263
+ /** Assignee user id. */
1264
+ assignee_id?: string | null;
1265
+ /** Assignee display name. */
1266
+ assignee_name?: string | null;
1267
+ /** Task body. */
1268
+ description?: string | null;
1269
+ /** ISO-8601 due date. */
1270
+ due_date?: string | null;
1271
+ /** Priority, higher is more urgent. */
1272
+ priority?: number | null;
1273
+ /** Up to 20 labels. */
1274
+ tags?: Array<string> | null;
1275
+ /** Task type, e.g. `call`. */
1276
+ task_type?: string | null;
1277
+ /** Task title. */
1278
+ title: string;
1279
+ }
1280
+
1281
+ /** Request body for updating a company. All fields optional (partial update). */
1282
+ export interface CompanyUpdateRequest {
1283
+ address?: string | null;
1284
+ city?: string | null;
1285
+ country?: string | null;
1286
+ domain?: string | null;
1287
+ employee_count?: string | null;
1288
+ industry?: string | null;
1289
+ linkedin_url?: string | null;
1290
+ name?: string | null;
1291
+ phone?: string | null;
1292
+ state?: string | null;
1293
+ website?: string | null;
1294
+ zip?: string | null;
1295
+ }
1296
+
1297
+ /** Types of workflows that can be run on a company */
1298
+ export type CompanyWorkflowType = "company_intelligence" | "stakeholder_mapping" | "deal_strategy" | "competitive_positioning";
1299
+
1300
+ /**
1301
+ * Request body for `POST /companies/columns/create`.
1302
+ *
1303
+ * Mirrors the shared `CreateColumnRequest` shape (`title`, `data_type`,
1304
+ * `list_id`, `created_by`) plus an OPTIONAL `enrichment` block that, when
1305
+ * supplied, provisions a companion waterfall pipeline in the same
1306
+ * request — so the new column is immediately runnable via
1307
+ * `POST /enrichment/waterfall/enrich`.
1308
+ *
1309
+ * Without the `enrichment` block the column is created, but it has no
1310
+ * enrichment plan; the UI "Enrich" button (and `g8_enrich_contacts` in
1311
+ * waterfall mode) will return 422 (`waterfall_config_missing`) until a
1312
+ * pipeline is provisioned separately via
1313
+ * `POST /enrichment/waterfall/configs`.
1314
+ *
1315
+ * Backwards compatible: callers that previously POSTed only `title` /
1316
+ * `data_type` / `list_id` / `created_by` continue to work unchanged.
1317
+ */
1318
+ export interface CreateCompanyColumnRequest {
1319
+ /** Email of the user creating the column (for audit). */
1320
+ created_by: string;
1321
+ /** Column data type. Currently only 'text' is supported. */
1322
+ data_type?: ColumnType;
1323
+ /** STRONGLY RECOMMENDED. Optional waterfall enrichment block. When supplied, a companion `enrichment_configs` row is created alongside the column so the UI 'Enrich' button works immediately. Without it the column exists but isn't enrichable until a pipeline is configured via POST /enrichment/waterfall/configs. */
1324
+ enrichment?: CreateFieldEnrichmentInput | null;
1325
+ /** If set, the column is list-scoped (only visible on that list). Required when `enrichment` is supplied — waterfall pipelines are list-scoped. */
1326
+ list_id?: number | null;
1327
+ /** Column title shown in the UI (e.g. 'Tier') */
1328
+ title: string;
1329
+ }
1330
+
1331
+ /**
1332
+ * Response shape for `POST /companies/columns/create`.
1333
+ *
1334
+ * Mirrors the `Column` entity fields verbatim so existing callers reading
1335
+ * `data.id` / `data.title` / `data.name` / `data.is_global` etc. keep
1336
+ * working without code changes. Adds one new optional `enrichment` field
1337
+ * that is populated when the request included an `enrichment` block.
1338
+ */
1339
+ export interface CreateCompanyColumnResponse {
1340
+ data_type?: ColumnType;
1341
+ /** Populated when the request included an `enrichment` block. Use `enrichment.column_id` for subsequent POST /enrichment/waterfall/enrich calls. */
1342
+ enrichment?: CreateFieldEnrichmentResponse | null;
1343
+ id?: number | null;
1344
+ /** Computed: True when object_id is null/empty (global column). */
1345
+ is_global?: boolean;
1346
+ name?: string | null;
1347
+ object_id?: string | null;
1348
+ title: string;
1349
+ }
1350
+
1351
+ /**
1352
+ * Optional enrichment-pipeline block attached at column-create time.
1353
+ *
1354
+ * When supplied, `POST /fields` creates a companion `enrichment_configs`
1355
+ * row in the same request so the new column is immediately runnable via
1356
+ * `POST /enrichment/waterfall/enrich`. Without this block the column
1357
+ * exists but has no enrichment plan — calling /waterfall/enrich on it
1358
+ * returns 422 (`waterfall_config_missing`).
1359
+ *
1360
+ * Currently only `type='waterfall'` is supported; AI / formula
1361
+ * enrichment will follow once the rest of the agent surface lands.
1362
+ */
1363
+ export interface CreateFieldEnrichmentInput {
1364
+ /** Optional post-enrichment email verification config. */
1365
+ email_verification?: EmailVerificationInput | null;
1366
+ /** Target field identifier. Defaults to the new column's slug. */
1367
+ field_to_enrich?: string | null;
1368
+ /** Pipeline name. Defaults to `<column title> Enrichment` if omitted. */
1369
+ name?: string | null;
1370
+ /** Ordered list of provider names. Without `target_field`, server maps each to its default email-finder action (legacy). With `target_field`, filters the column template to these providers (correct per-field action preserved). Mutually exclusive with `steps`. */
1371
+ providers?: Array<string> | null;
1372
+ /** If true, skip rows where the target field is already populated. */
1373
+ skip_existing_values?: boolean;
1374
+ /** Full caller-supplied step list. Persisted verbatim. Mutually exclusive with `providers`. */
1375
+ steps?: Array<WaterfallStepInput> | null;
1376
+ /** Kind of data this column holds — CONTACT_DIRECT_PHONE, CONTACT_MOBILE_PHONE, CONTACT_WORK_EMAIL, CONTACT_LINKEDIN_URL, COMPANY_PHONE, ... or a friendly synonym ('phone', 'mobile', 'email', 'linkedin'). When set, the pipeline is built from the server's per-column TEMPLATE so each provider runs its CORRECT action for that data kind (e.g. leadmagic `mobile_finder` for a phone, NOT `email_finder`) — the same actions the web UI's 'Add column -> Waterfall' picks. Combine with `providers[]` to keep only those providers from the template. Mutually exclusive with `steps`. When omitted, the legacy `providers[]` email-finder shortcut is unchanged. */
1377
+ target_field?: string | null;
1378
+ /** Pipeline kind. Only 'waterfall' is supported today. */
1379
+ type?: string;
1380
+ }
1381
+
1382
+ /** Echo of the companion enrichment config created by `enrichment` block. */
1383
+ export interface CreateFieldEnrichmentResponse {
1384
+ /** column_id slug to pass to /enrichment/waterfall/enrich */
1385
+ column_id: string;
1386
+ config_id: string;
1387
+ email_verification?: Record<string, unknown> | null;
1388
+ name: string;
1389
+ providers?: Array<string>;
1390
+ type: string;
1391
+ }
1392
+
1393
+ /** An open envelope for a LIST result, so a bare list keeps its shape. */
1394
+ export interface CrmCollectionPayload {
1395
+ items?: Array<unknown>;
1396
+ [key: string]: unknown;
1397
+ }
1398
+
1399
+ /**
1400
+ * An open envelope for one record, one dashboard or one job receipt.
1401
+ *
1402
+ * Open because most of these reads are COMPUTED shapes - an engagement
1403
+ * summary, a next-best-step, an intelligence status - that grow with the
1404
+ * product, and dropping a field from an advisory read makes it say "nothing
1405
+ * to report" rather than "we did not tell you".
1406
+ */
1407
+ export type CrmRecordPayload = Record<string, unknown>;
1408
+
1409
+ /**
1410
+ * Email verification config attached to a waterfall pipeline.
1411
+ *
1412
+ * Mirrors the canonical `EmailVerificationConfigDto` in
1413
+ * `enrichment/interfaces/fastapi/waterfall_dtos.py` so the dev-API and the
1414
+ * UI persist an identical settings shape (the CF worker reads `settings.
1415
+ * email_verification.*` regardless of which surface saved the pipeline).
1416
+ */
1417
+ export interface EmailVerificationInput {
1418
+ /** Treat catch-all responses as valid (domains that accept any address). */
1419
+ accept_catchall?: boolean;
1420
+ /** Enable post-enrichment email verification */
1421
+ enabled?: boolean;
1422
+ /** Verification provider. Charges credits when use_system_credentials=True. */
1423
+ provider?: "zerobounce" | "hunter" | "icypeas" | "leadmagic";
1424
+ /** Use graph8-managed API keys (charges credits). False = use org's BYOK keys. */
1425
+ use_system_credentials?: boolean;
1426
+ /** Verification statuses to accept as valid. Typical: ['valid'] or ['valid','catch-all']. */
1427
+ valid_statuses?: Array<string>;
1428
+ }
1429
+
1430
+ /**
1431
+ * One structured filter condition.
1432
+ *
1433
+ * Mirrors `shared.interfaces.fastapi.dtos.DtoCondition`.
1434
+ */
1435
+ export interface FilterCondition {
1436
+ /** Field name to apply the condition to. */
1437
+ field: string;
1438
+ /** Operator, e.g. `=`, `in`, `like`. */
1439
+ operator?: string;
1440
+ /** Value to compare against. */
1441
+ value?: unknown;
1442
+ /** Secondary value, for range operators. */
1443
+ value_to?: unknown | null;
1444
+ }
1445
+
1446
+ /**
1447
+ * Create or update companies from a batch of contacts.
1448
+ *
1449
+ * Grouping is by email domain: a new domain creates a company, a known one
1450
+ * is updated in place. There is no separate "company" payload.
1451
+ */
1452
+ export interface ImportCompaniesRequest {
1453
+ /** Contacts to import. */
1454
+ contacts: Array<CompanyContactImport>;
1455
+ /** Where the records came from, recorded on the import. */
1456
+ source: string;
1457
+ }
1458
+
1459
+ /**
1460
+ * Re-run company intelligence generation. SPENDS CREDITS.
1461
+ *
1462
+ * Omitting `doc_types` regenerates the DEFAULT set rather than nothing, so
1463
+ * an empty body is the expensive option, not the cheap one.
1464
+ */
1465
+ export interface IntelligenceRetryRequest {
1466
+ /** Document types to generate. Omit for the default set. */
1467
+ doc_types?: Array<string> | null;
1468
+ }
1469
+
1470
+ /** Which side of a merge wins one field. */
1471
+ export interface MergeFieldOverride {
1472
+ /** Field name, e.g. `CONTACT_JOB_TITLE`. */
1473
+ field: string;
1474
+ /** Which record's value to keep. */
1475
+ winner: "primary" | "secondary";
1476
+ }
1477
+
1478
+ /**
1479
+ * Add every record matching a filter into a target list.
1480
+ *
1481
+ * Mirrors `MergeFilteredContactsRequest` / `MergeFilteredCompaniesRequest`,
1482
+ * which are field-identical. Despite the name this MERGES A SELECTION INTO A
1483
+ * LIST - it does not merge duplicate records together. `/duplicates` is the
1484
+ * surface that does that.
1485
+ *
1486
+ * On a 409 the call is telling you some records need a decision; re-send
1487
+ * with `conflict_resolution` set.
1488
+ */
1489
+ export interface MergeFilteredRequest {
1490
+ /** Required when retrying after a 409. `add_all` takes every warned record, `skip_all` takes none of them, `custom` takes the ids in `include_warned_ids`. Blocked records are excluded either way. */
1491
+ conflict_resolution?: ("add_all" | "skip_all" | "custom") | null;
1492
+ /** Source-column to target-column mapping for custom columns. */
1493
+ dynamic_column_mapping?: Record<string, string>;
1494
+ /** Conditions selecting the source records. */
1495
+ filter?: Array<FilterCondition>;
1496
+ /** With `conflict_resolution=custom`, the warned ids to include. */
1497
+ include_warned_ids?: Array<string> | null;
1498
+ /** Advanced AND/OR filter tree. */
1499
+ segmentFilter?: SegmentFilterGroup | null;
1500
+ /** List the matching records are added to. */
1501
+ target_list_id: number;
1502
+ }
1503
+
1504
+ /**
1505
+ * Merge `secondary_id` INTO the record in the path. The secondary stops existing.
1506
+ *
1507
+ * Mirrors `_MergeContactRequest` / `_MergeCompanyRequest`, which are identical.
1508
+ */
1509
+ export interface MergeRecordRequest {
1510
+ /** The bulk criterion, when `trigger` is `bulk_criterion`. */
1511
+ bulk_criterion?: string | null;
1512
+ /** Decide individual fields instead of the app's rules. */
1513
+ field_overrides?: Array<MergeFieldOverride>;
1514
+ /** The record merged AWAY. */
1515
+ secondary_id: number;
1516
+ /** The duplicate suggestion this merge acts on, if any. */
1517
+ suggestion_id?: string | null;
1518
+ /** What prompted the merge. Recorded on the audit row. */
1519
+ trigger?: "manual" | "bulk_criterion";
1520
+ }
1521
+
1522
+ export interface PaginationMeta {
1523
+ /** Whether there are more pages */
1524
+ has_next: boolean;
1525
+ /** Items per page */
1526
+ limit: number;
1527
+ /** 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. */
1528
+ next_cursor?: string | null;
1529
+ /** Current page number (1-indexed) */
1530
+ page: number;
1531
+ /** Total number of items */
1532
+ total: number;
1533
+ }
1534
+
1535
+ /** Attach the output of a skill run to a record as a document. */
1536
+ export interface SaveSkillResultRequest {
1537
+ /** Action within that execution. */
1538
+ action_name: string;
1539
+ /** Document body to store. */
1540
+ content: string;
1541
+ /** The skill execution that produced the content. */
1542
+ execution_id: string;
1543
+ }
1544
+
1545
+ /**
1546
+ * An AND/OR group of leaves and nested groups, at most three groups deep.
1547
+ *
1548
+ * Mirrors `SegmentFilterGroup` in `contacts.domain.value_objects.ag_grid_models`.
1549
+ * `op` is closed because the app REFUSES an unrecognised connector rather
1550
+ * than defaulting to AND - defaulting would silently return a different
1551
+ * result set, and on a destructive route that is a different set of records
1552
+ * acted on.
1553
+ *
1554
+ * FIXED DEPTH, NOT RECURSIVE. The app's model is self-referencing; the
1555
+ * published one deliberately is not, because a schema that reaches itself
1556
+ * through `$ref` sends the docs renderer into unbounded recursion. Three
1557
+ * group levels (this one, `SegmentFilterSubgroup`, `SegmentFilterInnerGroup`)
1558
+ * cover every filter the app's own builder produces; the app's larger depth
1559
+ * and leaf budget still applies and surfaces as a 422.
1560
+ */
1561
+ export interface SegmentFilterGroup {
1562
+ /** Nested groups and/or leaf conditions. */
1563
+ children?: Array<SegmentFilterSubgroup | SegmentFilterLeaf>;
1564
+ /** Connector for this group. Case-insensitive. */
1565
+ op: "AND" | "OR" | "and" | "or";
1566
+ }
1567
+
1568
+ /** The third and deepest group level: leaf conditions only. */
1569
+ export interface SegmentFilterInnerGroup {
1570
+ /** Leaf conditions. */
1571
+ children?: Array<SegmentFilterLeaf>;
1572
+ /** Connector for this group. Case-insensitive. */
1573
+ op: "AND" | "OR" | "and" | "or";
1574
+ }
1575
+
1576
+ /**
1577
+ * One field-level condition inside an advanced-filter tree.
1578
+ *
1579
+ * Mirrors `contacts.domain.value_objects.ag_grid_models.SegmentFilterLeaf`.
1580
+ * `op` is CLOSED here: the app compiles its UI vocabulary down to this
1581
+ * canonical set before sending, and an unrecognised operator reaching the
1582
+ * SQL builder is a 500 rather than a refusal naming the valid operators.
1583
+ */
1584
+ export interface SegmentFilterLeaf {
1585
+ /** Column to test, e.g. `CONTACT_JOB_TITLE`. */
1586
+ field: string;
1587
+ /** Comparison to apply. */
1588
+ op: "eq" | "neq" | "lt" | "lte" | "gt" | "gte" | "contains" | "icontains" | "starts_with" | "ends_with" | "in" | "not_in" | "between" | "is_null" | "is_not_null";
1589
+ /** Value to compare against. */
1590
+ value?: unknown | null;
1591
+ /** Upper bound. Only meaningful with `between`. */
1592
+ valueTo?: unknown | null;
1593
+ }
1594
+
1595
+ /** The second group level: leaves and/or innermost groups. */
1596
+ export interface SegmentFilterSubgroup {
1597
+ /** Innermost groups and/or leaf conditions. */
1598
+ children?: Array<SegmentFilterInnerGroup | SegmentFilterLeaf>;
1599
+ /** Connector for this group. Case-insensitive. */
1600
+ op: "AND" | "OR" | "and" | "or";
1601
+ }
1602
+
1603
+ /**
1604
+ * Single step in a caller-supplied waterfall sequence.
1605
+ *
1606
+ * Mirrors `WaterfallStepDto` in `enrichment/interfaces/fastapi/waterfall_dtos.py`.
1607
+ * Persisted verbatim into `enrichment_configs.config.steps[]` so the CF
1608
+ * worker can resolve provider, action and credentials the same way
1609
+ * UI-saved pipelines do.
1610
+ */
1611
+ export interface WaterfallStepInput {
1612
+ /** Provider action: lookup_person, find_email, enrich_person, ... */
1613
+ action: string;
1614
+ /** Human-readable label shown in UI. Auto-titled from `action` if omitted. */
1615
+ action_display_name?: string | null;
1616
+ confidence_threshold?: number;
1617
+ /** Provider-specific options (e.g. apollo `reveal_phone_numbers=true`). */
1618
+ config?: Record<string, unknown>;
1619
+ enabled?: boolean;
1620
+ /** Step identifier. Auto-generated (`step_<provider>_<uuid8>`) if omitted. */
1621
+ id?: string | null;
1622
+ /** Maps provider input names to graph8 column identifiers (CONTACT_*). */
1623
+ input_mapping?: Record<string, string>;
1624
+ /** True = use graph8-managed credentials + charge credits. False = use org BYOK. */
1625
+ is_system_provider?: boolean;
1626
+ max_retries?: number;
1627
+ /** 0-indexed execution order. */
1628
+ order?: number;
1629
+ /** Dotted path the worker writes into (e.g. 'contact.work_email'). */
1630
+ output_field?: string | null;
1631
+ /** Optional output field remap (deprecated — prefer `output_field`). */
1632
+ output_mapping?: Record<string, string>;
1633
+ /** Provider name: graph8, hunter, prospeo, dropcontact, apollo, ... */
1634
+ provider: string;
1635
+ stop_on_success?: boolean;
1636
+ }