@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,3207 @@
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.enrichment` (Enrichment): 114 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_enrichment_configuration_enrichment_configs__config_id__assignments_post">;
9
+ *
10
+ * Reference with examples: enrichment.md
11
+ */
12
+ /* eslint-disable */
13
+
14
+ /** `g8.api.enrichment.<member>` -> the operationId it calls. */
15
+ export interface EnrichmentMembers {
16
+ assignEnrichmentConfiguration: "assign_enrichment_configuration_enrichment_configs__config_id__assignments_post";
17
+ cancelEnrichmentJob: "cancel_enrichment_job_enrichment_jobs__job_id__cancel_post";
18
+ cancelListPipelineRun: "cancel_list_pipeline_run_enrichment_lists__list_id__pipelines__pipeline_id__cancel_post";
19
+ configureFindPeople: "configure_find_people_enrichment_find_people_configure_post";
20
+ createAutoEnrichmentConfig: "create_auto_enrichment_config_enrichment_auto_enrichment_configs_post";
21
+ createDefaultWaterfallConfig: "create_default_waterfall_config_enrichment_waterfall_configs_post";
22
+ createDynamicColumn: "create_dynamic_column_enrichment_columns_post";
23
+ createEnrichmentConfiguration: "create_enrichment_configuration_enrichment_configs_post";
24
+ createFormulaConfig: "create_formula_config_enrichment_formula_configs__column_id__post";
25
+ createFormulaTemplate: "create_formula_template_enrichment_formula_templates_post";
26
+ createListPipeline: "create_list_pipeline_enrichment_lists__list_id__pipelines_post";
27
+ createListPipelineFromTemplate: "create_list_pipeline_from_template_enrichment_lists__list_id__pipelines_from_template_post";
28
+ createRoutingRule: "create_routing_rule_enrichment_list_routing_rules_post";
29
+ deleteAiConfigByColumn: "delete_ai_config_by_column_enrichment_ai_configs__group_id__columns__column_id__delete";
30
+ deleteAiConfigByGroup: "delete_ai_config_by_group_enrichment_ai_configs__group_id__delete";
31
+ deleteAutoEnrichmentConfig: "delete_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__delete";
32
+ deleteEnrichmentConfig: "delete_enrichment_config_enrichment_configs__config_id__delete";
33
+ deleteFindPeopleConfig: "delete_find_people_config_enrichment_find_people__config_id__delete";
34
+ deleteFormulaConfig: "delete_formula_config_enrichment_formula_configs__column_id__delete";
35
+ deleteListPipeline: "delete_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__delete";
36
+ deleteRoutingRule: "delete_routing_rule_enrichment_list_routing_rules__rule_id__delete";
37
+ deleteWaterfallConfig: "delete_waterfall_config_enrichment_waterfall_configs__column_id__delete";
38
+ draftPipelineWithAi: "draft_pipeline_with_ai_enrichment_lists__list_id__pipelines_ai_draft_post";
39
+ estimateAllQualificationTemplates: "estimate_all_qualification_templates_enrichment_ai_qualification_estimate_all_post";
40
+ estimateListPipeline: "estimate_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__estimate_post";
41
+ estimateQualification: "estimate_qualification_enrichment_ai_qualification_estimate_post";
42
+ executeRoutingRule: "execute_routing_rule_enrichment_list_routing_rules__rule_id__execute_post";
43
+ generateAiRunCondition: "generate_ai_run_condition_enrichment_ai_formula_generate_condition_post";
44
+ generateEnrichmentPrompt: "generate_enrichment_prompt_enrichment_generate_prompt_post";
45
+ generateFormulaWithAi: "generate_formula_with_ai_enrichment_ai_formula_generate_post";
46
+ generateQualificationTemplates: "generate_qualification_templates_enrichment_ai_qualification_generate_templates_post";
47
+ generateRoutingFilter: "generate_routing_filter_enrichment_list_routing_generate_filter_post";
48
+ getAiBatchJobStatus: "get_ai_batch_job_status_enrichment_ai_batch_jobs__job_id__status_get";
49
+ getAiConfiguration: "get_ai_configuration_enrichment_ai_configs__group_id__get";
50
+ getAutoEnrichmentConfig: "get_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__get";
51
+ getAutoEnrichmentSettings: "get_auto_enrichment_settings_enrichment_auto_enrichment_settings_get";
52
+ getCompanyGtmProfile: "get_company_gtm_profile_enrichment_companies_gtm_profile_get";
53
+ getEnrichmentConfiguration: "get_enrichment_configuration_enrichment_configs__config_id__get";
54
+ getEnrichmentDailyActivity: "get_enrichment_daily_activity_enrichment_analytics_daily_activity_get";
55
+ getEnrichmentFieldDistribution: "get_enrichment_field_distribution_enrichment_analytics_field_distribution_get";
56
+ getEnrichmentJob: "get_enrichment_job_enrichment_jobs__job_id__get";
57
+ getEnrichmentMetrics: "get_enrichment_metrics_enrichment_analytics_metrics_get";
58
+ getEnrichmentRecordsProgress: "get_enrichment_records_progress_enrichment_records_progress_post";
59
+ getEnrichmentTrends: "get_enrichment_trends_enrichment_analytics_trends_get";
60
+ getFindPeopleConfig: "get_find_people_config_enrichment_find_people__config_id__get";
61
+ getFindPeopleResults: "get_find_people_results_enrichment_find_people__config_id__results__company_id__get";
62
+ getFormulaConfiguration: "get_formula_configuration_enrichment_formula_configs__column_id__get";
63
+ getPipelineRun: "get_pipeline_run_enrichment_lists_pipeline_runs__run_id__get";
64
+ getQualificationFitLandscape: "get_qualification_fit_landscape_enrichment_ai_qualification_fit_landscape_get";
65
+ getRecordSyncStatus: "get_record_sync_status_enrichment_record_sync__entity_type__status_get";
66
+ getRoutingRule: "get_routing_rule_enrichment_list_routing_rules__rule_id__get";
67
+ getWaterfallConfiguration: "get_waterfall_configuration_enrichment_waterfall_configs__column_id__get";
68
+ getWaterfallJobProgress: "get_waterfall_job_progress_enrichment_waterfall_jobs__job_id__progress_get";
69
+ importFindPeopleResults: "import_find_people_results_enrichment_find_people__config_id__import_post";
70
+ listActiveEnrichmentJobs: "list_active_enrichment_jobs_enrichment_active_jobs_get";
71
+ listAiConfigs: "list_ai_configs_enrichment_ai_configs_get";
72
+ listAiFormulaAvailableFields: "list_ai_formula_available_fields_enrichment_ai_formula_available_fields_get";
73
+ listAiTemplates: "list_ai_templates_enrichment_ai_templates_get";
74
+ listAutoEnrichmentConfigs: "list_auto_enrichment_configs_enrichment_auto_enrichment_configs_get";
75
+ listConfigAssignments: "list_config_assignments_enrichment_configs__config_id__assignments_get";
76
+ listEnrichmentConfigurations: "list_enrichment_configurations_enrichment_configs_get";
77
+ listEnrichmentProviders: "list_enrichment_providers_enrichment_providers_get";
78
+ listFormulaTemplates: "list_formula_templates_enrichment_formula_templates_get";
79
+ listListPipelineRuns: "list_list_pipeline_runs_enrichment_lists__list_id__pipelines__pipeline_id__runs_get";
80
+ listListPipelines: "list_list_pipelines_enrichment_lists__list_id__pipelines_get";
81
+ listPipelineStepOptions: "list_pipeline_step_options_enrichment_lists__list_id__pipeline_step_options_get";
82
+ listPipelineTemplates: "list_pipeline_templates_enrichment_lists_pipeline_templates_get";
83
+ listQualificationTemplates: "list_qualification_templates_enrichment_ai_qualification_templates_get";
84
+ listRecordSyncFields: "list_record_sync_fields_enrichment_record_sync__entity_type__fields_get";
85
+ listRecordSyncHistory: "list_record_sync_history_enrichment_record_sync__entity_type__history_get";
86
+ listRecordSyncLists: "list_record_sync_lists_enrichment_record_sync__entity_type__lists_get";
87
+ listRoutingRules: "list_routing_rules_enrichment_list_routing_rules_get";
88
+ listWaterfallAllowedColumns: "list_waterfall_allowed_columns_enrichment_waterfall_allowed_columns_get";
89
+ listWaterfallConfigs: "list_waterfall_configs_enrichment_waterfall_configs_get";
90
+ listWaterfallTemplates: "list_waterfall_templates_enrichment_waterfall_templates_get";
91
+ lookupCompany: "lookup_company_enrichment_lookup_company_post";
92
+ lookupPerson: "lookup_person_enrichment_lookup_person_post";
93
+ lookupPersonAlias: "lookup_person_alias_enrichment_person_post";
94
+ pauseEnrichmentJob: "pause_enrichment_job_enrichment_jobs__job_id__pause_post";
95
+ previewFindPeople: "preview_find_people_enrichment_find_people__config_id__preview_post";
96
+ previewFormula: "preview_formula_enrichment_ai_formula_preview_post";
97
+ previewRecordSync: "preview_record_sync_enrichment_record_sync__entity_type__preview_post";
98
+ previewRoutingRule: "preview_routing_rule_enrichment_list_routing_rules_preview_post";
99
+ renameAiEnrichmentColumn: "rename_ai_enrichment_column_enrichment_ai_configs__group_id__rename_put";
100
+ resumeEnrichmentJob: "resume_enrichment_job_enrichment_jobs__job_id__resume_post";
101
+ reviewRecordSyncChange: "review_record_sync_change_enrichment_record_sync__entity_type__review_post";
102
+ runAiEnrichment: "run_ai_enrichment_enrichment_ai_enrich_post";
103
+ runFindPeople: "run_find_people_enrichment_find_people__config_id__run_post";
104
+ runFormulaColumn: "run_formula_column_enrichment_formula_configs__column_id__run_post";
105
+ runListPipeline: "run_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__runs_post";
106
+ runQualification: "run_qualification_enrichment_ai_qualification_run_post";
107
+ runRecordSync: "run_record_sync_enrichment_record_sync__entity_type__run_post";
108
+ runWaterfallPipeline: "run_waterfall_pipeline_enrichment_waterfall_enrich_post";
109
+ saveAiEnrichmentConfig: "save_ai_enrichment_config_enrichment_ai_configs_post";
110
+ searchImportFindPeople: "search_import_find_people_enrichment_find_people_search_import_post";
111
+ setPipelineEnabled: "set_pipeline_enabled_enrichment_lists__list_id__pipelines__pipeline_id__enabled_post";
112
+ startAiBatchEnrichment: "start_ai_batch_enrichment_enrichment_ai_batch_enrich_post";
113
+ startEnrichment: "start_enrichment_enrichment_enrich_post";
114
+ unassignConfigFromList: "unassign_config_from_list_enrichment_configs__config_id__assignments__list_id__delete";
115
+ updateAiConfiguration: "update_ai_configuration_enrichment_ai_configs__group_id__put";
116
+ updateAutoEnrichmentConfig: "update_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__patch";
117
+ updateAutoEnrichmentSettings: "update_auto_enrichment_settings_enrichment_auto_enrichment_settings__entity_type__put";
118
+ updateEnrichmentConfig: "update_enrichment_config_enrichment_configs__config_id__put";
119
+ updateEnrichmentField: "update_enrichment_field_enrichment_records__record_id__fields__column_id__patch";
120
+ updateFindPeopleConfig: "update_find_people_config_enrichment_find_people__config_id__put";
121
+ updateFormulaConfiguration: "update_formula_configuration_enrichment_formula_configs__column_id__put";
122
+ updateListPipeline: "update_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__put";
123
+ updateQualificationTemplate: "update_qualification_template_enrichment_ai_qualification_templates__template_id__put";
124
+ updateRecordSyncPolicy: "update_record_sync_policy_enrichment_record_sync__entity_type__policy_put";
125
+ updateWaterfallConfiguration: "update_waterfall_configuration_enrichment_waterfall_configs__column_id__put";
126
+ validateAiEnrichmentCredits: "validate_ai_enrichment_credits_enrichment_ai_validate_credits_post";
127
+ validateFormula: "validate_formula_enrichment_ai_formula_validate_post";
128
+ validateWaterfallEnrichmentCredits: "validate_waterfall_enrichment_credits_enrichment_waterfall_validate_credits_post";
129
+ verifyEmail: "verify_email_enrichment_verify_email_post";
130
+ }
131
+
132
+ /** Input and output of every `g8.api.enrichment` operation, keyed by operationId. */
133
+ export interface EnrichmentOperations {
134
+ /**
135
+ * POST /enrichment/configs/{config_id}/assignments
136
+ * Assign Enrichment Configuration
137
+ * tier: write · scope: enrichment:write
138
+ */
139
+ assign_enrichment_configuration_enrichment_configs__config_id__assignments_post: {
140
+ input: {
141
+ path: {
142
+ config_id: string;
143
+ };
144
+ headers?: {
145
+ "X-Target-Org-Id"?: string | null;
146
+ };
147
+ body: AssignListsRequest;
148
+ };
149
+ output: ApiResponse_EnrichmentPayload_;
150
+ };
151
+ /**
152
+ * POST /enrichment/jobs/{job_id}/cancel
153
+ * Cancel Enrichment Job
154
+ * tier: write · scope: enrichment:write
155
+ */
156
+ cancel_enrichment_job_enrichment_jobs__job_id__cancel_post: {
157
+ input: {
158
+ path: {
159
+ /** Enrichment job id (UUID). */
160
+ job_id: string;
161
+ };
162
+ headers?: {
163
+ "X-Target-Org-Id"?: string | null;
164
+ };
165
+ body?: JobControlRequest | null;
166
+ };
167
+ output: ApiResponse_EnrichmentPayload_;
168
+ };
169
+ /**
170
+ * POST /enrichment/lists/{list_id}/pipelines/{pipeline_id}/cancel
171
+ * Cancel List Pipeline Run
172
+ * tier: write · scope: enrichment:write
173
+ */
174
+ cancel_list_pipeline_run_enrichment_lists__list_id__pipelines__pipeline_id__cancel_post: {
175
+ input: {
176
+ path: {
177
+ list_id: number;
178
+ /** Pipeline id (UUID). */
179
+ pipeline_id: string;
180
+ };
181
+ headers?: {
182
+ "X-Target-Org-Id"?: string | null;
183
+ };
184
+ };
185
+ output: ApiResponse_EnrichmentPayload_;
186
+ };
187
+ /**
188
+ * POST /enrichment/find-people/configure
189
+ * Configure Find People
190
+ * tier: billable · scope: enrichment:run
191
+ */
192
+ configure_find_people_enrichment_find_people_configure_post: {
193
+ input: {
194
+ headers?: {
195
+ "X-Target-Org-Id"?: string | null;
196
+ };
197
+ body: ConfigureFindPeopleRequest;
198
+ };
199
+ output: ApiResponse_EnrichmentPayload_;
200
+ };
201
+ /**
202
+ * POST /enrichment/auto-enrichment/configs
203
+ * Create Auto Enrichment Config
204
+ * tier: billable · scope: enrichment:run
205
+ */
206
+ create_auto_enrichment_config_enrichment_auto_enrichment_configs_post: {
207
+ input: {
208
+ headers?: {
209
+ "X-Target-Org-Id"?: string | null;
210
+ };
211
+ body: CreateAutoEnrichmentConfigRequest;
212
+ };
213
+ output: ApiResponse_EnrichmentPayload_;
214
+ };
215
+ /**
216
+ * POST /enrichment/waterfall/configs
217
+ * Create Default Waterfall Config
218
+ * tier: billable · scope: enrichment:run
219
+ */
220
+ create_default_waterfall_config_enrichment_waterfall_configs_post: {
221
+ input: {
222
+ headers?: {
223
+ "X-Target-Org-Id"?: string | null;
224
+ };
225
+ body: CreateDefaultWaterfallConfigRequest;
226
+ };
227
+ output: ApiResponse_CreateDefaultWaterfallConfigResponse_;
228
+ };
229
+ /**
230
+ * POST /enrichment/columns
231
+ * Create Dynamic Column
232
+ * tier: write · scope: enrichment:write
233
+ */
234
+ create_dynamic_column_enrichment_columns_post: {
235
+ input: {
236
+ headers?: {
237
+ "X-Target-Org-Id"?: string | null;
238
+ };
239
+ body: CreateDynamicColumnRequest;
240
+ };
241
+ output: ApiResponse_EnrichmentPayload_;
242
+ };
243
+ /**
244
+ * POST /enrichment/configs
245
+ * Create Enrichment Configuration
246
+ * tier: write · scope: enrichment:write
247
+ */
248
+ create_enrichment_configuration_enrichment_configs_post: {
249
+ input: {
250
+ headers?: {
251
+ "X-Target-Org-Id"?: string | null;
252
+ };
253
+ body: CreateEnrichmentConfigRequest;
254
+ };
255
+ output: ApiResponse_EnrichmentPayload_;
256
+ };
257
+ /**
258
+ * POST /enrichment/formula/configs/{column_id}
259
+ * Create Formula Config
260
+ * tier: write · scope: enrichment:write
261
+ */
262
+ create_formula_config_enrichment_formula_configs__column_id__post: {
263
+ input: {
264
+ path: {
265
+ /** Column the formula fills. */
266
+ column_id: string;
267
+ };
268
+ query?: {
269
+ /** Scope the formula to one list. Omit for a global one. */
270
+ list_id?: number | null;
271
+ };
272
+ headers?: {
273
+ "X-Target-Org-Id"?: string | null;
274
+ };
275
+ body: CreateFormulaConfigRequest;
276
+ };
277
+ output: ApiResponse_EnrichmentPayload_;
278
+ };
279
+ /**
280
+ * POST /enrichment/formula-templates
281
+ * Create Formula Template
282
+ * tier: write · scope: enrichment:write
283
+ */
284
+ create_formula_template_enrichment_formula_templates_post: {
285
+ input: {
286
+ headers?: {
287
+ "X-Target-Org-Id"?: string | null;
288
+ };
289
+ body: CreateFormulaTemplateRequest;
290
+ };
291
+ output: ApiResponse_EnrichmentPayload_;
292
+ };
293
+ /**
294
+ * POST /enrichment/lists/{list_id}/pipelines
295
+ * Create List Pipeline
296
+ * tier: billable · scope: enrichment:run
297
+ */
298
+ create_list_pipeline_enrichment_lists__list_id__pipelines_post: {
299
+ input: {
300
+ path: {
301
+ list_id: number;
302
+ };
303
+ headers?: {
304
+ "X-Target-Org-Id"?: string | null;
305
+ };
306
+ body: SaveListPipelineRequest;
307
+ };
308
+ output: ApiResponse_EnrichmentPayload_;
309
+ };
310
+ /**
311
+ * POST /enrichment/lists/{list_id}/pipelines/from-template
312
+ * Create List Pipeline From Template
313
+ * tier: write · scope: enrichment:write
314
+ */
315
+ create_list_pipeline_from_template_enrichment_lists__list_id__pipelines_from_template_post: {
316
+ input: {
317
+ path: {
318
+ list_id: number;
319
+ };
320
+ headers?: {
321
+ "X-Target-Org-Id"?: string | null;
322
+ };
323
+ body: InstantiatePipelineTemplateRequest;
324
+ };
325
+ output: ApiResponse_EnrichmentPayload_;
326
+ };
327
+ /**
328
+ * POST /enrichment/list-routing/rules
329
+ * Create Routing Rule
330
+ * tier: write · scope: enrichment:write
331
+ */
332
+ create_routing_rule_enrichment_list_routing_rules_post: {
333
+ input: {
334
+ headers?: {
335
+ "X-Target-Org-Id"?: string | null;
336
+ };
337
+ body: CreateRoutingRuleRequest;
338
+ };
339
+ output: ApiResponse_EnrichmentPayload_;
340
+ };
341
+ /**
342
+ * DELETE /enrichment/ai/configs/{group_id}/columns/{column_id}
343
+ * Delete Ai Config By Column
344
+ * tier: destructive · scope: enrichment:delete
345
+ */
346
+ delete_ai_config_by_column_enrichment_ai_configs__group_id__columns__column_id__delete: {
347
+ input: {
348
+ path: {
349
+ /** AI group id. */
350
+ group_id: string;
351
+ /** The single column to drop. */
352
+ column_id: string;
353
+ };
354
+ query?: {
355
+ /** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
356
+ hard_delete?: boolean;
357
+ };
358
+ headers?: {
359
+ "X-Target-Org-Id"?: string | null;
360
+ };
361
+ };
362
+ output: ApiResponse_EnrichmentPayload_;
363
+ };
364
+ /**
365
+ * DELETE /enrichment/ai/configs/{group_id}
366
+ * Delete Ai Config By Group
367
+ * tier: destructive · scope: enrichment:delete
368
+ */
369
+ delete_ai_config_by_group_enrichment_ai_configs__group_id__delete: {
370
+ input: {
371
+ path: {
372
+ /** AI group id. */
373
+ group_id: string;
374
+ };
375
+ query?: {
376
+ /** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
377
+ hard_delete?: boolean;
378
+ };
379
+ headers?: {
380
+ "X-Target-Org-Id"?: string | null;
381
+ };
382
+ };
383
+ output: ApiResponse_EnrichmentPayload_;
384
+ };
385
+ /**
386
+ * DELETE /enrichment/auto-enrichment/configs/{config_id}
387
+ * Delete Auto Enrichment Config
388
+ * tier: destructive · scope: enrichment:delete
389
+ */
390
+ delete_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__delete: {
391
+ input: {
392
+ path: {
393
+ /** Configuration id (UUID). */
394
+ config_id: string;
395
+ };
396
+ headers?: {
397
+ "X-Target-Org-Id"?: string | null;
398
+ };
399
+ };
400
+ output: ApiResponse_EnrichmentPayload_;
401
+ };
402
+ /**
403
+ * DELETE /enrichment/configs/{config_id}
404
+ * Delete Enrichment Config
405
+ * tier: destructive · scope: enrichment:delete
406
+ */
407
+ delete_enrichment_config_enrichment_configs__config_id__delete: {
408
+ input: {
409
+ path: {
410
+ /** Enrichment configuration id (UUID). */
411
+ config_id: string;
412
+ };
413
+ query?: {
414
+ /** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
415
+ hard_delete?: boolean;
416
+ };
417
+ headers?: {
418
+ "X-Target-Org-Id"?: string | null;
419
+ };
420
+ };
421
+ output: ApiResponse_EnrichmentPayload_;
422
+ };
423
+ /**
424
+ * DELETE /enrichment/find-people/{config_id}
425
+ * Delete Find People Config
426
+ * tier: destructive · scope: enrichment:delete
427
+ */
428
+ delete_find_people_config_enrichment_find_people__config_id__delete: {
429
+ input: {
430
+ path: {
431
+ /** Configuration id (UUID). */
432
+ config_id: string;
433
+ };
434
+ query?: {
435
+ /** TRUE BY DEFAULT, matching the app: the configuration is removed permanently rather than deactivated. Pass false to keep it. Contacts already imported are unaffected either way. */
436
+ hard_delete?: boolean;
437
+ };
438
+ headers?: {
439
+ "X-Target-Org-Id"?: string | null;
440
+ };
441
+ };
442
+ output: ApiResponse_EnrichmentPayload_;
443
+ };
444
+ /**
445
+ * DELETE /enrichment/formula/configs/{column_id}
446
+ * Delete Formula Config
447
+ * tier: destructive · scope: enrichment:delete
448
+ */
449
+ delete_formula_config_enrichment_formula_configs__column_id__delete: {
450
+ input: {
451
+ path: {
452
+ /** Column the formula fills. */
453
+ column_id: string;
454
+ };
455
+ query?: {
456
+ /** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
457
+ hard_delete?: boolean;
458
+ };
459
+ headers?: {
460
+ "X-Target-Org-Id"?: string | null;
461
+ };
462
+ };
463
+ output: ApiResponse_EnrichmentPayload_;
464
+ };
465
+ /**
466
+ * DELETE /enrichment/lists/{list_id}/pipelines/{pipeline_id}
467
+ * Delete List Pipeline
468
+ * tier: destructive · scope: enrichment:delete
469
+ */
470
+ delete_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__delete: {
471
+ input: {
472
+ path: {
473
+ list_id: number;
474
+ /** Pipeline id (UUID). */
475
+ pipeline_id: string;
476
+ };
477
+ headers?: {
478
+ "X-Target-Org-Id"?: string | null;
479
+ };
480
+ };
481
+ output: ApiResponse_EnrichmentPayload_;
482
+ };
483
+ /**
484
+ * DELETE /enrichment/list-routing/rules/{rule_id}
485
+ * Delete Routing Rule
486
+ * tier: destructive · scope: enrichment:delete
487
+ */
488
+ delete_routing_rule_enrichment_list_routing_rules__rule_id__delete: {
489
+ input: {
490
+ path: {
491
+ /** Routing rule id (UUID). */
492
+ rule_id: string;
493
+ };
494
+ headers?: {
495
+ "X-Target-Org-Id"?: string | null;
496
+ };
497
+ };
498
+ output: ApiResponse_EnrichmentPayload_;
499
+ };
500
+ /**
501
+ * DELETE /enrichment/waterfall/configs/{column_id}
502
+ * Delete Waterfall Config
503
+ * tier: destructive · scope: enrichment:delete
504
+ */
505
+ delete_waterfall_config_enrichment_waterfall_configs__column_id__delete: {
506
+ input: {
507
+ path: {
508
+ /** Waterfall column id. */
509
+ column_id: string;
510
+ };
511
+ query?: {
512
+ /** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
513
+ hard_delete?: boolean;
514
+ };
515
+ headers?: {
516
+ "X-Target-Org-Id"?: string | null;
517
+ };
518
+ };
519
+ output: ApiResponse_EnrichmentPayload_;
520
+ };
521
+ /**
522
+ * POST /enrichment/lists/{list_id}/pipelines/ai-draft
523
+ * Draft Pipeline With Ai
524
+ * tier: billable · scope: enrichment:run
525
+ */
526
+ draft_pipeline_with_ai_enrichment_lists__list_id__pipelines_ai_draft_post: {
527
+ input: {
528
+ path: {
529
+ list_id: number;
530
+ };
531
+ headers?: {
532
+ "X-Target-Org-Id"?: string | null;
533
+ };
534
+ body: AIPipelineDraftRequest;
535
+ };
536
+ output: ApiResponse_EnrichmentPayload_;
537
+ };
538
+ /**
539
+ * POST /enrichment/ai/qualification/estimate-all
540
+ * Estimate All Qualification Templates
541
+ * tier: read · scope: enrichment:read
542
+ */
543
+ estimate_all_qualification_templates_enrichment_ai_qualification_estimate_all_post: {
544
+ input: {
545
+ headers?: {
546
+ "X-Target-Org-Id"?: string | null;
547
+ };
548
+ body: EstimateAllRequest;
549
+ };
550
+ output: ApiResponse_EnrichmentPayload_;
551
+ };
552
+ /**
553
+ * POST /enrichment/lists/{list_id}/pipelines/{pipeline_id}/estimate
554
+ * Estimate List Pipeline
555
+ * tier: read · scope: enrichment:read
556
+ */
557
+ estimate_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__estimate_post: {
558
+ input: {
559
+ path: {
560
+ list_id: number;
561
+ /** Pipeline id (UUID). */
562
+ pipeline_id: string;
563
+ };
564
+ headers?: {
565
+ "X-Target-Org-Id"?: string | null;
566
+ };
567
+ };
568
+ output: ApiResponse_EnrichmentPayload_;
569
+ };
570
+ /**
571
+ * POST /enrichment/ai/qualification/estimate
572
+ * Estimate Qualification
573
+ * tier: read · scope: enrichment:read
574
+ */
575
+ estimate_qualification_enrichment_ai_qualification_estimate_post: {
576
+ input: {
577
+ headers?: {
578
+ "X-Target-Org-Id"?: string | null;
579
+ };
580
+ body: RunQualificationRequest;
581
+ };
582
+ output: ApiResponse_EnrichmentPayload_;
583
+ };
584
+ /**
585
+ * POST /enrichment/list-routing/rules/{rule_id}/execute
586
+ * Execute Routing Rule
587
+ * tier: write · scope: enrichment:write
588
+ */
589
+ execute_routing_rule_enrichment_list_routing_rules__rule_id__execute_post: {
590
+ input: {
591
+ path: {
592
+ /** Routing rule id (UUID). */
593
+ rule_id: string;
594
+ };
595
+ headers?: {
596
+ "X-Target-Org-Id"?: string | null;
597
+ };
598
+ };
599
+ output: ApiResponse_EnrichmentPayload_;
600
+ };
601
+ /**
602
+ * POST /enrichment/ai-formula/generate-condition
603
+ * Generate Ai Run Condition
604
+ * tier: billable · scope: enrichment:run
605
+ */
606
+ generate_ai_run_condition_enrichment_ai_formula_generate_condition_post: {
607
+ input: {
608
+ headers?: {
609
+ "X-Target-Org-Id"?: string | null;
610
+ };
611
+ body: AIRunConditionRequest;
612
+ };
613
+ output: ApiResponse_EnrichmentPayload_;
614
+ };
615
+ /**
616
+ * POST /enrichment/generate-prompt
617
+ * Generate Enrichment Prompt
618
+ * tier: billable · scope: enrichment:run
619
+ */
620
+ generate_enrichment_prompt_enrichment_generate_prompt_post: {
621
+ input: {
622
+ headers?: {
623
+ "X-Target-Org-Id"?: string | null;
624
+ };
625
+ body: PromptGeneratorRequest;
626
+ };
627
+ output: ApiResponse_EnrichmentPayload_;
628
+ };
629
+ /**
630
+ * POST /enrichment/ai-formula/generate
631
+ * Generate Formula With Ai
632
+ * tier: billable · scope: enrichment:run
633
+ */
634
+ generate_formula_with_ai_enrichment_ai_formula_generate_post: {
635
+ input: {
636
+ headers?: {
637
+ "X-Target-Org-Id"?: string | null;
638
+ };
639
+ body: AIFormulaGenerateRequest;
640
+ };
641
+ output: ApiResponse_EnrichmentPayload_;
642
+ };
643
+ /**
644
+ * POST /enrichment/ai/qualification/generate-templates
645
+ * Generate Qualification Templates
646
+ * tier: billable · scope: enrichment:run
647
+ */
648
+ generate_qualification_templates_enrichment_ai_qualification_generate_templates_post: {
649
+ input: {
650
+ headers?: {
651
+ "X-Target-Org-Id"?: string | null;
652
+ };
653
+ };
654
+ output: ApiResponse_EnrichmentPayload_;
655
+ };
656
+ /**
657
+ * POST /enrichment/list-routing/generate-filter
658
+ * Generate Routing Filter
659
+ * tier: billable · scope: enrichment:run
660
+ */
661
+ generate_routing_filter_enrichment_list_routing_generate_filter_post: {
662
+ input: {
663
+ headers?: {
664
+ "X-Target-Org-Id"?: string | null;
665
+ };
666
+ body: GenerateFilterRequest;
667
+ };
668
+ output: ApiResponse_EnrichmentPayload_;
669
+ };
670
+ /**
671
+ * GET /enrichment/ai/batch/jobs/{job_id}/status
672
+ * Get Ai Batch Job Status
673
+ * tier: read · scope: enrichment:read
674
+ */
675
+ get_ai_batch_job_status_enrichment_ai_batch_jobs__job_id__status_get: {
676
+ input: {
677
+ path: {
678
+ /** The batch job id. */
679
+ job_id: string;
680
+ };
681
+ headers?: {
682
+ "X-Target-Org-Id"?: string | null;
683
+ };
684
+ };
685
+ output: ApiResponse_EnrichmentPayload_;
686
+ };
687
+ /**
688
+ * GET /enrichment/ai/configs/{group_id}
689
+ * Get Ai Configuration
690
+ * tier: read · scope: enrichment:read
691
+ */
692
+ get_ai_configuration_enrichment_ai_configs__group_id__get: {
693
+ input: {
694
+ path: {
695
+ /** The AI group id. */
696
+ group_id: string;
697
+ };
698
+ headers?: {
699
+ "X-Target-Org-Id"?: string | null;
700
+ };
701
+ };
702
+ output: ApiResponse_EnrichmentPayload_;
703
+ };
704
+ /**
705
+ * GET /enrichment/auto-enrichment/configs/{config_id}
706
+ * Get Auto Enrichment Config
707
+ * tier: read · scope: enrichment:read
708
+ */
709
+ get_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__get: {
710
+ input: {
711
+ path: {
712
+ /** Auto-enrichment config id (UUID). */
713
+ config_id: string;
714
+ };
715
+ headers?: {
716
+ "X-Target-Org-Id"?: string | null;
717
+ };
718
+ };
719
+ output: ApiResponse_EnrichmentPayload_;
720
+ };
721
+ /**
722
+ * GET /enrichment/auto-enrichment/settings
723
+ * Get Auto Enrichment Settings
724
+ * tier: read · scope: enrichment:read
725
+ */
726
+ get_auto_enrichment_settings_enrichment_auto_enrichment_settings_get: {
727
+ input: {
728
+ headers?: {
729
+ "X-Target-Org-Id"?: string | null;
730
+ };
731
+ };
732
+ output: ApiResponse_EnrichmentPayload_;
733
+ };
734
+ /**
735
+ * GET /enrichment/companies/gtm-profile
736
+ * Get Company Gtm Profile
737
+ * tier: read · scope: enrichment:read
738
+ */
739
+ get_company_gtm_profile_enrichment_companies_gtm_profile_get: {
740
+ input: {
741
+ query: {
742
+ /** Company domain to look up. */
743
+ domain: string;
744
+ };
745
+ headers?: {
746
+ "X-Target-Org-Id"?: string | null;
747
+ };
748
+ };
749
+ output: ApiResponse_EnrichmentPayload_;
750
+ };
751
+ /**
752
+ * GET /enrichment/configs/{config_id}
753
+ * Get Enrichment Configuration
754
+ * tier: read · scope: enrichment:read
755
+ */
756
+ get_enrichment_configuration_enrichment_configs__config_id__get: {
757
+ input: {
758
+ path: {
759
+ /** Configuration id (UUID). */
760
+ config_id: string;
761
+ };
762
+ headers?: {
763
+ "X-Target-Org-Id"?: string | null;
764
+ };
765
+ };
766
+ output: ApiResponse_EnrichmentPayload_;
767
+ };
768
+ /**
769
+ * GET /enrichment/analytics/daily-activity
770
+ * Get Enrichment Daily Activity
771
+ * tier: read · scope: enrichment:read
772
+ */
773
+ get_enrichment_daily_activity_enrichment_analytics_daily_activity_get: {
774
+ input: {
775
+ query?: {
776
+ /** Reporting window. */
777
+ period?: string;
778
+ };
779
+ headers?: {
780
+ "X-Target-Org-Id"?: string | null;
781
+ };
782
+ };
783
+ output: ApiResponse_EnrichmentPayload_;
784
+ };
785
+ /**
786
+ * GET /enrichment/analytics/field-distribution
787
+ * Get Enrichment Field Distribution
788
+ * tier: read · scope: enrichment:read
789
+ */
790
+ get_enrichment_field_distribution_enrichment_analytics_field_distribution_get: {
791
+ input: {
792
+ query?: {
793
+ /** Reporting window. */
794
+ period?: string;
795
+ };
796
+ headers?: {
797
+ "X-Target-Org-Id"?: string | null;
798
+ };
799
+ };
800
+ output: ApiResponse_EnrichmentPayload_;
801
+ };
802
+ /**
803
+ * GET /enrichment/jobs/{job_id}
804
+ * Get Enrichment Job
805
+ * tier: read · scope: enrichment:read
806
+ */
807
+ get_enrichment_job_enrichment_jobs__job_id__get: {
808
+ input: {
809
+ path: {
810
+ job_id: string;
811
+ };
812
+ query?: {
813
+ /** When true, include per-provider step errors (record_id, provider, error) from the job records, e.g. '<provider> API key is not configured'. Adds one DB read; off by default. */
814
+ include_provider_errors?: boolean;
815
+ };
816
+ headers?: {
817
+ "X-Target-Org-Id"?: string | null;
818
+ };
819
+ };
820
+ output: ApiResponse_EnrichJobResponse_;
821
+ };
822
+ /**
823
+ * GET /enrichment/analytics/metrics
824
+ * Get Enrichment Metrics
825
+ * tier: read · scope: enrichment:read
826
+ */
827
+ get_enrichment_metrics_enrichment_analytics_metrics_get: {
828
+ input: {
829
+ query?: {
830
+ period?: "last_7_days" | "last_30_days" | "last_90_days" | "current_month" | "last_month";
831
+ };
832
+ headers?: {
833
+ "X-Target-Org-Id"?: string | null;
834
+ };
835
+ };
836
+ output: ApiResponse_EnrichmentPayload_;
837
+ };
838
+ /**
839
+ * POST /enrichment/records/progress
840
+ * Get Enrichment Records Progress
841
+ * tier: read · scope: enrichment:read
842
+ */
843
+ get_enrichment_records_progress_enrichment_records_progress_post: {
844
+ input: {
845
+ headers?: {
846
+ "X-Target-Org-Id"?: string | null;
847
+ };
848
+ body: RecordProgressRequest;
849
+ };
850
+ output: ApiResponse_EnrichmentPayload_;
851
+ };
852
+ /**
853
+ * GET /enrichment/analytics/trends
854
+ * Get Enrichment Trends
855
+ * tier: read · scope: enrichment:read
856
+ */
857
+ get_enrichment_trends_enrichment_analytics_trends_get: {
858
+ input: {
859
+ query?: {
860
+ period?: "last_7_days" | "last_30_days" | "last_90_days" | "current_month" | "last_month";
861
+ granularity?: "day" | "week" | "month";
862
+ };
863
+ headers?: {
864
+ "X-Target-Org-Id"?: string | null;
865
+ };
866
+ };
867
+ output: ApiResponse_EnrichmentPayload_;
868
+ };
869
+ /**
870
+ * GET /enrichment/find-people/{config_id}
871
+ * Get Find People Config
872
+ * tier: read · scope: enrichment:read
873
+ */
874
+ get_find_people_config_enrichment_find_people__config_id__get: {
875
+ input: {
876
+ path: {
877
+ /** Configuration id (UUID). */
878
+ config_id: string;
879
+ };
880
+ headers?: {
881
+ "X-Target-Org-Id"?: string | null;
882
+ };
883
+ };
884
+ output: ApiResponse_EnrichmentPayload_;
885
+ };
886
+ /**
887
+ * GET /enrichment/find-people/{config_id}/results/{company_id}
888
+ * Get Find People Results
889
+ * tier: read · scope: enrichment:read
890
+ */
891
+ get_find_people_results_enrichment_find_people__config_id__results__company_id__get: {
892
+ input: {
893
+ path: {
894
+ /** Configuration id (UUID). */
895
+ config_id: string;
896
+ /** Which company's results to read. */
897
+ company_id: number;
898
+ };
899
+ query?: {
900
+ /** Narrow to one result status. */
901
+ status?: string | null;
902
+ page?: number;
903
+ limit?: number;
904
+ };
905
+ headers?: {
906
+ "X-Target-Org-Id"?: string | null;
907
+ };
908
+ };
909
+ output: ApiResponse_EnrichmentListPayload_;
910
+ };
911
+ /**
912
+ * GET /enrichment/formula/configs/{column_id}
913
+ * Get Formula Configuration
914
+ * tier: read · scope: enrichment:read
915
+ */
916
+ get_formula_configuration_enrichment_formula_configs__column_id__get: {
917
+ input: {
918
+ path: {
919
+ /** The enrichment column id. */
920
+ column_id: string;
921
+ };
922
+ query?: {
923
+ /** Scope to a list's configuration. */
924
+ list_id?: number | null;
925
+ };
926
+ headers?: {
927
+ "X-Target-Org-Id"?: string | null;
928
+ };
929
+ };
930
+ output: ApiResponse_EnrichmentPayload_;
931
+ };
932
+ /**
933
+ * GET /enrichment/lists/pipeline-runs/{run_id}
934
+ * Get Pipeline Run
935
+ * tier: read · scope: enrichment:read
936
+ */
937
+ get_pipeline_run_enrichment_lists_pipeline_runs__run_id__get: {
938
+ input: {
939
+ path: {
940
+ /** Pipeline run id. */
941
+ run_id: string;
942
+ };
943
+ headers?: {
944
+ "X-Target-Org-Id"?: string | null;
945
+ };
946
+ };
947
+ output: ApiResponse_EnrichmentPayload_;
948
+ };
949
+ /**
950
+ * GET /enrichment/ai/qualification/fit-landscape
951
+ * Get Qualification Fit Landscape
952
+ * tier: read · scope: enrichment:read
953
+ */
954
+ get_qualification_fit_landscape_enrichment_ai_qualification_fit_landscape_get: {
955
+ input: {
956
+ headers?: {
957
+ "X-Target-Org-Id"?: string | null;
958
+ };
959
+ };
960
+ output: ApiResponse_EnrichmentPayload_;
961
+ };
962
+ /**
963
+ * GET /enrichment/record-sync/{entity_type}/status
964
+ * Get Record Sync Status
965
+ * tier: read · scope: enrichment:read
966
+ */
967
+ get_record_sync_status_enrichment_record_sync__entity_type__status_get: {
968
+ input: {
969
+ path: {
970
+ /** Which record kind. */
971
+ entity_type: "contact" | "company";
972
+ };
973
+ headers?: {
974
+ "X-Target-Org-Id"?: string | null;
975
+ };
976
+ };
977
+ output: ApiResponse_EnrichmentPayload_;
978
+ };
979
+ /**
980
+ * GET /enrichment/list-routing/rules/{rule_id}
981
+ * Get Routing Rule
982
+ * tier: read · scope: enrichment:read
983
+ */
984
+ get_routing_rule_enrichment_list_routing_rules__rule_id__get: {
985
+ input: {
986
+ path: {
987
+ /** Routing rule id (UUID). */
988
+ rule_id: string;
989
+ };
990
+ headers?: {
991
+ "X-Target-Org-Id"?: string | null;
992
+ };
993
+ };
994
+ output: ApiResponse_EnrichmentPayload_;
995
+ };
996
+ /**
997
+ * GET /enrichment/waterfall/configs/{column_id}
998
+ * Get Waterfall Configuration
999
+ * tier: read · scope: enrichment:read
1000
+ */
1001
+ get_waterfall_configuration_enrichment_waterfall_configs__column_id__get: {
1002
+ input: {
1003
+ path: {
1004
+ /** The enrichment column id. */
1005
+ column_id: string;
1006
+ };
1007
+ headers?: {
1008
+ "X-Target-Org-Id"?: string | null;
1009
+ };
1010
+ };
1011
+ output: ApiResponse_EnrichmentPayload_;
1012
+ };
1013
+ /**
1014
+ * GET /enrichment/waterfall/jobs/{job_id}/progress
1015
+ * Get Waterfall Job Progress
1016
+ * tier: read · scope: enrichment:read
1017
+ */
1018
+ get_waterfall_job_progress_enrichment_waterfall_jobs__job_id__progress_get: {
1019
+ input: {
1020
+ path: {
1021
+ /** Waterfall job id. */
1022
+ job_id: string;
1023
+ };
1024
+ headers?: {
1025
+ "X-Target-Org-Id"?: string | null;
1026
+ };
1027
+ };
1028
+ output: ApiResponse_EnrichmentPayload_;
1029
+ };
1030
+ /**
1031
+ * POST /enrichment/find-people/{config_id}/import
1032
+ * Import Find People Results
1033
+ * tier: billable · scope: enrichment:run
1034
+ */
1035
+ import_find_people_results_enrichment_find_people__config_id__import_post: {
1036
+ input: {
1037
+ path: {
1038
+ /** Configuration id (UUID). */
1039
+ config_id: string;
1040
+ };
1041
+ headers?: {
1042
+ "X-Target-Org-Id"?: string | null;
1043
+ };
1044
+ body?: ImportFindPeopleRequest;
1045
+ };
1046
+ output: ApiResponse_EnrichmentPayload_;
1047
+ };
1048
+ /**
1049
+ * GET /enrichment/active-jobs
1050
+ * List Active Enrichment Jobs
1051
+ * tier: read · scope: enrichment:read
1052
+ */
1053
+ list_active_enrichment_jobs_enrichment_active_jobs_get: {
1054
+ input: {
1055
+ query?: {
1056
+ /** Only jobs on this list. */
1057
+ list_id?: number | null;
1058
+ };
1059
+ headers?: {
1060
+ "X-Target-Org-Id"?: string | null;
1061
+ };
1062
+ };
1063
+ output: ApiResponse_EnrichmentPayload_;
1064
+ };
1065
+ /**
1066
+ * GET /enrichment/ai/configs
1067
+ * List Ai Configs
1068
+ * tier: read · scope: enrichment:read
1069
+ */
1070
+ list_ai_configs_enrichment_ai_configs_get: {
1071
+ input: {
1072
+ query: {
1073
+ /** List ID whose saved AI configs to return */
1074
+ list_id: number;
1075
+ };
1076
+ headers?: {
1077
+ "X-Target-Org-Id"?: string | null;
1078
+ };
1079
+ };
1080
+ output: ApiResponse_AIConfigsResponse_;
1081
+ };
1082
+ /**
1083
+ * GET /enrichment/ai-formula/available-fields
1084
+ * List Ai Formula Available Fields
1085
+ * tier: read · scope: enrichment:read
1086
+ */
1087
+ list_ai_formula_available_fields_enrichment_ai_formula_available_fields_get: {
1088
+ input: {
1089
+ headers?: {
1090
+ "X-Target-Org-Id"?: string | null;
1091
+ };
1092
+ };
1093
+ output: ApiResponse_EnrichmentPayload_;
1094
+ };
1095
+ /**
1096
+ * GET /enrichment/ai-templates
1097
+ * List Ai Templates
1098
+ * tier: read · scope: enrichment:read
1099
+ */
1100
+ list_ai_templates_enrichment_ai_templates_get: {
1101
+ input: {
1102
+ query: {
1103
+ /** Templates applicable to this list. */
1104
+ list_id: number;
1105
+ /** Narrow to one category. */
1106
+ category?: string | null;
1107
+ /** Include graph8's built-in templates as well as the org's own. */
1108
+ include_system_templates?: boolean;
1109
+ };
1110
+ headers?: {
1111
+ "X-Target-Org-Id"?: string | null;
1112
+ };
1113
+ };
1114
+ output: ApiResponse_EnrichmentListPayload_;
1115
+ };
1116
+ /**
1117
+ * GET /enrichment/auto-enrichment/configs
1118
+ * List Auto Enrichment Configs
1119
+ * tier: read · scope: enrichment:read
1120
+ */
1121
+ list_auto_enrichment_configs_enrichment_auto_enrichment_configs_get: {
1122
+ input: {
1123
+ query?: {
1124
+ /** Only this list's configs. */
1125
+ audience_id?: number | null;
1126
+ };
1127
+ headers?: {
1128
+ "X-Target-Org-Id"?: string | null;
1129
+ };
1130
+ };
1131
+ output: ApiResponse_EnrichmentPayload_;
1132
+ };
1133
+ /**
1134
+ * GET /enrichment/configs/{config_id}/assignments
1135
+ * List Config Assignments
1136
+ * tier: read · scope: enrichment:read
1137
+ */
1138
+ list_config_assignments_enrichment_configs__config_id__assignments_get: {
1139
+ input: {
1140
+ path: {
1141
+ config_id: string;
1142
+ };
1143
+ headers?: {
1144
+ "X-Target-Org-Id"?: string | null;
1145
+ };
1146
+ };
1147
+ output: ApiResponse_EnrichmentListPayload_;
1148
+ };
1149
+ /**
1150
+ * GET /enrichment/configs
1151
+ * List Enrichment Configurations
1152
+ * tier: read · scope: enrichment:read
1153
+ */
1154
+ list_enrichment_configurations_enrichment_configs_get: {
1155
+ input: {
1156
+ query?: {
1157
+ /** Filter by type, e.g. `ai`, `waterfall`. */
1158
+ config_type?: string | null;
1159
+ };
1160
+ headers?: {
1161
+ "X-Target-Org-Id"?: string | null;
1162
+ };
1163
+ };
1164
+ output: ApiResponse_EnrichmentListPayload_;
1165
+ };
1166
+ /**
1167
+ * GET /enrichment/providers
1168
+ * List Enrichment Providers
1169
+ * tier: read · scope: enrichment:read
1170
+ */
1171
+ list_enrichment_providers_enrichment_providers_get: {
1172
+ input: {
1173
+ headers?: {
1174
+ "X-Target-Org-Id"?: string | null;
1175
+ };
1176
+ };
1177
+ output: ApiResponse_ProviderCatalogResponse_;
1178
+ };
1179
+ /**
1180
+ * GET /enrichment/formula-templates
1181
+ * List Formula Templates
1182
+ * tier: read · scope: enrichment:read
1183
+ */
1184
+ list_formula_templates_enrichment_formula_templates_get: {
1185
+ input: {
1186
+ query: {
1187
+ /** Templates applicable to this list. */
1188
+ list_id: number;
1189
+ /** Narrow to one category. */
1190
+ category?: string | null;
1191
+ /** Include graph8's built-in templates as well as the org's own. */
1192
+ include_system_templates?: boolean;
1193
+ };
1194
+ headers?: {
1195
+ "X-Target-Org-Id"?: string | null;
1196
+ };
1197
+ };
1198
+ output: ApiResponse_EnrichmentListPayload_;
1199
+ };
1200
+ /**
1201
+ * GET /enrichment/lists/{list_id}/pipelines/{pipeline_id}/runs
1202
+ * List List Pipeline Runs
1203
+ * tier: read · scope: enrichment:read
1204
+ */
1205
+ list_list_pipeline_runs_enrichment_lists__list_id__pipelines__pipeline_id__runs_get: {
1206
+ input: {
1207
+ path: {
1208
+ list_id: number;
1209
+ /** Pipeline id (UUID). */
1210
+ pipeline_id: string;
1211
+ };
1212
+ query?: {
1213
+ limit?: number;
1214
+ };
1215
+ headers?: {
1216
+ "X-Target-Org-Id"?: string | null;
1217
+ };
1218
+ };
1219
+ output: ApiResponse_EnrichmentPayload_;
1220
+ };
1221
+ /**
1222
+ * GET /enrichment/lists/{list_id}/pipelines
1223
+ * List List Pipelines
1224
+ * tier: read · scope: enrichment:read
1225
+ */
1226
+ list_list_pipelines_enrichment_lists__list_id__pipelines_get: {
1227
+ input: {
1228
+ path: {
1229
+ list_id: number;
1230
+ };
1231
+ headers?: {
1232
+ "X-Target-Org-Id"?: string | null;
1233
+ };
1234
+ };
1235
+ output: ApiResponse_EnrichmentListPayload_;
1236
+ };
1237
+ /**
1238
+ * GET /enrichment/lists/{list_id}/pipeline-step-options
1239
+ * List Pipeline Step Options
1240
+ * tier: read · scope: enrichment:read
1241
+ */
1242
+ list_pipeline_step_options_enrichment_lists__list_id__pipeline_step_options_get: {
1243
+ input: {
1244
+ path: {
1245
+ list_id: number;
1246
+ };
1247
+ headers?: {
1248
+ "X-Target-Org-Id"?: string | null;
1249
+ };
1250
+ };
1251
+ output: ApiResponse_EnrichmentListPayload_;
1252
+ };
1253
+ /**
1254
+ * GET /enrichment/lists/pipeline-templates
1255
+ * List Pipeline Templates
1256
+ * tier: read · scope: enrichment:read
1257
+ */
1258
+ list_pipeline_templates_enrichment_lists_pipeline_templates_get: {
1259
+ input: {
1260
+ query?: {
1261
+ /** Templates applicable to this list. */
1262
+ list_id?: number | null;
1263
+ };
1264
+ headers?: {
1265
+ "X-Target-Org-Id"?: string | null;
1266
+ };
1267
+ };
1268
+ output: ApiResponse_EnrichmentListPayload_;
1269
+ };
1270
+ /**
1271
+ * GET /enrichment/ai/qualification/templates
1272
+ * List Qualification Templates
1273
+ * tier: read · scope: enrichment:read
1274
+ */
1275
+ list_qualification_templates_enrichment_ai_qualification_templates_get: {
1276
+ input: {
1277
+ headers?: {
1278
+ "X-Target-Org-Id"?: string | null;
1279
+ };
1280
+ };
1281
+ output: ApiResponse_EnrichmentPayload_;
1282
+ };
1283
+ /**
1284
+ * GET /enrichment/record-sync/{entity_type}/fields
1285
+ * List Record Sync Fields
1286
+ * tier: read · scope: enrichment:read
1287
+ */
1288
+ list_record_sync_fields_enrichment_record_sync__entity_type__fields_get: {
1289
+ input: {
1290
+ path: {
1291
+ /** Which record kind. */
1292
+ entity_type: "contact" | "company";
1293
+ };
1294
+ headers?: {
1295
+ "X-Target-Org-Id"?: string | null;
1296
+ };
1297
+ };
1298
+ output: ApiResponse_EnrichmentListPayload_;
1299
+ };
1300
+ /**
1301
+ * GET /enrichment/record-sync/{entity_type}/history
1302
+ * List Record Sync History
1303
+ * tier: read · scope: enrichment:read
1304
+ */
1305
+ list_record_sync_history_enrichment_record_sync__entity_type__history_get: {
1306
+ input: {
1307
+ path: {
1308
+ /** Which record kind. */
1309
+ entity_type: "contact" | "company";
1310
+ };
1311
+ query?: {
1312
+ /** Only deliveries in this state. */
1313
+ state?: string | null;
1314
+ /** Cursor: only deliveries created before this. */
1315
+ before?: string | null;
1316
+ limit?: number;
1317
+ };
1318
+ headers?: {
1319
+ "X-Target-Org-Id"?: string | null;
1320
+ };
1321
+ };
1322
+ output: ApiResponse_EnrichmentListPayload_;
1323
+ };
1324
+ /**
1325
+ * GET /enrichment/record-sync/{entity_type}/lists
1326
+ * List Record Sync Lists
1327
+ * tier: read · scope: enrichment:read
1328
+ */
1329
+ list_record_sync_lists_enrichment_record_sync__entity_type__lists_get: {
1330
+ input: {
1331
+ path: {
1332
+ /** Which record kind. */
1333
+ entity_type: "contact" | "company";
1334
+ };
1335
+ query?: {
1336
+ search?: string;
1337
+ /** Cursor: the last list id of the previous page. */
1338
+ after?: number;
1339
+ };
1340
+ headers?: {
1341
+ "X-Target-Org-Id"?: string | null;
1342
+ };
1343
+ };
1344
+ output: ApiResponse_EnrichmentPayload_;
1345
+ };
1346
+ /**
1347
+ * GET /enrichment/list-routing/rules
1348
+ * List Routing Rules
1349
+ * tier: read · scope: enrichment:read
1350
+ */
1351
+ list_routing_rules_enrichment_list_routing_rules_get: {
1352
+ input: {
1353
+ query?: {
1354
+ /** Only rules reading this list. */
1355
+ source_list_id?: number | null;
1356
+ };
1357
+ headers?: {
1358
+ "X-Target-Org-Id"?: string | null;
1359
+ };
1360
+ };
1361
+ output: ApiResponse_EnrichmentListPayload_;
1362
+ };
1363
+ /**
1364
+ * GET /enrichment/waterfall/allowed-columns
1365
+ * List Waterfall Allowed Columns
1366
+ * tier: read · scope: enrichment:read
1367
+ */
1368
+ list_waterfall_allowed_columns_enrichment_waterfall_allowed_columns_get: {
1369
+ input: {
1370
+ query: {
1371
+ /** Which list's columns to report. */
1372
+ list_id: number;
1373
+ };
1374
+ headers?: {
1375
+ "X-Target-Org-Id"?: string | null;
1376
+ };
1377
+ };
1378
+ output: ApiResponse_EnrichmentPayload_;
1379
+ };
1380
+ /**
1381
+ * GET /enrichment/waterfall/configs
1382
+ * List Waterfall Configs
1383
+ * tier: read · scope: enrichment:read
1384
+ */
1385
+ list_waterfall_configs_enrichment_waterfall_configs_get: {
1386
+ input: {
1387
+ query: {
1388
+ /** List ID whose saved pipelines to return */
1389
+ list_id: number;
1390
+ };
1391
+ headers?: {
1392
+ "X-Target-Org-Id"?: string | null;
1393
+ };
1394
+ };
1395
+ output: ApiResponse_WaterfallConfigsResponse_;
1396
+ };
1397
+ /**
1398
+ * GET /enrichment/waterfall/templates
1399
+ * List Waterfall Templates
1400
+ * tier: read · scope: enrichment:read
1401
+ */
1402
+ list_waterfall_templates_enrichment_waterfall_templates_get: {
1403
+ input: {
1404
+ query?: {
1405
+ /** One field, e.g. `CONTACT_WORK_EMAIL`. */
1406
+ field?: string | null;
1407
+ /** Only templates for this list's record type. */
1408
+ list_id?: number | null;
1409
+ };
1410
+ headers?: {
1411
+ "X-Target-Org-Id"?: string | null;
1412
+ };
1413
+ };
1414
+ output: ApiResponse_EnrichmentPayload_;
1415
+ };
1416
+ /**
1417
+ * POST /enrichment/lookup/company
1418
+ * Lookup Company
1419
+ * tier: billable · scope: enrichment:run
1420
+ */
1421
+ lookup_company_enrichment_lookup_company_post: {
1422
+ input: {
1423
+ headers?: {
1424
+ "X-Target-Org-Id"?: string | null;
1425
+ };
1426
+ body: CompanyLookupRequest;
1427
+ };
1428
+ output: ApiResponse_LookupResponse_;
1429
+ };
1430
+ /**
1431
+ * POST /enrichment/lookup/person
1432
+ * Lookup Person
1433
+ * tier: billable · scope: enrichment:run
1434
+ */
1435
+ lookup_person_enrichment_lookup_person_post: {
1436
+ input: {
1437
+ headers?: {
1438
+ "X-Target-Org-Id"?: string | null;
1439
+ };
1440
+ body: PersonLookupRequest;
1441
+ };
1442
+ output: ApiResponse_LookupResponse_;
1443
+ };
1444
+ /**
1445
+ * POST /enrichment/person
1446
+ * Lookup Person (alias of /enrichment/lookup/person)
1447
+ * tier: billable · scope: enrichment:run
1448
+ */
1449
+ lookup_person_alias_enrichment_person_post: {
1450
+ input: {
1451
+ headers?: {
1452
+ "X-Target-Org-Id"?: string | null;
1453
+ };
1454
+ body: PersonLookupRequest;
1455
+ };
1456
+ output: ApiResponse_LookupResponse_;
1457
+ };
1458
+ /**
1459
+ * POST /enrichment/jobs/{job_id}/pause
1460
+ * Pause Enrichment Job
1461
+ * tier: write · scope: enrichment:write
1462
+ */
1463
+ pause_enrichment_job_enrichment_jobs__job_id__pause_post: {
1464
+ input: {
1465
+ path: {
1466
+ /** Enrichment job id (UUID). */
1467
+ job_id: string;
1468
+ };
1469
+ headers?: {
1470
+ "X-Target-Org-Id"?: string | null;
1471
+ };
1472
+ body?: JobControlRequest | null;
1473
+ };
1474
+ output: ApiResponse_EnrichmentPayload_;
1475
+ };
1476
+ /**
1477
+ * POST /enrichment/find-people/{config_id}/preview
1478
+ * Preview Find People
1479
+ * tier: billable · scope: enrichment:run
1480
+ */
1481
+ preview_find_people_enrichment_find_people__config_id__preview_post: {
1482
+ input: {
1483
+ path: {
1484
+ /** Find-people configuration id (UUID). */
1485
+ config_id: string;
1486
+ };
1487
+ query: {
1488
+ /** The company to preview. */
1489
+ company_id: number;
1490
+ };
1491
+ headers?: {
1492
+ "X-Target-Org-Id"?: string | null;
1493
+ };
1494
+ };
1495
+ output: ApiResponse_EnrichmentPayload_;
1496
+ };
1497
+ /**
1498
+ * POST /enrichment/ai-formula/preview
1499
+ * Preview Formula
1500
+ * tier: read · scope: enrichment:read
1501
+ */
1502
+ preview_formula_enrichment_ai_formula_preview_post: {
1503
+ input: {
1504
+ headers?: {
1505
+ "X-Target-Org-Id"?: string | null;
1506
+ };
1507
+ body: AIFormulaPreviewRequest;
1508
+ };
1509
+ output: ApiResponse_EnrichmentPayload_;
1510
+ };
1511
+ /**
1512
+ * POST /enrichment/record-sync/{entity_type}/preview
1513
+ * Preview Record Sync
1514
+ * tier: read · scope: enrichment:read
1515
+ */
1516
+ preview_record_sync_enrichment_record_sync__entity_type__preview_post: {
1517
+ input: {
1518
+ path: {
1519
+ /** Which record kind. */
1520
+ entity_type: "contact" | "company";
1521
+ };
1522
+ headers?: {
1523
+ "X-Target-Org-Id"?: string | null;
1524
+ };
1525
+ body: RecordSyncPreviewRequest;
1526
+ };
1527
+ output: ApiResponse_EnrichmentPayload_;
1528
+ };
1529
+ /**
1530
+ * POST /enrichment/list-routing/rules/preview
1531
+ * Preview Routing Rule
1532
+ * tier: read · scope: enrichment:read
1533
+ */
1534
+ preview_routing_rule_enrichment_list_routing_rules_preview_post: {
1535
+ input: {
1536
+ headers?: {
1537
+ "X-Target-Org-Id"?: string | null;
1538
+ };
1539
+ body: PreviewRoutingRequest;
1540
+ };
1541
+ output: ApiResponse_EnrichmentPayload_;
1542
+ };
1543
+ /**
1544
+ * PUT /enrichment/ai/configs/{group_id}/rename
1545
+ * Rename Ai Enrichment Column
1546
+ * tier: write · scope: enrichment:write
1547
+ */
1548
+ rename_ai_enrichment_column_enrichment_ai_configs__group_id__rename_put: {
1549
+ input: {
1550
+ path: {
1551
+ /** AI group id. */
1552
+ group_id: string;
1553
+ };
1554
+ headers?: {
1555
+ "X-Target-Org-Id"?: string | null;
1556
+ };
1557
+ body: RenameAIColumnRequest;
1558
+ };
1559
+ output: ApiResponse_EnrichmentPayload_;
1560
+ };
1561
+ /**
1562
+ * POST /enrichment/jobs/{job_id}/resume
1563
+ * Resume Enrichment Job
1564
+ * tier: billable · scope: enrichment:run
1565
+ */
1566
+ resume_enrichment_job_enrichment_jobs__job_id__resume_post: {
1567
+ input: {
1568
+ path: {
1569
+ /** Enrichment job id (UUID). */
1570
+ job_id: string;
1571
+ };
1572
+ headers?: {
1573
+ "X-Target-Org-Id"?: string | null;
1574
+ };
1575
+ };
1576
+ output: ApiResponse_EnrichmentPayload_;
1577
+ };
1578
+ /**
1579
+ * POST /enrichment/record-sync/{entity_type}/review
1580
+ * Review Record Sync Change
1581
+ * tier: write · scope: enrichment:write
1582
+ */
1583
+ review_record_sync_change_enrichment_record_sync__entity_type__review_post: {
1584
+ input: {
1585
+ path: {
1586
+ /** Which record kind. */
1587
+ entity_type: "contact" | "company";
1588
+ };
1589
+ headers?: {
1590
+ "X-Target-Org-Id"?: string | null;
1591
+ };
1592
+ body: ReviewRequest;
1593
+ };
1594
+ output: ApiResponse_EnrichmentPayload_;
1595
+ };
1596
+ /**
1597
+ * POST /enrichment/ai/enrich
1598
+ * Run Ai Enrichment
1599
+ * tier: billable · scope: enrichment:run
1600
+ */
1601
+ run_ai_enrichment_enrichment_ai_enrich_post: {
1602
+ input: {
1603
+ headers?: {
1604
+ "X-Target-Org-Id"?: string | null;
1605
+ };
1606
+ body: RunAIEnrichRequest;
1607
+ };
1608
+ output: ApiResponse_EnrichJobResponse_;
1609
+ };
1610
+ /**
1611
+ * POST /enrichment/find-people/{config_id}/run
1612
+ * Run Find People
1613
+ * tier: billable · scope: enrichment:run
1614
+ */
1615
+ run_find_people_enrichment_find_people__config_id__run_post: {
1616
+ input: {
1617
+ path: {
1618
+ /** Find-people configuration id (UUID). */
1619
+ config_id: string;
1620
+ };
1621
+ headers?: {
1622
+ "X-Target-Org-Id"?: string | null;
1623
+ };
1624
+ body: RunFindPeopleRequest;
1625
+ };
1626
+ output: ApiResponse_EnrichmentPayload_;
1627
+ };
1628
+ /**
1629
+ * POST /enrichment/formula/configs/{column_id}/run
1630
+ * Run Formula Column
1631
+ * tier: write · scope: enrichment:write
1632
+ */
1633
+ run_formula_column_enrichment_formula_configs__column_id__run_post: {
1634
+ input: {
1635
+ path: {
1636
+ /** The enrichment column id. */
1637
+ column_id: string;
1638
+ };
1639
+ query?: {
1640
+ /** Scope to a list's configuration. */
1641
+ list_id?: number | null;
1642
+ };
1643
+ headers?: {
1644
+ "X-Target-Org-Id"?: string | null;
1645
+ };
1646
+ body?: RunFormulaRequest | null;
1647
+ };
1648
+ output: ApiResponse_EnrichmentPayload_;
1649
+ };
1650
+ /**
1651
+ * POST /enrichment/lists/{list_id}/pipelines/{pipeline_id}/runs
1652
+ * Run List Pipeline
1653
+ * tier: billable · scope: enrichment:run
1654
+ */
1655
+ run_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__runs_post: {
1656
+ input: {
1657
+ path: {
1658
+ list_id: number;
1659
+ /** Pipeline id (UUID). */
1660
+ pipeline_id: string;
1661
+ };
1662
+ headers?: {
1663
+ "X-Target-Org-Id"?: string | null;
1664
+ };
1665
+ };
1666
+ output: ApiResponse_EnrichmentPayload_;
1667
+ };
1668
+ /**
1669
+ * POST /enrichment/ai/qualification/run
1670
+ * Run Qualification
1671
+ * tier: billable · scope: enrichment:run
1672
+ */
1673
+ run_qualification_enrichment_ai_qualification_run_post: {
1674
+ input: {
1675
+ headers?: {
1676
+ "X-Target-Org-Id"?: string | null;
1677
+ };
1678
+ body: RunQualificationRequest;
1679
+ };
1680
+ output: ApiResponse_EnrichmentPayload_;
1681
+ };
1682
+ /**
1683
+ * POST /enrichment/record-sync/{entity_type}/run
1684
+ * Run Record Sync
1685
+ * tier: billable · scope: enrichment:run
1686
+ */
1687
+ run_record_sync_enrichment_record_sync__entity_type__run_post: {
1688
+ input: {
1689
+ path: {
1690
+ /** Which record kind. */
1691
+ entity_type: "contact" | "company";
1692
+ };
1693
+ headers?: {
1694
+ "X-Target-Org-Id"?: string | null;
1695
+ };
1696
+ body: RecordSyncRunRequest;
1697
+ };
1698
+ output: ApiResponse_EnrichmentPayload_;
1699
+ };
1700
+ /**
1701
+ * POST /enrichment/waterfall/enrich
1702
+ * Run Waterfall Pipeline
1703
+ * tier: billable · scope: enrichment:run
1704
+ */
1705
+ run_waterfall_pipeline_enrichment_waterfall_enrich_post: {
1706
+ input: {
1707
+ headers?: {
1708
+ "X-Target-Org-Id"?: string | null;
1709
+ };
1710
+ body: RunWaterfallEnrichRequest;
1711
+ };
1712
+ output: ApiResponse_EnrichJobResponse_;
1713
+ };
1714
+ /**
1715
+ * POST /enrichment/ai/configs
1716
+ * Save Ai Enrichment Config
1717
+ * tier: write · scope: enrichment:write
1718
+ */
1719
+ save_ai_enrichment_config_enrichment_ai_configs_post: {
1720
+ input: {
1721
+ headers?: {
1722
+ "X-Target-Org-Id"?: string | null;
1723
+ };
1724
+ body: SaveAIConfigRequest;
1725
+ };
1726
+ output: ApiResponse_EnrichmentPayload_;
1727
+ };
1728
+ /**
1729
+ * POST /enrichment/find-people/search-import
1730
+ * Search Import Find People
1731
+ * tier: billable · scope: enrichment:run
1732
+ */
1733
+ search_import_find_people_enrichment_find_people_search_import_post: {
1734
+ input: {
1735
+ headers?: {
1736
+ "X-Target-Org-Id"?: string | null;
1737
+ };
1738
+ body: SearchImportRequest;
1739
+ };
1740
+ output: ApiResponse_EnrichmentPayload_;
1741
+ };
1742
+ /**
1743
+ * POST /enrichment/lists/{list_id}/pipelines/{pipeline_id}/enabled
1744
+ * Set Pipeline Enabled
1745
+ * tier: billable · scope: enrichment:run
1746
+ */
1747
+ set_pipeline_enabled_enrichment_lists__list_id__pipelines__pipeline_id__enabled_post: {
1748
+ input: {
1749
+ path: {
1750
+ list_id: number;
1751
+ /** Pipeline id (UUID). */
1752
+ pipeline_id: string;
1753
+ };
1754
+ headers?: {
1755
+ "X-Target-Org-Id"?: string | null;
1756
+ };
1757
+ body: SetPipelineEnabledRequest;
1758
+ };
1759
+ output: ApiResponse_EnrichmentPayload_;
1760
+ };
1761
+ /**
1762
+ * POST /enrichment/ai/batch/enrich
1763
+ * Start Ai Batch Enrichment
1764
+ * tier: billable · scope: enrichment:run
1765
+ */
1766
+ start_ai_batch_enrichment_enrichment_ai_batch_enrich_post: {
1767
+ input: {
1768
+ headers?: {
1769
+ "X-Target-Org-Id"?: string | null;
1770
+ };
1771
+ body: AIBatchEnrichmentRequest;
1772
+ };
1773
+ output: ApiResponse_EnrichmentPayload_;
1774
+ };
1775
+ /**
1776
+ * POST /enrichment/enrich
1777
+ * Start Enrichment
1778
+ * tier: billable · scope: enrichment:run
1779
+ */
1780
+ start_enrichment_enrichment_enrich_post: {
1781
+ input: {
1782
+ headers?: {
1783
+ "X-Target-Org-Id"?: string | null;
1784
+ };
1785
+ body: EnrichRequest;
1786
+ };
1787
+ output: ApiResponse_EnrichJobResponse_;
1788
+ };
1789
+ /**
1790
+ * DELETE /enrichment/configs/{config_id}/assignments/{list_id}
1791
+ * Unassign Config From List
1792
+ * tier: destructive · scope: enrichment:delete
1793
+ */
1794
+ unassign_config_from_list_enrichment_configs__config_id__assignments__list_id__delete: {
1795
+ input: {
1796
+ path: {
1797
+ config_id: string;
1798
+ list_id: number;
1799
+ };
1800
+ headers?: {
1801
+ "X-Target-Org-Id"?: string | null;
1802
+ };
1803
+ };
1804
+ output: ApiResponse_EnrichmentPayload_;
1805
+ };
1806
+ /**
1807
+ * PUT /enrichment/ai/configs/{group_id}
1808
+ * Update Ai Configuration
1809
+ * tier: write · scope: enrichment:write
1810
+ */
1811
+ update_ai_configuration_enrichment_ai_configs__group_id__put: {
1812
+ input: {
1813
+ path: {
1814
+ /** The AI group id. */
1815
+ group_id: string;
1816
+ };
1817
+ headers?: {
1818
+ "X-Target-Org-Id"?: string | null;
1819
+ };
1820
+ body: UpdateAIConfigRequest;
1821
+ };
1822
+ output: ApiResponse_EnrichmentPayload_;
1823
+ };
1824
+ /**
1825
+ * PATCH /enrichment/auto-enrichment/configs/{config_id}
1826
+ * Update Auto Enrichment Config
1827
+ * tier: billable · scope: enrichment:run
1828
+ */
1829
+ update_auto_enrichment_config_enrichment_auto_enrichment_configs__config_id__patch: {
1830
+ input: {
1831
+ path: {
1832
+ /** Configuration id (UUID). */
1833
+ config_id: string;
1834
+ };
1835
+ headers?: {
1836
+ "X-Target-Org-Id"?: string | null;
1837
+ };
1838
+ body: UpdateAutoEnrichmentConfigRequest;
1839
+ };
1840
+ output: ApiResponse_EnrichmentPayload_;
1841
+ };
1842
+ /**
1843
+ * PUT /enrichment/auto-enrichment/settings/{entity_type}
1844
+ * Update Auto Enrichment Settings
1845
+ * tier: billable · scope: enrichment:run
1846
+ */
1847
+ update_auto_enrichment_settings_enrichment_auto_enrichment_settings__entity_type__put: {
1848
+ input: {
1849
+ path: {
1850
+ /** Which record kind. */
1851
+ entity_type: "contact" | "company";
1852
+ };
1853
+ headers?: {
1854
+ "X-Target-Org-Id"?: string | null;
1855
+ };
1856
+ body: UpdateAutoEnrichmentSettingsRequest;
1857
+ };
1858
+ output: ApiResponse_EnrichmentPayload_;
1859
+ };
1860
+ /**
1861
+ * PUT /enrichment/configs/{config_id}
1862
+ * Update Enrichment Config
1863
+ * tier: write · scope: enrichment:write
1864
+ */
1865
+ update_enrichment_config_enrichment_configs__config_id__put: {
1866
+ input: {
1867
+ path: {
1868
+ /** Enrichment configuration id (UUID). */
1869
+ config_id: string;
1870
+ };
1871
+ headers?: {
1872
+ "X-Target-Org-Id"?: string | null;
1873
+ };
1874
+ body: EnrichmentConfigUpdateRequest;
1875
+ };
1876
+ output: ApiResponse_EnrichmentPayload_;
1877
+ };
1878
+ /**
1879
+ * PATCH /enrichment/records/{record_id}/fields/{column_id}
1880
+ * Update Enrichment Field
1881
+ * tier: write · scope: enrichment:write
1882
+ */
1883
+ update_enrichment_field_enrichment_records__record_id__fields__column_id__patch: {
1884
+ input: {
1885
+ path: {
1886
+ /** Record id. */
1887
+ record_id: number;
1888
+ /** Enrichment column id. */
1889
+ column_id: string;
1890
+ };
1891
+ headers?: {
1892
+ "X-Target-Org-Id"?: string | null;
1893
+ };
1894
+ body: UpdateEnrichmentFieldRequest;
1895
+ };
1896
+ output: ApiResponse_EnrichmentPayload_;
1897
+ };
1898
+ /**
1899
+ * PUT /enrichment/find-people/{config_id}
1900
+ * Update Find People Config
1901
+ * tier: write · scope: enrichment:write
1902
+ */
1903
+ update_find_people_config_enrichment_find_people__config_id__put: {
1904
+ input: {
1905
+ path: {
1906
+ /** Configuration id (UUID). */
1907
+ config_id: string;
1908
+ };
1909
+ headers?: {
1910
+ "X-Target-Org-Id"?: string | null;
1911
+ };
1912
+ body: UpdateFindPeopleConfigRequest;
1913
+ };
1914
+ output: ApiResponse_EnrichmentPayload_;
1915
+ };
1916
+ /**
1917
+ * PUT /enrichment/formula/configs/{column_id}
1918
+ * Update Formula Configuration
1919
+ * tier: write · scope: enrichment:write
1920
+ */
1921
+ update_formula_configuration_enrichment_formula_configs__column_id__put: {
1922
+ input: {
1923
+ path: {
1924
+ /** The enrichment column id. */
1925
+ column_id: string;
1926
+ };
1927
+ query?: {
1928
+ /** Scope to a list's configuration. */
1929
+ list_id?: number | null;
1930
+ };
1931
+ headers?: {
1932
+ "X-Target-Org-Id"?: string | null;
1933
+ };
1934
+ body: UpdateFormulaConfigRequest;
1935
+ };
1936
+ output: ApiResponse_EnrichmentPayload_;
1937
+ };
1938
+ /**
1939
+ * PUT /enrichment/lists/{list_id}/pipelines/{pipeline_id}
1940
+ * Update List Pipeline
1941
+ * tier: billable · scope: enrichment:run
1942
+ */
1943
+ update_list_pipeline_enrichment_lists__list_id__pipelines__pipeline_id__put: {
1944
+ input: {
1945
+ path: {
1946
+ list_id: number;
1947
+ /** Pipeline id (UUID). */
1948
+ pipeline_id: string;
1949
+ };
1950
+ headers?: {
1951
+ "X-Target-Org-Id"?: string | null;
1952
+ };
1953
+ body: UpdateListPipelineRequest;
1954
+ };
1955
+ output: ApiResponse_EnrichmentPayload_;
1956
+ };
1957
+ /**
1958
+ * PUT /enrichment/ai/qualification/templates/{template_id}
1959
+ * Update Qualification Template
1960
+ * tier: write · scope: enrichment:write
1961
+ */
1962
+ update_qualification_template_enrichment_ai_qualification_templates__template_id__put: {
1963
+ input: {
1964
+ path: {
1965
+ /** Qualification template id (UUID). */
1966
+ template_id: string;
1967
+ };
1968
+ headers?: {
1969
+ "X-Target-Org-Id"?: string | null;
1970
+ };
1971
+ body: UpdateQualificationTemplateRequest;
1972
+ };
1973
+ output: ApiResponse_EnrichmentPayload_;
1974
+ };
1975
+ /**
1976
+ * PUT /enrichment/record-sync/{entity_type}/policy
1977
+ * Update Record Sync Policy
1978
+ * tier: billable · scope: enrichment:run
1979
+ */
1980
+ update_record_sync_policy_enrichment_record_sync__entity_type__policy_put: {
1981
+ input: {
1982
+ path: {
1983
+ /** Which record kind this policy governs. */
1984
+ entity_type: "contact" | "company";
1985
+ };
1986
+ headers?: {
1987
+ "X-Target-Org-Id"?: string | null;
1988
+ };
1989
+ body: UpdateMashupSyncPolicyRequest;
1990
+ };
1991
+ output: ApiResponse_EnrichmentPayload_;
1992
+ };
1993
+ /**
1994
+ * PUT /enrichment/waterfall/configs/{column_id}
1995
+ * Update Waterfall Configuration
1996
+ * tier: billable · scope: enrichment:run
1997
+ */
1998
+ update_waterfall_configuration_enrichment_waterfall_configs__column_id__put: {
1999
+ input: {
2000
+ path: {
2001
+ /** The enrichment column id. */
2002
+ column_id: string;
2003
+ };
2004
+ headers?: {
2005
+ "X-Target-Org-Id"?: string | null;
2006
+ };
2007
+ body: UpdateWaterfallConfigRequest;
2008
+ };
2009
+ output: ApiResponse_EnrichmentPayload_;
2010
+ };
2011
+ /**
2012
+ * POST /enrichment/ai/validate-credits
2013
+ * Validate Ai Enrichment Credits
2014
+ * tier: read · scope: enrichment:read
2015
+ */
2016
+ validate_ai_enrichment_credits_enrichment_ai_validate_credits_post: {
2017
+ input: {
2018
+ headers?: {
2019
+ "X-Target-Org-Id"?: string | null;
2020
+ };
2021
+ body: ValidateCreditsRequest;
2022
+ };
2023
+ output: ApiResponse_EnrichmentPayload_;
2024
+ };
2025
+ /**
2026
+ * POST /enrichment/ai-formula/validate
2027
+ * Validate Formula
2028
+ * tier: read · scope: enrichment:read
2029
+ */
2030
+ validate_formula_enrichment_ai_formula_validate_post: {
2031
+ input: {
2032
+ headers?: {
2033
+ "X-Target-Org-Id"?: string | null;
2034
+ };
2035
+ body: AIFormulaValidateRequest;
2036
+ };
2037
+ output: ApiResponse_EnrichmentPayload_;
2038
+ };
2039
+ /**
2040
+ * POST /enrichment/waterfall/validate-credits
2041
+ * Validate Waterfall Enrichment Credits
2042
+ * tier: read · scope: enrichment:read
2043
+ */
2044
+ validate_waterfall_enrichment_credits_enrichment_waterfall_validate_credits_post: {
2045
+ input: {
2046
+ headers?: {
2047
+ "X-Target-Org-Id"?: string | null;
2048
+ };
2049
+ body: ValidateWaterfallCreditsRequest;
2050
+ };
2051
+ output: ApiResponse_EnrichmentPayload_;
2052
+ };
2053
+ /**
2054
+ * POST /enrichment/verify-email
2055
+ * Verify Email
2056
+ * tier: billable · scope: enrichment:run
2057
+ */
2058
+ verify_email_enrichment_verify_email_post: {
2059
+ input: {
2060
+ headers?: {
2061
+ "X-Target-Org-Id"?: string | null;
2062
+ };
2063
+ body: VerifyEmailRequest;
2064
+ };
2065
+ output: ApiResponse_VerifyEmailResponse_;
2066
+ };
2067
+ }
2068
+
2069
+ // 102 schemas referenced above (the same as G8Contract.<Name>).
2070
+
2071
+ /**
2072
+ * Run a saved AI group over a list. CHARGES per record.
2073
+ *
2074
+ * `enrichment_mode: all` runs EVERY record in the list; `specific` runs only
2075
+ * `record_ids`. `dry_run` returns the record count and price and dispatches
2076
+ * nothing.
2077
+ */
2078
+ export interface AIBatchEnrichmentRequest {
2079
+ /** Accepted; not applied by dispatch. */
2080
+ allow_credit_deduction?: boolean;
2081
+ dry_run?: boolean;
2082
+ enrichment_mode?: "specific" | "all";
2083
+ /** Accepted; not applied by dispatch. */
2084
+ filter?: Record<string, unknown> | null;
2085
+ group_id: string;
2086
+ list_id: number;
2087
+ model?: string | null;
2088
+ /** Accepted; not applied by dispatch. */
2089
+ priority?: number;
2090
+ record_ids?: (Array<number | string>) | null;
2091
+ skip_existing_values?: boolean;
2092
+ skip_recently_enriched?: boolean;
2093
+ usecase?: string | null;
2094
+ }
2095
+
2096
+ /** Where one output field lands. */
2097
+ export interface AIColumnMappingDto {
2098
+ column_id: string;
2099
+ column_name: string;
2100
+ output_field: string;
2101
+ }
2102
+
2103
+ /** Execution settings for an AI enrichment group. */
2104
+ export interface AIConfigDto {
2105
+ /** Re-run when new data arrives. ONGOING SPEND when true. */
2106
+ auto_update?: boolean;
2107
+ find_people?: AIFindPeopleSettingsDto | null;
2108
+ list_routing?: ListRoutingDto | null;
2109
+ mode?: "standard" | "find_people";
2110
+ run_condition?: string | null;
2111
+ scope?: ("company" | "contact" | "combined") | null;
2112
+ /** Skip rows that already have a value - the main cost control. */
2113
+ skip_existing_values?: boolean;
2114
+ /** Skip rows enriched in the last 30 days. */
2115
+ skip_recently_enriched?: boolean;
2116
+ use_advanced_search?: boolean;
2117
+ use_json?: boolean;
2118
+ }
2119
+
2120
+ /**
2121
+ * One saved AI enrichment config attached to (or global for) a list.
2122
+ *
2123
+ * `group_id` is the handle the worker uses to load the prompt, model and
2124
+ * output mapping. `usecase` lets the client predict credit cost via
2125
+ * enrichment.constants.AI_USECASE_CREDITS (e.g. web-research = 3 credits/record).
2126
+ */
2127
+ export interface AIConfigSummary {
2128
+ group_id: string;
2129
+ is_active?: boolean;
2130
+ is_global?: boolean;
2131
+ list_id?: number | null;
2132
+ name: string;
2133
+ /** Use-case identifier (e.g. "web-research", "content-generation"). */
2134
+ usecase?: string | null;
2135
+ }
2136
+
2137
+ /** Paginated (by list_id filter) collection of AI enrichment configs. */
2138
+ export interface AIConfigsResponse {
2139
+ configs?: Array<AIConfigSummary>;
2140
+ count?: number;
2141
+ list_id?: number | null;
2142
+ }
2143
+
2144
+ /** A full AI enrichment group definition. */
2145
+ export interface AIEnrichmentConfigDto {
2146
+ column_mappings?: Array<AIColumnMappingDto>;
2147
+ config: AIConfigDto;
2148
+ created_at?: string | null;
2149
+ created_by?: string | null;
2150
+ description?: string | null;
2151
+ group_id?: string | null;
2152
+ id?: string | null;
2153
+ input_mapping: Array<string>;
2154
+ is_global?: boolean;
2155
+ json_schema?: (Record<string, "string" | "number" | "boolean">) | null;
2156
+ list_id?: number | null;
2157
+ model: string;
2158
+ name?: string | null;
2159
+ org_id?: string | null;
2160
+ output_format?: string;
2161
+ outputs: Array<AIOutputFieldDto>;
2162
+ prompt: string;
2163
+ updated_at?: string | null;
2164
+ usecase: string;
2165
+ }
2166
+
2167
+ /** Find-people mode settings for an AI group. */
2168
+ export interface AIFindPeopleSettingsDto {
2169
+ destination_table_id?: string | null;
2170
+ destination_table_name?: string | null;
2171
+ /** `auto` exports found contacts without a human step; `review` holds them. */
2172
+ export_mode?: "auto" | "review";
2173
+ max_people?: number;
2174
+ review_store?: "source_metadata";
2175
+ }
2176
+
2177
+ /** Turn a plain-language description into a formula. One model call. */
2178
+ export interface AIFormulaGenerateRequest {
2179
+ /** Hint only: fields are read from your data. */
2180
+ fields?: Array<string>;
2181
+ /** Hint for the output kind. */
2182
+ outputType?: string;
2183
+ prompt: string;
2184
+ sampleData?: Record<string, unknown>;
2185
+ }
2186
+
2187
+ /** Evaluate a formula over sample rows you supply. Local, no model call. */
2188
+ export interface AIFormulaPreviewRequest {
2189
+ fields?: Array<string>;
2190
+ formula: string;
2191
+ /** Up to 10 rows are evaluated. */
2192
+ sampleData: Array<Record<string, unknown>>;
2193
+ }
2194
+
2195
+ /** Check a formula's syntax and field references. */
2196
+ export interface AIFormulaValidateRequest {
2197
+ formula: string;
2198
+ }
2199
+
2200
+ /** One field the AI pass is asked to return. */
2201
+ export interface AIOutputFieldDto {
2202
+ name: string;
2203
+ type: string;
2204
+ }
2205
+
2206
+ /** Draft an enrichment pipeline from a stated goal. Returns a draft only. */
2207
+ export interface AIPipelineDraftRequest {
2208
+ goal: string;
2209
+ /** Prefer cheaper steps when drafting. */
2210
+ prioritize_cost?: boolean;
2211
+ qualification_mode?: "auto" | "required" | "skip";
2212
+ }
2213
+
2214
+ /**
2215
+ * Describe in words when an enrichment should run; get back an expression.
2216
+ *
2217
+ * The app takes a FREE DICT here, so this model takes one too rather than
2218
+ * narrowing below it - every field is optional and unknown keys are forwarded
2219
+ * untouched. Narrowing would refuse a body the browser accepts, which is the
2220
+ * mirror image of the bug the strict models elsewhere in this file prevent.
2221
+ */
2222
+ export interface AIRunConditionRequest {
2223
+ /** 'contacts' or 'companies'. */
2224
+ entityType?: string | null;
2225
+ /** Fields the expression may use. */
2226
+ fields?: Array<string> | null;
2227
+ /** The rule in plain words. */
2228
+ prompt?: string | null;
2229
+ /** One sample record. */
2230
+ sampleData?: Record<string, unknown> | null;
2231
+ [key: string]: unknown;
2232
+ }
2233
+
2234
+ export interface ApiResponse_AIConfigsResponse_ {
2235
+ data: AIConfigsResponse;
2236
+ pagination?: PaginationMeta | null;
2237
+ }
2238
+
2239
+ export interface ApiResponse_CreateDefaultWaterfallConfigResponse_ {
2240
+ data: CreateDefaultWaterfallConfigResponse;
2241
+ pagination?: PaginationMeta | null;
2242
+ }
2243
+
2244
+ export interface ApiResponse_EnrichJobResponse_ {
2245
+ data: EnrichJobResponse;
2246
+ pagination?: PaginationMeta | null;
2247
+ }
2248
+
2249
+ export interface ApiResponse_EnrichmentListPayload_ {
2250
+ data: EnrichmentListPayload;
2251
+ pagination?: PaginationMeta | null;
2252
+ }
2253
+
2254
+ export interface ApiResponse_EnrichmentPayload_ {
2255
+ data: EnrichmentPayload;
2256
+ pagination?: PaginationMeta | null;
2257
+ }
2258
+
2259
+ export interface ApiResponse_LookupResponse_ {
2260
+ data: LookupResponse;
2261
+ pagination?: PaginationMeta | null;
2262
+ }
2263
+
2264
+ export interface ApiResponse_ProviderCatalogResponse_ {
2265
+ data: ProviderCatalogResponse;
2266
+ pagination?: PaginationMeta | null;
2267
+ }
2268
+
2269
+ export interface ApiResponse_VerifyEmailResponse_ {
2270
+ data: VerifyEmailResponse;
2271
+ pagination?: PaginationMeta | null;
2272
+ }
2273
+
2274
+ export interface ApiResponse_WaterfallConfigsResponse_ {
2275
+ data: WaterfallConfigsResponse;
2276
+ pagination?: PaginationMeta | null;
2277
+ }
2278
+
2279
+ /** Make a configuration available on more lists. */
2280
+ export interface AssignListsRequest {
2281
+ list_ids: Array<number>;
2282
+ }
2283
+
2284
+ /** Which columns travel with a routed record. */
2285
+ export interface ColumnConfigDto {
2286
+ /** 'all' copies every column; 'selected' uses the list below. */
2287
+ mode?: string;
2288
+ selected_column_ids?: Array<string>;
2289
+ static_values?: Record<string, string>;
2290
+ }
2291
+
2292
+ /** Map a search result field onto a destination column. */
2293
+ export interface ColumnMappingDto {
2294
+ source_field: string;
2295
+ target_column: string;
2296
+ }
2297
+
2298
+ export interface CompanyLookupRequest {
2299
+ /** Company domain */
2300
+ domain?: string | null;
2301
+ /** Company name */
2302
+ name?: string | null;
2303
+ }
2304
+
2305
+ /** One routing condition. */
2306
+ export interface ConditionDto {
2307
+ field: string;
2308
+ operator: string;
2309
+ value?: unknown;
2310
+ value_to?: unknown;
2311
+ }
2312
+
2313
+ /** Set up a people search across a company list. */
2314
+ export interface ConfigureFindPeopleRequest {
2315
+ /** Import results as soon as they are found, with no review step. This is what turns a saved configuration into an immediate run. */
2316
+ auto_import?: boolean;
2317
+ column_mappings?: Array<ColumnMappingDto> | null;
2318
+ company_identifier_column?: string | null;
2319
+ create_new_list?: boolean;
2320
+ destination_list_id?: number | null;
2321
+ /** Source COMPANY list. */
2322
+ list_id: number;
2323
+ max_people_per_company?: number;
2324
+ max_total_people?: number | null;
2325
+ name: string;
2326
+ new_list_name?: string | null;
2327
+ search_filters?: Array<SearchFilterDto>;
2328
+ skip_across_companies?: boolean;
2329
+ skip_existing_in_destination?: boolean;
2330
+ }
2331
+
2332
+ /** Enrich every record that lands on a list. ARMS ONGOING SPEND. */
2333
+ export interface CreateAutoEnrichmentConfigRequest {
2334
+ /** The list. */
2335
+ audience_id: number;
2336
+ /** The waterfall column or AI group id. */
2337
+ column_id: string;
2338
+ enrichment_type: "waterfall" | "ai";
2339
+ trigger_on_insert?: boolean;
2340
+ }
2341
+
2342
+ /**
2343
+ * Create (or reuse) a waterfall pipeline for a list.
2344
+ *
2345
+ * Three call-styles, in increasing order of control:
2346
+ *
2347
+ * 1. **Bare** — pass only `list_id`. Server builds a single-step graph8
2348
+ * lookup pipeline that fills name/email/company for 0 credits.
2349
+ * Backward-compatible with the pre-2026-06 contract.
2350
+ * 2. **By providers** — pass `providers=["hunter","prospeo"]`. Server maps
2351
+ * each provider to its default email-finder action (see provider matrix
2352
+ * in `docs/developer-api-reference.md`) and ordered steps. Use this when
2353
+ * you want a 1-line "try these providers, in this order" pipeline.
2354
+ * 3. **By steps** — pass `steps=[...]` with full step shapes. Server
2355
+ * persists them verbatim. Use this when you need provider-specific
2356
+ * config (e.g. apollo `reveal_phone_numbers=true`).
2357
+ *
2358
+ * `providers[]` and `steps[]` are mutually exclusive — pass one or
2359
+ * neither, not both. `email_verification` may be combined with any
2360
+ * call-style; when set it runs after the main waterfall and follows the
2361
+ * same credit + valid-status rules the UI uses.
2362
+ *
2363
+ * `list_id` is required; everything else has a sensible default so callers
2364
+ * pass the minimum. `skip_existing_values` defaults True so we never
2365
+ * overwrite populated fields. Idempotent by `(list_id, name)`.
2366
+ */
2367
+ export interface CreateDefaultWaterfallConfigRequest {
2368
+ /** How to resolve each provider step's credential source. Applies to the `providers[]` shortcut and the bare default; `steps[]` payloads always honor their own per-step `is_system_provider`. 'auto' (default, matches the UI): for each provider use the org's BYOK key when one is configured (free), otherwise graph8's system key for funded providers (charges credits). 'system': force graph8 system keys for funded providers (charges credits). 'byok': force the org's own keys for every non-graph8 provider (legacy behavior — steps silently skip when no key exists). graph8 is always system-funded regardless of mode. */
2369
+ credential_mode?: "auto" | "system" | "byok";
2370
+ /** Optional post-enrichment email verification config. When set, ZeroBounce/Hunter/Icypeas/LeadMagic runs after the main waterfall and writes verification status into the column. */
2371
+ email_verification?: EmailVerificationInput | null;
2372
+ /** Canonical enrichment column to fill — CONTACT_DIRECT_PHONE, CONTACT_MOBILE_PHONE, CONTACT_WORK_EMAIL, CONTACT_PERSONAL_EMAILS, CONTACT_LINKEDIN_URL, COMPANY_PHONE, COMPANY_LINKEDIN_URL — or a friendly synonym ('phone', 'mobile', 'email', 'linkedin', 'company_phone'). When set, the pipeline is built from the server's per-field waterfall TEMPLATE, so each provider runs its CORRECT action for that column (e.g. leadmagic `mobile_finder` for a phone, not `email_finder`), and the enriched value is written into the real contact/company column — exactly like the web UI's 'enrich existing column' flow. Combine with `providers[]` to keep only those providers from the template (their correct per-field action is preserved). Mutually exclusive with `steps[]`. When omitted, the legacy bare/`providers[]` email-finder behavior is unchanged. */
2373
+ field?: string | null;
2374
+ /** Target field identifier for this pipeline (legacy; ignored when `field` is set) */
2375
+ field_to_enrich?: string;
2376
+ /** List ID to attach the pipeline to */
2377
+ list_id: number;
2378
+ /** Human-readable name for the pipeline */
2379
+ name?: string;
2380
+ /** Ordered list of provider names — server builds default email-finder steps in this order. Mutually exclusive with `steps`. Allowed providers: graph8, hunter, prospeo, dropcontact, icypeas, leadmagic, emaillistverify, apollo, lusha, rocketreach. Use `steps[]` for full control. */
2381
+ providers?: Array<string> | null;
2382
+ /** If true, the pipeline skips contacts where the target field is already populated */
2383
+ skip_existing_values?: boolean;
2384
+ /** Full caller-supplied step list (advanced). Persisted verbatim into the pipeline. Mutually exclusive with `providers`. */
2385
+ steps?: Array<WaterfallStepInput> | null;
2386
+ }
2387
+
2388
+ /** Result of creating (or reusing) a default pipeline. */
2389
+ export interface CreateDefaultWaterfallConfigResponse {
2390
+ column_id: string;
2391
+ config_id: string;
2392
+ /** True if a new config was created; False if an existing one with the same name was reused */
2393
+ created?: boolean;
2394
+ /** Persisted email_verification block, if any. Mirrors EmailVerificationInput shape. */
2395
+ email_verification?: Record<string, unknown> | null;
2396
+ list_id?: number | null;
2397
+ /** Providers whose step is BYOK but the org has no active key (these steps will be skipped at run time). Empty when every step is runnable. */
2398
+ missing_credentials?: Array<string>;
2399
+ name: string;
2400
+ /** Ordered, de-duplicated provider list of the persisted (or reused) pipeline. */
2401
+ providers?: Array<string>;
2402
+ /** Per-step credential breakdown (system vs BYOK + readiness) for the persisted pipeline. */
2403
+ providers_detail?: Array<ProviderStepDetail>;
2404
+ }
2405
+
2406
+ /** Add a custom column to a list, or globally. */
2407
+ export interface CreateDynamicColumnRequest {
2408
+ data_type?: "text" | "int" | "numeric" | "boolean";
2409
+ /** Omit for a GLOBAL column, visible on every list in the org. */
2410
+ list_id?: number | null;
2411
+ /** Display name of the column. */
2412
+ title: string;
2413
+ }
2414
+
2415
+ /**
2416
+ * Create an enrichment configuration.
2417
+ *
2418
+ * The app takes this as a free dict and reads these keys. `type` is closed to
2419
+ * the two the handler validates; `ai` requires `group_id`, `prompt`, `model`,
2420
+ * `usecase`, `input_mapping`, `outputs` and `column_mappings` inside
2421
+ * `config`, and `waterfall` requires `column_id`, `field_to_enrich` and
2422
+ * `config.steps`.
2423
+ */
2424
+ export interface CreateEnrichmentConfigRequest {
2425
+ column_id?: string | null;
2426
+ config: Record<string, unknown>;
2427
+ data_type?: string;
2428
+ field_to_enrich?: string | null;
2429
+ is_global?: boolean;
2430
+ list_id?: number | null;
2431
+ name: string;
2432
+ type: "ai" | "waterfall";
2433
+ }
2434
+
2435
+ /** Attach a formula to a column. */
2436
+ export interface CreateFormulaConfigRequest {
2437
+ config: FormulaConfigDto;
2438
+ data_type?: string;
2439
+ field_to_enrich: string;
2440
+ name: string;
2441
+ }
2442
+
2443
+ /** Save a reusable formula-authoring template. */
2444
+ export interface CreateFormulaTemplateRequest {
2445
+ category: string;
2446
+ description: string;
2447
+ example_formula?: string | null;
2448
+ field_dependencies: Array<string>;
2449
+ is_system_template?: boolean;
2450
+ name: string;
2451
+ /** 'text', 'number' or 'boolean'. */
2452
+ output_type: string;
2453
+ prompt: string;
2454
+ /** 'companies' or 'contacts'. */
2455
+ target_type: string;
2456
+ }
2457
+
2458
+ /** Move records from one list to another when they match. */
2459
+ export interface CreateRoutingRuleRequest {
2460
+ ai_explanation?: string | null;
2461
+ column_config?: ColumnConfigDto;
2462
+ conditions?: Array<ConditionDto>;
2463
+ dest_list_id?: number | null;
2464
+ /** Create a new destination with this name. */
2465
+ dest_list_name?: string | null;
2466
+ formula_text?: string | null;
2467
+ name: string;
2468
+ /** `continuous` keeps matching NEW records for as long as the rule exists. */
2469
+ schedule_type?: "one_time" | "continuous";
2470
+ source_list_id: number;
2471
+ sync_mode?: "all_matching" | "new_only";
2472
+ }
2473
+
2474
+ /**
2475
+ * Verify found emails after the waterfall. PAID per address when
2476
+ * `use_system_credentials` is true.
2477
+ */
2478
+ export interface EmailVerificationConfig {
2479
+ accept_catchall?: boolean;
2480
+ enabled?: boolean;
2481
+ provider?: "zerobounce" | "hunter" | "icypeas" | "leadmagic" | "emaillistverify";
2482
+ /** Use graph8's provider keys (charges credits) rather than your own. */
2483
+ use_system_credentials?: boolean;
2484
+ valid_statuses?: Array<string>;
2485
+ }
2486
+
2487
+ /**
2488
+ * Email verification config attached to a waterfall pipeline.
2489
+ *
2490
+ * Mirrors the canonical `EmailVerificationConfigDto` in
2491
+ * `enrichment/interfaces/fastapi/waterfall_dtos.py` so the dev-API and the
2492
+ * UI persist an identical settings shape (the CF worker reads `settings.
2493
+ * email_verification.*` regardless of which surface saved the pipeline).
2494
+ */
2495
+ export interface EmailVerificationInput {
2496
+ /** Treat catch-all responses as valid (domains that accept any address). */
2497
+ accept_catchall?: boolean;
2498
+ /** Enable post-enrichment email verification */
2499
+ enabled?: boolean;
2500
+ /** Verification provider. Charges credits when use_system_credentials=True. */
2501
+ provider?: "zerobounce" | "hunter" | "icypeas" | "leadmagic";
2502
+ /** Use graph8-managed API keys (charges credits). False = use org's BYOK keys. */
2503
+ use_system_credentials?: boolean;
2504
+ /** Verification statuses to accept as valid. Typical: ['valid'] or ['valid','catch-all']. */
2505
+ valid_statuses?: Array<string>;
2506
+ }
2507
+
2508
+ export interface EnrichJobResponse {
2509
+ completed?: number | null;
2510
+ failed_enrichments?: number | null;
2511
+ job_id: string;
2512
+ provider_errors?: Array<Record<string, unknown>> | null;
2513
+ results?: Array<Record<string, unknown>> | null;
2514
+ status: string;
2515
+ successful_enrichments?: number | null;
2516
+ total?: number | null;
2517
+ total_credits_used?: number | null;
2518
+ warnings?: Array<string> | null;
2519
+ }
2520
+
2521
+ /** Request to start an async waterfall enrichment job. */
2522
+ export interface EnrichRequest {
2523
+ /** Contact IDs to enrich */
2524
+ contact_ids: Array<number>;
2525
+ /** Fields to enrich and provider order. Example: {"work_email": ["prospeo", "dropcontact"]} */
2526
+ fields_config?: Record<string, Array<string>> | null;
2527
+ /** List ID the contacts belong to */
2528
+ list_id: number;
2529
+ }
2530
+
2531
+ /**
2532
+ * Fields to change on an enrichment configuration.
2533
+ *
2534
+ * A free-form update, matching the app: whatever keys are sent are written.
2535
+ * `updated_by` is set from the calling key and cannot be supplied.
2536
+ */
2537
+ export interface EnrichmentConfigUpdateRequest {
2538
+ is_active?: boolean | null;
2539
+ name?: string | null;
2540
+ [key: string]: unknown;
2541
+ }
2542
+
2543
+ /**
2544
+ * A collection result.
2545
+ *
2546
+ * `items` is ALWAYS present, so a caller can iterate without knowing whether
2547
+ * the handler returned a bare list or a named key. When the handler used a
2548
+ * named key that key is preserved beside `items` rather than renamed, because
2549
+ * renaming it would make the API and the app disagree about the same data.
2550
+ */
2551
+ export interface EnrichmentListPayload {
2552
+ /** The collection, always present. */
2553
+ items?: Array<unknown>;
2554
+ [key: string]: unknown;
2555
+ }
2556
+
2557
+ /**
2558
+ * One enrichment object, open-shaped.
2559
+ *
2560
+ * Open on purpose: a workbench column set is defined by the CUSTOMER at
2561
+ * runtime, and the enrichment result shapes grow with every provider added.
2562
+ * Pinning them would drop whatever a provider returned that this contract had
2563
+ * not caught up on, which on an enrichment surface is the data the customer
2564
+ * paid for.
2565
+ */
2566
+ export type EnrichmentPayload = Record<string, unknown>;
2567
+
2568
+ /** Price every visible qualification template against one list. Charges nothing. */
2569
+ export interface EstimateAllRequest {
2570
+ list_id: number;
2571
+ }
2572
+
2573
+ /** How one field is reconciled when the source and the record disagree. */
2574
+ export interface FieldPolicy {
2575
+ empty_source?: "ignore" | "explicit_retraction";
2576
+ mode?: "preserve" | "fill_missing" | "source_owned" | "replace";
2577
+ preserve_manual_edits?: boolean;
2578
+ }
2579
+
2580
+ /** A formula and the metadata that explains it. */
2581
+ export interface FormulaConfigDto {
2582
+ ai_prompt?: string | null;
2583
+ complexity?: string | null;
2584
+ explanation?: string | null;
2585
+ field_dependencies?: Array<string> | null;
2586
+ formula: string;
2587
+ output_type?: string | null;
2588
+ }
2589
+
2590
+ /** Turn a sentence into a routing filter. */
2591
+ export interface GenerateFilterRequest {
2592
+ prompt: string;
2593
+ source_list_id: number;
2594
+ }
2595
+
2596
+ /** Import search results into the destination list. */
2597
+ export interface ImportFindPeopleRequest {
2598
+ /** Import results for these companies. OMIT to import ALL pending. */
2599
+ company_ids?: Array<number> | null;
2600
+ destination_list_id?: number | null;
2601
+ /** Specific results. Overrides `company_ids` when given. */
2602
+ result_ids?: Array<number> | null;
2603
+ }
2604
+
2605
+ /** Create a new AI column as part of saving the pipeline. */
2606
+ export interface InlineAIConfig {
2607
+ kind: "ai";
2608
+ model?: string;
2609
+ outputs: Array<InlineOutputField>;
2610
+ prompt: string;
2611
+ scope?: ("contact" | "company") | null;
2612
+ usecase?: "create-modify-content" | "content-generation" | "web-research";
2613
+ }
2614
+
2615
+ export interface InlineOutputField {
2616
+ name: string;
2617
+ type?: "Text" | "Number" | "Boolean";
2618
+ }
2619
+
2620
+ /** Add a qualification column from a template. */
2621
+ export interface InlineQualificationConfig {
2622
+ entity: "company" | "contact";
2623
+ kind: "qualification";
2624
+ template_id?: string | null;
2625
+ }
2626
+
2627
+ /** Add a waterfall that fills an existing column. */
2628
+ export interface InlineWaterfallConfig {
2629
+ kind: "waterfall";
2630
+ target_column: string;
2631
+ verify?: boolean;
2632
+ }
2633
+
2634
+ /** Build a pipeline from a recipe in `GET /enrichment/lists/pipeline-templates`. */
2635
+ export interface InstantiatePipelineTemplateRequest {
2636
+ qualification_template_id?: string | null;
2637
+ template_key: string;
2638
+ }
2639
+
2640
+ /** Why a job is being paused or cancelled. Recorded on the job. */
2641
+ export interface JobControlRequest {
2642
+ reason?: string | null;
2643
+ }
2644
+
2645
+ /** One step. Exactly one of `config_ref` or `inline_config`. */
2646
+ export interface ListPipelineStep {
2647
+ /** An existing config's group or column id. */
2648
+ config_ref?: string;
2649
+ enabled?: boolean;
2650
+ id: string;
2651
+ inline_config?: (InlineAIConfig | InlineQualificationConfig | InlineWaterfallConfig) | null;
2652
+ name?: string;
2653
+ run_condition?: string | null;
2654
+ skip_existing_values?: boolean;
2655
+ skip_recently_enriched?: boolean;
2656
+ type: "ai" | "waterfall";
2657
+ ui_meta?: Record<string, unknown> | null;
2658
+ }
2659
+
2660
+ /** Route records to different lists based on an AI output field. */
2661
+ export interface ListRoutingDto {
2662
+ enabled?: boolean;
2663
+ field_name?: string;
2664
+ list_mappings?: Record<string, number>;
2665
+ }
2666
+
2667
+ export interface LookupResponse {
2668
+ confidence?: number;
2669
+ data?: Record<string, unknown> | null;
2670
+ found: boolean;
2671
+ }
2672
+
2673
+ /** How enriched source data is reconciled onto the customer's records. */
2674
+ export interface MashupSyncPolicy {
2675
+ audience_ids?: Array<string>;
2676
+ batch_size?: number;
2677
+ company_changes?: "review" | "verified";
2678
+ default_field?: FieldPolicy;
2679
+ /** Turning this on starts recurring reconciliation, which SPENDS enrichment credit. */
2680
+ enabled?: boolean;
2681
+ excluded_local_ids?: Array<string>;
2682
+ fields?: Record<string, FieldPolicy>;
2683
+ max_records_per_run?: number;
2684
+ minimum_confidence?: number;
2685
+ paused?: boolean;
2686
+ resume_mode?: "latest" | "review";
2687
+ schedule?: SyncSchedule;
2688
+ }
2689
+
2690
+ export interface PaginationMeta {
2691
+ /** Whether there are more pages */
2692
+ has_next: boolean;
2693
+ /** Items per page */
2694
+ limit: number;
2695
+ /** 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. */
2696
+ next_cursor?: string | null;
2697
+ /** Current page number (1-indexed) */
2698
+ page: number;
2699
+ /** Total number of items */
2700
+ total: number;
2701
+ }
2702
+
2703
+ export interface PersonLookupRequest {
2704
+ /** Company domain (requires first_name + last_name) */
2705
+ company_domain?: string | null;
2706
+ /** Work email address */
2707
+ email?: string | null;
2708
+ /** First name (requires last_name + company_domain) */
2709
+ first_name?: string | null;
2710
+ /** Last name (requires first_name + company_domain) */
2711
+ last_name?: string | null;
2712
+ /** LinkedIn profile URL */
2713
+ linkedin_url?: string | null;
2714
+ }
2715
+
2716
+ /** Count what a routing rule WOULD move, without moving anything. */
2717
+ export interface PreviewRoutingRequest {
2718
+ conditions?: Array<ConditionDto>;
2719
+ source_list_id: number;
2720
+ }
2721
+
2722
+ /** Ask the model to write an enrichment prompt from a list's columns. */
2723
+ export interface PromptGeneratorRequest {
2724
+ list_id: number;
2725
+ task_description: string;
2726
+ }
2727
+
2728
+ /**
2729
+ * One enrichment provider in the catalog: its credential mode + credit cost.
2730
+ *
2731
+ * Lets a caller see which providers graph8 funds (usable with no setup, charges
2732
+ * credits) vs which require the org's own API key (BYOK), before building a
2733
+ * pipeline — the programmatic equivalent of the UI's provider picker.
2734
+ */
2735
+ export interface ProviderCatalogEntry {
2736
+ /** Action identifiers available for this provider. */
2737
+ actions?: Array<string>;
2738
+ /** True if the org has an active BYOK key configured for this provider. */
2739
+ byok_configured: boolean;
2740
+ /** Per-action credit cost when run on graph8 system credentials (action -> credits/row). */
2741
+ credits_per_row?: Record<string, number>;
2742
+ /** What credential_mode='auto' resolves to for this provider for this org right now. */
2743
+ default_credential_source: "system" | "byok";
2744
+ provider: string;
2745
+ /** True if graph8 holds a system-managed key for this provider (usable without BYOK; charges credits). */
2746
+ system_funded: boolean;
2747
+ }
2748
+
2749
+ /**
2750
+ * Catalog of enrichment providers: which are graph8-funded (system) by default
2751
+ * vs require the org's own key (BYOK), plus the credit cost per action.
2752
+ */
2753
+ export interface ProviderCatalogResponse {
2754
+ count?: number;
2755
+ providers?: Array<ProviderCatalogEntry>;
2756
+ }
2757
+
2758
+ /**
2759
+ * Per-step credential breakdown so callers can see, before running, which
2760
+ * steps use graph8 system keys (charge credits) vs the org's own BYOK key,
2761
+ * and whether the required credential is actually present.
2762
+ */
2763
+ export interface ProviderStepDetail {
2764
+ /** True if the step can actually run: system steps are always ready; BYOK steps are ready only when the org has an active key for that provider. */
2765
+ credential_ready: boolean;
2766
+ /** 'system' = graph8-funded; 'byok' = org's own key. */
2767
+ credential_source: "system" | "byok";
2768
+ /** True = uses graph8-managed system key (charges credits). False = uses org BYOK key. */
2769
+ is_system_provider: boolean;
2770
+ provider: string;
2771
+ }
2772
+
2773
+ /** Read in-flight per-record enrichment progress. A read, not a run. */
2774
+ export interface RecordProgressRequest {
2775
+ /** Records to report on. The app caps this at 500 and ignores the rest. */
2776
+ record_ids?: Array<string>;
2777
+ }
2778
+
2779
+ /** Show what syncing one record would change, without changing it. */
2780
+ export interface RecordSyncPreviewRequest {
2781
+ event_id: string;
2782
+ /** The record id. */
2783
+ local_id: string;
2784
+ /** Preview against this policy instead of the saved one. */
2785
+ policy?: MashupSyncPolicy | null;
2786
+ }
2787
+
2788
+ /** Request a sync run now. */
2789
+ export interface RecordSyncRunRequest {
2790
+ /** The policy version you read. */
2791
+ expected_version: number;
2792
+ }
2793
+
2794
+ /** Rename the column an AI group writes into. Display name only. */
2795
+ export interface RenameAIColumnRequest {
2796
+ column_id: string;
2797
+ name: string;
2798
+ }
2799
+
2800
+ /** Resolve one flagged record-sync change. */
2801
+ export interface ReviewRequest {
2802
+ /** `retry` re-applies the change; `preserve` keeps the record as it is. */
2803
+ action: "retry" | "preserve";
2804
+ event_id: string;
2805
+ expected_version: number;
2806
+ /** The record, as an exact decimal string. */
2807
+ local_id: string;
2808
+ /** Always null on a review; the stored policy applies. */
2809
+ policy?: null;
2810
+ }
2811
+
2812
+ /**
2813
+ * Run a saved AI enrichment config on specific records.
2814
+ *
2815
+ * The prompt, model, outputs, and column mapping live on the config
2816
+ * referenced by `group_id`. We accept `record_ids` so callers can target
2817
+ * exactly the contacts they want enriched.
2818
+ */
2819
+ export interface RunAIEnrichRequest {
2820
+ /** group_id of a saved AI enrichment config (starts with 'ai_enrich') */
2821
+ group_id: string;
2822
+ /** List ID the records belong to */
2823
+ list_id: number;
2824
+ /** Optional cap on records processed (defaults to len(record_ids)). */
2825
+ max_records?: number | null;
2826
+ /** Contact IDs to enrich */
2827
+ record_ids: Array<number>;
2828
+ /** Override the config's skip_existing_values setting. */
2829
+ skip_existing_values?: boolean | null;
2830
+ }
2831
+
2832
+ /** Which companies a find-people config runs over. */
2833
+ export interface RunFindPeopleRequest {
2834
+ enrichment_mode: "first_10" | "all_rows" | "selected";
2835
+ /** Required for `selected`. */
2836
+ record_ids?: Array<number> | null;
2837
+ }
2838
+
2839
+ /**
2840
+ * Which records a formula column is computed for.
2841
+ *
2842
+ * With no ids and no `mode`, the formula runs over the list's records up to
2843
+ * `max_records`. `mode: empty` fills only records whose value is blank.
2844
+ */
2845
+ export interface RunFormulaRequest {
2846
+ batch_size?: number;
2847
+ context_record_ids?: Array<number> | null;
2848
+ /** Validate only; write nothing. */
2849
+ dry_run?: boolean;
2850
+ max_records?: number | null;
2851
+ mode?: ("selected" | "visible" | "empty") | null;
2852
+ record_ids?: Array<number> | null;
2853
+ visible_record_ids?: Array<number> | null;
2854
+ }
2855
+
2856
+ /** Qualify a list against a template. */
2857
+ export interface RunQualificationRequest {
2858
+ list_id: number;
2859
+ /** Re-run records that already have a verdict. */
2860
+ requalify?: boolean;
2861
+ template_id: string;
2862
+ usecase?: ("web-research" | "create-modify-content") | null;
2863
+ }
2864
+
2865
+ /** Run a saved waterfall pipeline on specific records. */
2866
+ export interface RunWaterfallEnrichRequest {
2867
+ /** column_id from a saved waterfall pipeline */
2868
+ column_id: string;
2869
+ /** List ID the records belong to */
2870
+ list_id: number;
2871
+ /** Contact IDs to enrich */
2872
+ record_ids: Array<number>;
2873
+ /** Override the pipeline's skip_existing_values setting. If None (default), the pipeline's saved setting is used. */
2874
+ skip_existing_values?: boolean | null;
2875
+ }
2876
+
2877
+ /** Save an AI enrichment group. Saving costs nothing; running it does. */
2878
+ export interface SaveAIConfigRequest {
2879
+ config: AIEnrichmentConfigDto;
2880
+ /** Always false. Saving never runs - the app refuses immediate execution so a save can never become an unpriced spend. */
2881
+ run_immediately?: false;
2882
+ target_records?: Array<string> | null;
2883
+ }
2884
+
2885
+ /**
2886
+ * Create a list pipeline.
2887
+ *
2888
+ * `enabled: true` ARMS it: an enabled pipeline runs its steps over the list,
2889
+ * and every enrichment step charges.
2890
+ */
2891
+ export interface SaveListPipelineRequest {
2892
+ enabled?: boolean;
2893
+ name: string;
2894
+ steps: Array<ListPipelineStep>;
2895
+ }
2896
+
2897
+ /** One people-search condition. */
2898
+ export interface SearchFilterDto {
2899
+ field: string;
2900
+ operator: string;
2901
+ value?: Array<unknown>;
2902
+ }
2903
+
2904
+ /** Import people directly, either a given set or everything an ICP query matches. */
2905
+ export interface SearchImportRequest {
2906
+ /** Contacts to import directly. */
2907
+ contacts?: Array<Record<string, unknown>> | null;
2908
+ destination_list_id: number;
2909
+ /** Import EVERYTHING these filters match, up to `max_result`. The unbounded form of this operation. */
2910
+ icp_filters?: Array<Record<string, unknown>> | null;
2911
+ max_employees_per_company?: number | null;
2912
+ max_result?: number | null;
2913
+ source_companies?: Array<SourceCompanyDto>;
2914
+ source_list_id: number;
2915
+ }
2916
+
2917
+ /**
2918
+ * Turn a pipeline on or off.
2919
+ *
2920
+ * Explicit rather than a toggle, so a retried request cannot silently restart
2921
+ * a pipeline a caller had just stopped.
2922
+ */
2923
+ export interface SetPipelineEnabledRequest {
2924
+ enabled: boolean;
2925
+ }
2926
+
2927
+ /** A company the imported contacts are attributed back to. */
2928
+ export interface SourceCompanyDto {
2929
+ company_domain?: string | null;
2930
+ company_id: number;
2931
+ company_name?: string | null;
2932
+ }
2933
+
2934
+ /** When the reconciliation runs. */
2935
+ export interface SyncSchedule {
2936
+ frequency?: "manual" | "hourly" | "daily" | "weekly";
2937
+ time?: string;
2938
+ timezone?: string;
2939
+ weekdays?: Array<number>;
2940
+ }
2941
+
2942
+ /** Replace an AI enrichment group's definition. */
2943
+ export interface UpdateAIConfigRequest {
2944
+ config: AIEnrichmentConfigDto;
2945
+ }
2946
+
2947
+ /** Edit an auto-enrichment configuration. */
2948
+ export interface UpdateAutoEnrichmentConfigRequest {
2949
+ /** Enrich every newly inserted record automatically. Turning this on starts ONGOING credit spend with no further call. */
2950
+ trigger_on_insert?: boolean | null;
2951
+ }
2952
+
2953
+ /**
2954
+ * Organisation-wide auto-enrichment for one record kind.
2955
+ *
2956
+ * `default_rule` decides who wins when enriched data disagrees with what is
2957
+ * on the record: `sticky` keeps the first value, `user_wins` never overwrites
2958
+ * a person's edit, `mashup_wins` lets enrichment overwrite.
2959
+ */
2960
+ export interface UpdateAutoEnrichmentSettingsRequest {
2961
+ default_rule?: "sticky" | "user_wins" | "mashup_wins";
2962
+ enabled?: boolean;
2963
+ per_field_overrides?: Record<string, "sticky" | "user_wins" | "mashup_wins">;
2964
+ }
2965
+
2966
+ /** Hand-edit one enriched cell. No provider is called and nothing is charged. */
2967
+ export interface UpdateEnrichmentFieldRequest {
2968
+ list_id?: number | null;
2969
+ record_type?: "contact" | "company";
2970
+ /** The new value. Null clears the cell. */
2971
+ value: unknown;
2972
+ }
2973
+
2974
+ /** Edit a people-search configuration. Omitted fields are unchanged. */
2975
+ export interface UpdateFindPeopleConfigRequest {
2976
+ auto_import?: boolean | null;
2977
+ column_mappings?: Array<ColumnMappingDto> | null;
2978
+ company_identifier_column?: string | null;
2979
+ destination_list_id?: number | null;
2980
+ is_active?: boolean | null;
2981
+ max_people_per_company?: number | null;
2982
+ max_total_people?: number | null;
2983
+ name?: string | null;
2984
+ search_filters?: Array<SearchFilterDto> | null;
2985
+ skip_across_companies?: boolean | null;
2986
+ skip_existing_in_destination?: boolean | null;
2987
+ }
2988
+
2989
+ /** Edit a formula column. Omitted fields are left alone. */
2990
+ export interface UpdateFormulaConfigRequest {
2991
+ config?: FormulaConfigDto | null;
2992
+ data_type?: string | null;
2993
+ field_to_enrich?: string | null;
2994
+ name?: string | null;
2995
+ }
2996
+
2997
+ /** Replace a list pipeline's definition. `enabled` omitted keeps its state. */
2998
+ export interface UpdateListPipelineRequest {
2999
+ enabled?: boolean | null;
3000
+ name: string;
3001
+ steps: Array<ListPipelineStep>;
3002
+ }
3003
+
3004
+ /**
3005
+ * Replace the record-sync policy.
3006
+ *
3007
+ * `expected_version` is the version the caller READ. A stale value is
3008
+ * rejected rather than applied, so two editors cannot silently overwrite each
3009
+ * other's policy - which on this object decides what gets overwritten on
3010
+ * every record in the org.
3011
+ */
3012
+ export interface UpdateMashupSyncPolicyRequest {
3013
+ /** Version this edit was based on. */
3014
+ expected_version: number;
3015
+ policy: MashupSyncPolicy;
3016
+ }
3017
+
3018
+ /** Edit a qualification template's wording. */
3019
+ export interface UpdateQualificationTemplateRequest {
3020
+ description: string;
3021
+ name: string;
3022
+ prompt: string;
3023
+ }
3024
+
3025
+ /** Replace a waterfall's definition. */
3026
+ export interface UpdateWaterfallConfigRequest {
3027
+ config: WaterfallConfig;
3028
+ }
3029
+
3030
+ /** Price an AI enrichment before running it. Charges nothing. */
3031
+ export interface ValidateCreditsRequest {
3032
+ context_record_ids?: (Array<number | string>) | null;
3033
+ /** Deprecated. Pricing is computed server-side and this is ignored. */
3034
+ credits_per_record?: number | null;
3035
+ /** 'first_10', 'all' or 'error_only'. */
3036
+ enrichment_mode?: string | null;
3037
+ filter_model?: Record<string, unknown> | null;
3038
+ /** AI enrichment group id. */
3039
+ group_id?: string | null;
3040
+ list_id?: number | null;
3041
+ max_records?: number | null;
3042
+ /** 'bulk' or 'column'. */
3043
+ mode?: string | null;
3044
+ /** Direct record count. */
3045
+ record_count?: number | null;
3046
+ record_ids?: (Array<number | string>) | null;
3047
+ sort_model?: Array<Record<string, string>> | null;
3048
+ visible_record_ids?: (Array<number | string>) | null;
3049
+ }
3050
+
3051
+ /** Price a waterfall enrichment before running it. Charges nothing. */
3052
+ export interface ValidateWaterfallCreditsRequest {
3053
+ /** Waterfall enrichment column id. */
3054
+ column_id: string;
3055
+ context_record_ids?: (Array<number | string>) | null;
3056
+ /** Deprecated. Pricing is computed server-side and this is ignored. */
3057
+ credits_per_record?: number | null;
3058
+ /** 'first_10', 'all' or 'error_only'. */
3059
+ enrichment_mode?: string | null;
3060
+ filter_model?: Record<string, unknown> | null;
3061
+ list_id?: number | null;
3062
+ max_records?: number | null;
3063
+ /** 'bulk' or 'column'. */
3064
+ mode?: string | null;
3065
+ /** Direct record count. */
3066
+ record_count?: number | null;
3067
+ record_ids?: (Array<number | string>) | null;
3068
+ sort_model?: Array<Record<string, string>> | null;
3069
+ visible_record_ids?: (Array<number | string>) | null;
3070
+ }
3071
+
3072
+ export interface VerifyEmailRequest {
3073
+ /** Email address to verify */
3074
+ email: string;
3075
+ }
3076
+
3077
+ export type VerifyEmailResponse = Record<string, unknown>;
3078
+
3079
+ /**
3080
+ * A complete waterfall definition.
3081
+ *
3082
+ * `org_id` and `created_by` are accepted for shape parity with the app and
3083
+ * IGNORED: the organisation always comes from the API key.
3084
+ */
3085
+ export interface WaterfallConfig {
3086
+ auto_update?: boolean;
3087
+ column_id: string;
3088
+ /** Ignored. */
3089
+ created_by?: string | null;
3090
+ data_type?: string;
3091
+ email_verification?: EmailVerificationConfig | null;
3092
+ field_to_enrich: string;
3093
+ hide_provider_columns?: boolean;
3094
+ id?: string | null;
3095
+ is_existing_column?: boolean;
3096
+ is_global?: boolean;
3097
+ list_id?: number | null;
3098
+ list_routing?: WaterfallListRouting | null;
3099
+ name: string;
3100
+ /** Run condition formula. */
3101
+ only_run_if?: string | null;
3102
+ /** Ignored: the key's organisation is used. */
3103
+ org_id?: string | null;
3104
+ output_successful_provider?: boolean;
3105
+ skip_existing_values?: boolean;
3106
+ skip_recently_enriched?: boolean;
3107
+ steps: Array<WaterfallStep>;
3108
+ target_column_name?: string | null;
3109
+ /** Deprecated: use `email_verification`. */
3110
+ validate_emails?: boolean;
3111
+ }
3112
+
3113
+ /**
3114
+ * One saved waterfall pipeline attached to (or global for) a list.
3115
+ *
3116
+ * `column_id` is the handle the worker uses to resolve config + store
3117
+ * enrichment output. `providers` is a de-duplicated list of step providers
3118
+ * so callers can see at a glance what a pipeline actually runs.
3119
+ */
3120
+ export interface WaterfallConfigSummary {
3121
+ column_id: string;
3122
+ data_type?: string | null;
3123
+ field_to_enrich?: string | null;
3124
+ is_active?: boolean;
3125
+ is_global?: boolean;
3126
+ list_id?: number | null;
3127
+ /** Providers in this pipeline whose step is BYOK but the org has no active key (these steps will be skipped at run time). Empty when everything is runnable. */
3128
+ missing_credentials?: Array<string>;
3129
+ name: string;
3130
+ providers?: Array<string>;
3131
+ /** Per-step credential breakdown (system vs BYOK + readiness) for this pipeline. */
3132
+ providers_detail?: Array<ProviderStepDetail>;
3133
+ step_count?: number;
3134
+ }
3135
+
3136
+ /** Paginated (by list_id filter) collection of waterfall pipeline configs. */
3137
+ export interface WaterfallConfigsResponse {
3138
+ configs?: Array<WaterfallConfigSummary>;
3139
+ count?: number;
3140
+ list_id?: number | null;
3141
+ }
3142
+
3143
+ /** Route records into lists by their verification result. */
3144
+ export interface WaterfallListRouting {
3145
+ copy_columns?: boolean;
3146
+ enabled?: boolean;
3147
+ field_name?: string;
3148
+ /** Verification status -> list id. */
3149
+ list_mappings?: Record<string, number>;
3150
+ routing_columns?: Record<string, unknown> | null;
3151
+ }
3152
+
3153
+ /** One provider attempt in a waterfall. */
3154
+ export interface WaterfallStep {
3155
+ action: string;
3156
+ action_display_name: string;
3157
+ confidence_threshold?: number;
3158
+ config?: Record<string, unknown>;
3159
+ enabled?: boolean;
3160
+ id: string;
3161
+ input_mapping?: Record<string, string>;
3162
+ /** Use graph8's provider credentials. Those calls are charged. */
3163
+ is_system_provider?: boolean;
3164
+ max_retries?: number;
3165
+ order: number;
3166
+ output_field?: string | null;
3167
+ /** Deprecated. */
3168
+ output_mapping?: Record<string, string> | null;
3169
+ /** Provider name, from `GET /enrichment/providers`. */
3170
+ provider: string;
3171
+ stop_on_success?: boolean;
3172
+ }
3173
+
3174
+ /**
3175
+ * Single step in a caller-supplied waterfall sequence.
3176
+ *
3177
+ * Mirrors `WaterfallStepDto` in `enrichment/interfaces/fastapi/waterfall_dtos.py`.
3178
+ * Persisted verbatim into `enrichment_configs.config.steps[]` so the CF
3179
+ * worker can resolve provider, action and credentials the same way
3180
+ * UI-saved pipelines do.
3181
+ */
3182
+ export interface WaterfallStepInput {
3183
+ /** Provider action: lookup_person, find_email, enrich_person, ... */
3184
+ action: string;
3185
+ /** Human-readable label shown in UI. Auto-titled from `action` if omitted. */
3186
+ action_display_name?: string | null;
3187
+ confidence_threshold?: number;
3188
+ /** Provider-specific options (e.g. apollo `reveal_phone_numbers=true`). */
3189
+ config?: Record<string, unknown>;
3190
+ enabled?: boolean;
3191
+ /** Step identifier. Auto-generated (`step_<provider>_<uuid8>`) if omitted. */
3192
+ id?: string | null;
3193
+ /** Maps provider input names to graph8 column identifiers (CONTACT_*). */
3194
+ input_mapping?: Record<string, string>;
3195
+ /** True = use graph8-managed credentials + charge credits. False = use org BYOK. */
3196
+ is_system_provider?: boolean;
3197
+ max_retries?: number;
3198
+ /** 0-indexed execution order. */
3199
+ order?: number;
3200
+ /** Dotted path the worker writes into (e.g. 'contact.work_email'). */
3201
+ output_field?: string | null;
3202
+ /** Optional output field remap (deprecated — prefer `output_field`). */
3203
+ output_mapping?: Record<string, string>;
3204
+ /** Provider name: graph8, hunter, prospeo, dropcontact, apollo, ... */
3205
+ provider: string;
3206
+ stop_on_success?: boolean;
3207
+ }