@graph8/sdk 0.265.0 → 0.293.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 (178) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.mts +734 -28
  3. package/dist/index.d.ts +734 -28
  4. package/dist/index.js +15 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +15 -5
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/react.d.mts +728 -26
  9. package/dist/react.d.ts +728 -26
  10. package/dist/react.js +14 -4
  11. package/dist/react.js.map +1 -1
  12. package/dist/react.mjs +14 -4
  13. package/dist/react.mjs.map +1 -1
  14. package/dist/types/core.d.ts +2 -0
  15. package/dist/types/enrich.d.ts +11 -4
  16. package/dist/types/index.d.ts +1 -1
  17. package/dist/types/react.d.ts +6 -2
  18. package/dist/types/search.d.ts +25 -1
  19. package/dist/types/version.d.ts +2 -2
  20. package/docs/agents.md +8 -7
  21. package/docs/api/README.md +4 -4
  22. package/docs/api/accounts.d.ts +6 -0
  23. package/docs/api/adCampaigns.d.ts +6 -0
  24. package/docs/api/adCreatives.d.ts +6 -0
  25. package/docs/api/agency.d.ts +6 -0
  26. package/docs/api/agent.d.ts +6 -0
  27. package/docs/api/agents.d.ts +6 -0
  28. package/docs/api/aiInbox.d.ts +6 -0
  29. package/docs/api/analytics.d.ts +32 -1
  30. package/docs/api/analytics.md +2 -0
  31. package/docs/api/apiKeys.d.ts +6 -0
  32. package/docs/api/appDeployments.d.ts +6 -0
  33. package/docs/api/appDomains.d.ts +6 -0
  34. package/docs/api/appLogs.d.ts +6 -0
  35. package/docs/api/appObjects.d.ts +6 -0
  36. package/docs/api/appPages.d.ts +6 -0
  37. package/docs/api/appPlatformTokens.d.ts +6 -0
  38. package/docs/api/appointments.d.ts +20 -2
  39. package/docs/api/appointments.md +27 -11
  40. package/docs/api/apps.d.ts +6 -0
  41. package/docs/api/apps.md +7 -5
  42. package/docs/api/assertUpsert.d.ts +14 -0
  43. package/docs/api/assertUpsert.md +5 -0
  44. package/docs/api/audienceSyncs.d.ts +14 -0
  45. package/docs/api/audienceSyncs.md +16 -0
  46. package/docs/api/brandKit.d.ts +6 -0
  47. package/docs/api/bugReports.d.ts +6 -0
  48. package/docs/api/by-path.md +3 -0
  49. package/docs/api/calendarInvites.d.ts +6 -0
  50. package/docs/api/campaignWorkflows.d.ts +6 -0
  51. package/docs/api/campaigns.d.ts +6 -0
  52. package/docs/api/channels.d.ts +6 -0
  53. package/docs/api/cliCampaigns.d.ts +6 -0
  54. package/docs/api/cliPipelines.d.ts +6 -0
  55. package/docs/api/clickHouse.d.ts +6 -0
  56. package/docs/api/companies.d.ts +17 -3
  57. package/docs/api/companies.md +13 -3
  58. package/docs/api/companyIntelligence.d.ts +6 -0
  59. package/docs/api/contacts.d.ts +26 -5
  60. package/docs/api/contacts.md +17 -6
  61. package/docs/api/content.d.ts +6 -0
  62. package/docs/api/contentGridSkills.d.ts +6 -0
  63. package/docs/api/copilot.d.ts +6 -0
  64. package/docs/api/crmSyncs.d.ts +6 -0
  65. package/docs/api/customerSuccess.d.ts +6 -0
  66. package/docs/api/deals.d.ts +6 -0
  67. package/docs/api/deliverability.d.ts +6 -0
  68. package/docs/api/desk.d.ts +6 -0
  69. package/docs/api/dialer.d.ts +6 -0
  70. package/docs/api/documents.d.ts +6 -0
  71. package/docs/api/duplicates.d.ts +6 -0
  72. package/docs/api/eSignature.d.ts +6 -0
  73. package/docs/api/enrichment.d.ts +82 -2
  74. package/docs/api/enrichment.md +76 -1
  75. package/docs/api/events.d.ts +6 -0
  76. package/docs/api/fields.d.ts +30 -3
  77. package/docs/api/fields.md +15 -4
  78. package/docs/api/forms.d.ts +6 -0
  79. package/docs/api/gtmCampaigns.d.ts +6 -0
  80. package/docs/api/gtmContext.d.ts +6 -0
  81. package/docs/api/gtmDeliverability.d.ts +6 -0
  82. package/docs/api/gtmKnowledgeBase.d.ts +6 -0
  83. package/docs/api/gtmLibrary.d.ts +6 -0
  84. package/docs/api/imageLibrary.d.ts +6 -0
  85. package/docs/api/imports.d.ts +6 -0
  86. package/docs/api/inbox.d.ts +6 -0
  87. package/docs/api/install.d.ts +32 -0
  88. package/docs/api/install.md +18 -0
  89. package/docs/api/installedApps.d.ts +6 -0
  90. package/docs/api/integrationStatus.d.ts +6 -0
  91. package/docs/api/integrations.d.ts +6 -0
  92. package/docs/api/intent.d.ts +32 -1
  93. package/docs/api/intent.md +23 -0
  94. package/docs/api/knowledge.d.ts +6 -0
  95. package/docs/api/knowledgeBase.d.ts +6 -0
  96. package/docs/api/landingPages.d.ts +6 -0
  97. package/docs/api/leads.d.ts +6 -0
  98. package/docs/api/library.d.ts +6 -0
  99. package/docs/api/linkedIn.d.ts +6 -0
  100. package/docs/api/linkedInOutreach.d.ts +6 -0
  101. package/docs/api/lists.d.ts +22 -0
  102. package/docs/api/lists.md +24 -2
  103. package/docs/api/logs.d.ts +6 -0
  104. package/docs/api/mailboxes.d.ts +6 -0
  105. package/docs/api/marketingIntelligence.d.ts +40 -0
  106. package/docs/api/marketingIntelligence.md +20 -0
  107. package/docs/api/marketplace.d.ts +6 -0
  108. package/docs/api/mcp.d.ts +6 -0
  109. package/docs/api/me.d.ts +6 -0
  110. package/docs/api/meetings.d.ts +6 -0
  111. package/docs/api/newsletter.d.ts +6 -0
  112. package/docs/api/notes.d.ts +6 -0
  113. package/docs/api/notifications.d.ts +6 -0
  114. package/docs/api/objects.d.ts +6 -0
  115. package/docs/api/openSearch.d.ts +6 -0
  116. package/docs/api/ops.d.ts +6 -0
  117. package/docs/api/orgGovernance.d.ts +6 -0
  118. package/docs/api/orgVideos.d.ts +6 -0
  119. package/docs/api/organizationSettings.d.ts +6 -0
  120. package/docs/api/phoneNumbers.d.ts +6 -0
  121. package/docs/api/profile.d.ts +6 -0
  122. package/docs/api/programmaticPages.d.ts +6 -0
  123. package/docs/api/providerDomains.d.ts +6 -0
  124. package/docs/api/providerUsage.d.ts +6 -0
  125. package/docs/api/public.d.ts +6 -0
  126. package/docs/api/publicCopilot.d.ts +6 -0
  127. package/docs/api/publicSignals.d.ts +6 -0
  128. package/docs/api/publicVisitors.d.ts +6 -0
  129. package/docs/api/quotes.d.ts +6 -0
  130. package/docs/api/radarReports.d.ts +6 -0
  131. package/docs/api/recordRoles.d.ts +6 -0
  132. package/docs/api/repos.d.ts +6 -0
  133. package/docs/api/research.d.ts +6 -0
  134. package/docs/api/revenue.d.ts +6 -0
  135. package/docs/api/revenueAnalytics.d.ts +6 -0
  136. package/docs/api/revenueLifecycle.d.ts +11 -1
  137. package/docs/api/revenueLifecycle.md +11 -2
  138. package/docs/api/revenueRecords.d.ts +6 -0
  139. package/docs/api/roles.d.ts +49 -2
  140. package/docs/api/roles.md +65 -1
  141. package/docs/api/salesCoach.d.ts +6 -0
  142. package/docs/api/scans.d.ts +6 -0
  143. package/docs/api/scheduleBuy.d.ts +6 -0
  144. package/docs/api/scraping.d.ts +6 -0
  145. package/docs/api/search.d.ts +9 -1
  146. package/docs/api/search.md +3 -2
  147. package/docs/api/seo.d.ts +6 -0
  148. package/docs/api/sequenceLifecycle.d.ts +6 -0
  149. package/docs/api/sequences.d.ts +6 -0
  150. package/docs/api/settings.d.ts +6 -0
  151. package/docs/api/signals.d.ts +6 -0
  152. package/docs/api/signatures.d.ts +6 -0
  153. package/docs/api/snippet.d.ts +72 -2
  154. package/docs/api/snippet.md +73 -4
  155. package/docs/api/socialPublishing.d.ts +6 -0
  156. package/docs/api/studioDocuments.d.ts +6 -0
  157. package/docs/api/support.d.ts +6 -0
  158. package/docs/api/suppressions.d.ts +10 -0
  159. package/docs/api/suppressions.md +2 -0
  160. package/docs/api/surveys.d.ts +6 -0
  161. package/docs/api/tasks.d.ts +6 -0
  162. package/docs/api/teamMembers.d.ts +6 -0
  163. package/docs/api/teams.d.ts +6 -0
  164. package/docs/api/usage.d.ts +6 -0
  165. package/docs/api/visitors.d.ts +32 -0
  166. package/docs/api/visitors.md +12 -0
  167. package/docs/api/voice.d.ts +6 -0
  168. package/docs/api/webAnalytics.d.ts +288 -0
  169. package/docs/api/webAnalytics.md +144 -0
  170. package/docs/api/webChat.d.ts +6 -0
  171. package/docs/api/webhooks.d.ts +6 -0
  172. package/docs/api/websiteEditor.d.ts +6 -0
  173. package/docs/api/work.d.ts +6 -0
  174. package/docs/api/workbench.d.ts +6 -0
  175. package/docs/api/workflows.d.ts +6 -0
  176. package/docs/api/workflows.md +6 -0
  177. package/docs/sdk-clients.md +5 -5
  178. package/package.json +1 -1
@@ -2046,10 +2046,16 @@ export interface PaginationMeta {
2046
2046
  limit: number;
2047
2047
  /** 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. */
2048
2048
  next_cursor?: string | null;
2049
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
2050
+ notes?: Array<string> | null;
2049
2051
  /** Current page number (1-indexed) */
2050
2052
  page: number;
2051
2053
  /** Total number of items */
2052
2054
  total: number;
2055
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
2056
+ total_available?: number | null;
2057
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
2058
+ total_is_lower_bound?: boolean | null;
2053
2059
  }
2054
2060
 
2055
2061
  /** Pull every CRM contact into graph8. */
@@ -273,7 +273,7 @@ export interface IntentOperations {
273
273
  };
274
274
  }
275
275
 
276
- // 27 schemas referenced above (the same as G8Contract.<Name>).
276
+ // 28 schemas referenced above (the same as G8Contract.<Name>).
277
277
 
278
278
  export interface ApiResponse_KeywordCreateFromDomainResponse_ {
279
279
  data: KeywordCreateFromDomainResponse;
@@ -300,6 +300,13 @@ export interface ApiResponse_PagesSearchResponse_ {
300
300
  pagination?: PaginationMeta | null;
301
301
  }
302
302
 
303
+ export interface CreateFromDomainSampleContact {
304
+ company_domain?: string | null;
305
+ company_name?: string | null;
306
+ job_title?: string | null;
307
+ name?: string | null;
308
+ }
309
+
303
310
  export interface IntentPageItem {
304
311
  audience?: string | null;
305
312
  commercial_score?: number | null;
@@ -309,6 +316,8 @@ export interface IntentPageItem {
309
316
  summary?: string | null;
310
317
  title?: string | null;
311
318
  url?: string | null;
319
+ /** Distinct visitors (hashed emails) in the lookback window. Set only by pages/search with include_visitors=true when the count succeeded; null otherwise. */
320
+ visitors?: number | null;
312
321
  }
313
322
 
314
323
  export interface KeywordAddedItem {
@@ -324,6 +333,8 @@ export interface KeywordCreateFromDomainRequest {
324
333
  contact_limit?: number;
325
334
  /** Competitor domain to track, e.g. 'cognism.com'. */
326
335
  domain: string;
336
+ /** Preview only: find the on-domain pages and resolve contacts exactly as a real run would, but save nothing. The counts then say what WOULD be seeded, keyword_id stays null, and sample_pages / sample_contacts show a preview. Default false keeps the one-call create. */
337
+ dry_run?: boolean;
327
338
  /** Max pages to seed from the domain. */
328
339
  page_limit?: number;
329
340
  }
@@ -331,11 +342,17 @@ export interface KeywordCreateFromDomainRequest {
331
342
  export interface KeywordCreateFromDomainResponse {
332
343
  companies_seeded?: number;
333
344
  contacts_seeded?: number;
345
+ /** True when nothing was saved (preview). */
346
+ dry_run?: boolean;
334
347
  keyword: string;
335
348
  keyword_id?: string | null;
336
349
  message?: string;
337
350
  off_domain_rejected?: number;
338
351
  pages_seeded?: number;
352
+ /** Dry run only: up to 10 of the contacts that would be pre-resolved (no emails). */
353
+ sample_contacts?: Array<CreateFromDomainSampleContact>;
354
+ /** Dry run only: up to 10 of the pages that would be seeded. */
355
+ sample_pages?: Array<IntentPageItem>;
339
356
  }
340
357
 
341
358
  export interface KeywordCreateFromSearchItem {
@@ -441,11 +458,19 @@ export interface PagesSearchRequest {
441
458
  }
442
459
 
443
460
  export interface PagesSearchResponse {
461
+ /** Hits hidden because they had no visitors in the lookback window (include_visitors=true). total_hits counts them; pages does not. */
462
+ filtered_no_visitors?: number;
444
463
  mode?: string;
445
464
  pages?: Array<IntentPageItem>;
446
465
  query: string;
466
+ /** How this search scoped the results, when it differs from a sibling tool (e.g. a bare-domain query matches the apex + www only). */
467
+ scope_note?: string | null;
447
468
  took_ms?: number;
448
469
  total_hits?: number;
470
+ /** Why visitor enrichment was skipped (include_visitors=true only). */
471
+ visitors_error?: string | null;
472
+ /** Non-fatal problems: visitor counts timed out or failed (pages are then returned unfiltered, visitors=null), every hit was hidden by the has-visitors filter, or the search backend failed. */
473
+ warnings?: Array<string>;
449
474
  }
450
475
 
451
476
  export interface PagesVisitorCountsRequest {
@@ -468,10 +493,16 @@ export interface PaginationMeta {
468
493
  limit: number;
469
494
  /** 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. */
470
495
  next_cursor?: string | null;
496
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
497
+ notes?: Array<string> | null;
471
498
  /** Current page number (1-indexed) */
472
499
  page: number;
473
500
  /** Total number of items */
474
501
  total: number;
502
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
503
+ total_available?: number | null;
504
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
505
+ total_is_lower_bound?: boolean | null;
475
506
  }
476
507
 
477
508
  export interface UrlCompaniesRequest {
@@ -168,6 +168,9 @@ const result = await g8.api.intent.keywordContacts({
168
168
 
169
169
  Replace a keyword's `search_filters` JSON.
170
170
 
171
+ 404 when the keyword does not exist for this org or was deleted (IN-07:
172
+ the bare ALTER matched no row and still answered "success").
173
+
171
174
  **Input**
172
175
 
173
176
  | Field | Type | Required | Description |
@@ -339,6 +342,7 @@ Body fields (`KeywordCreateFromDomainRequest`):
339
342
  |---|---|---|---|
340
343
  | `body.domain` | `string` | yes | Competitor domain to track, e.g. 'cognism.com'. min length 3, max length 253 |
341
344
  | `body.contact_limit` | `integer` | no | Max contacts to pre-resolve. default `200`, min 1, max 500 |
345
+ | `body.dry_run` | `boolean` | no | Preview only: find the on-domain pages and resolve contacts exactly as a real run would, but save nothing. The counts then say what WOULD be seeded, keyword_id stays null, and sample_pages / sample_contacts show a preview. Default false keeps the one-call create. default `false` |
342
346
  | `body.page_limit` | `integer` | no | Max pages to seed from the domain. default `200`, min 1, max 500 |
343
347
 
344
348
  **Returns** `ApiResponse_KeywordCreateFromDomainResponse_`: the envelope `{ data: KeywordCreateFromDomainResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
@@ -352,10 +356,13 @@ Other envelope fields: `pagination` (PaginationMeta).
352
356
  | `keyword` | `string` | yes | |
353
357
  | `companies_seeded` | `integer` | no | default `0` |
354
358
  | `contacts_seeded` | `integer` | no | default `0` |
359
+ | `dry_run` | `boolean` | no | True when nothing was saved (preview). default `false` |
355
360
  | `keyword_id` | `string \| null` | no | |
356
361
  | `message` | `string` | no | default `""` |
357
362
  | `off_domain_rejected` | `integer` | no | default `0` |
358
363
  | `pages_seeded` | `integer` | no | default `0` |
364
+ | `sample_contacts` | `Array<CreateFromDomainSampleContact>` | no | Dry run only: up to 10 of the contacts that would be pre-resolved (no emails). |
365
+ | `sample_pages` | `Array<IntentPageItem>` | no | Dry run only: up to 10 of the pages that would be seeded. |
359
366
 
360
367
  **Example**
361
368
 
@@ -652,10 +659,14 @@ Other envelope fields: `pagination` (PaginationMeta).
652
659
  | Field | Type | Required | Description |
653
660
  |---|---|---|---|
654
661
  | `query` | `string` | yes | |
662
+ | `filtered_no_visitors` | `integer` | no | Hits hidden because they had no visitors in the lookback window (include_visitors=true). total_hits counts them; pages does not. default `0` |
655
663
  | `mode` | `string` | no | default `"text"` |
656
664
  | `pages` | `Array<IntentPageItem>` | no | default `[]` |
665
+ | `scope_note` | `string \| null` | no | How this search scoped the results, when it differs from a sibling tool (e.g. a bare-domain query matches the apex + www only). |
657
666
  | `took_ms` | `integer` | no | default `0` |
658
667
  | `total_hits` | `integer` | no | default `0` |
668
+ | `visitors_error` | `string \| null` | no | Why visitor enrichment was skipped (include_visitors=true only). |
669
+ | `warnings` | `Array<string>` | no | Non-fatal problems: visitor counts timed out or failed (pages are then returned unfiltered, visitors=null), every hit was hidden by the has-visitors filter, or the search backend failed. |
659
670
 
660
671
  **Example**
661
672
 
@@ -808,6 +819,17 @@ const result = await g8.api.intent.urlCompanies({ body: { url: "https://example.
808
819
 
809
820
  Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
810
821
 
822
+ <a id="type-createfromdomainsamplecontact"></a>
823
+
824
+ ### `CreateFromDomainSampleContact`
825
+
826
+ | Field | Type | Required | Description |
827
+ |---|---|---|---|
828
+ | `company_domain` | `string \| null` | no | |
829
+ | `company_name` | `string \| null` | no | |
830
+ | `job_title` | `string \| null` | no | |
831
+ | `name` | `string \| null` | no | |
832
+
811
833
  <a id="type-intentpageitem"></a>
812
834
 
813
835
  ### `IntentPageItem`
@@ -822,6 +844,7 @@ Named types that appear in the tables above. Full TypeScript definitions: `G8Con
822
844
  | `summary` | `string \| null` | no | |
823
845
  | `title` | `string \| null` | no | |
824
846
  | `url` | `string \| null` | no | |
847
+ | `visitors` | `integer \| null` | no | Distinct visitors (hashed emails) in the lookback window. Set only by pages/search with include_visitors=true when the count succeeded; null otherwise. |
825
848
 
826
849
  <a id="type-keywordaddeditem"></a>
827
850
 
@@ -468,10 +468,16 @@ export interface PaginationMeta {
468
468
  limit: number;
469
469
  /** 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. */
470
470
  next_cursor?: string | null;
471
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
472
+ notes?: Array<string> | null;
471
473
  /** Current page number (1-indexed) */
472
474
  page: number;
473
475
  /** Total number of items */
474
476
  total: number;
477
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
478
+ total_available?: number | null;
479
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
480
+ total_is_lower_bound?: boolean | null;
475
481
  }
476
482
 
477
483
  /**
@@ -77,8 +77,14 @@ export interface PaginationMeta {
77
77
  limit: number;
78
78
  /** 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. */
79
79
  next_cursor?: string | null;
80
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
81
+ notes?: Array<string> | null;
80
82
  /** Current page number (1-indexed) */
81
83
  page: number;
82
84
  /** Total number of items */
83
85
  total: number;
86
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
87
+ total_available?: number | null;
88
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
89
+ total_is_lower_bound?: boolean | null;
84
90
  }
@@ -1330,10 +1330,16 @@ export interface PaginationMeta {
1330
1330
  limit: number;
1331
1331
  /** 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. */
1332
1332
  next_cursor?: string | null;
1333
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
1334
+ notes?: Array<string> | null;
1333
1335
  /** Current page number (1-indexed) */
1334
1336
  page: number;
1335
1337
  /** Total number of items */
1336
1338
  total: number;
1339
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
1340
+ total_available?: number | null;
1341
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
1342
+ total_is_lower_bound?: boolean | null;
1337
1343
  }
1338
1344
 
1339
1345
  /**
@@ -126,8 +126,14 @@ export interface PaginationMeta {
126
126
  limit: number;
127
127
  /** 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. */
128
128
  next_cursor?: string | null;
129
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
130
+ notes?: Array<string> | null;
129
131
  /** Current page number (1-indexed) */
130
132
  page: number;
131
133
  /** Total number of items */
132
134
  total: number;
135
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
136
+ total_available?: number | null;
137
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
138
+ total_is_lower_bound?: boolean | null;
133
139
  }
@@ -199,10 +199,16 @@ export interface PaginationMeta {
199
199
  limit: number;
200
200
  /** 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. */
201
201
  next_cursor?: string | null;
202
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
203
+ notes?: Array<string> | null;
202
204
  /** Current page number (1-indexed) */
203
205
  page: number;
204
206
  /** Total number of items */
205
207
  total: number;
208
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
209
+ total_available?: number | null;
210
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
211
+ total_is_lower_bound?: boolean | null;
206
212
  }
207
213
 
208
214
  /** One Studio object, open-shaped. See the module docstring. */
@@ -220,8 +220,14 @@ export interface PaginationMeta {
220
220
  limit: number;
221
221
  /** 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. */
222
222
  next_cursor?: string | null;
223
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
224
+ notes?: Array<string> | null;
223
225
  /** Current page number (1-indexed) */
224
226
  page: number;
225
227
  /** Total number of items */
226
228
  total: number;
229
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
230
+ total_available?: number | null;
231
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
232
+ total_is_lower_bound?: boolean | null;
227
233
  }
@@ -720,8 +720,14 @@ export interface PaginationMeta {
720
720
  limit: number;
721
721
  /** 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. */
722
722
  next_cursor?: string | null;
723
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
724
+ notes?: Array<string> | null;
723
725
  /** Current page number (1-indexed) */
724
726
  page: number;
725
727
  /** Total number of items */
726
728
  total: number;
729
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
730
+ total_available?: number | null;
731
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
732
+ total_is_lower_bound?: boolean | null;
727
733
  }
@@ -783,8 +783,14 @@ export interface ApiResponse_list_ListResponse__ {
783
783
  /** Lighter contact representation for list endpoints. */
784
784
  export interface ContactListItem {
785
785
  city?: string | null;
786
+ company_domain?: string | null;
787
+ company_employee_count?: string | null;
786
788
  company_id?: number | null;
789
+ company_industry?: string | null;
790
+ company_name?: string | null;
791
+ company_website?: string | null;
787
792
  country?: string | null;
793
+ created_at?: string | null;
788
794
  custom_fields?: (Record<string, string | null>) | null;
789
795
  direct_phone?: string | null;
790
796
  first_name?: string | null;
@@ -798,6 +804,7 @@ export interface ContactListItem {
798
804
  owner_name?: string | null;
799
805
  seniority_level?: string | null;
800
806
  state?: string | null;
807
+ updated_at?: string | null;
801
808
  work_email?: string | null;
802
809
  }
803
810
 
@@ -889,11 +896,15 @@ export interface ListCreateRequest {
889
896
 
890
897
  export interface ListCreateResponse {
891
898
  description?: string | null;
899
+ /** Ids of existing lists with the same name (case-insensitive), when any. */
900
+ duplicate_list_ids?: Array<number> | null;
892
901
  id: number;
893
902
  status?: string | null;
894
903
  title: string;
895
904
  total?: number;
896
905
  type?: string | null;
906
+ /** Set when another list already has this name. The list was still created. */
907
+ warning?: string | null;
897
908
  }
898
909
 
899
910
  /**
@@ -992,6 +1003,10 @@ export interface ListPerformanceResponse {
992
1003
 
993
1004
  /** Audience/list representation for the public API. */
994
1005
  export interface ListResponse {
1006
+ /** Number of companies in a company list (null for other list types) */
1007
+ company_count?: number | null;
1008
+ /** Number of contacts in a contact list (null for other list types) */
1009
+ contact_count?: number | null;
995
1010
  created_at?: string | null;
996
1011
  created_by?: string | null;
997
1012
  /** Agent/human-readable note describing the list's purpose (#16641) */
@@ -1006,6 +1021,7 @@ export interface ListResponse {
1006
1021
  total?: number;
1007
1022
  /** List type (contacts, companies, suppressions, deals, leads) */
1008
1023
  type?: string | null;
1024
+ /** Last change to the list. Equals created_at for a list never edited since creation. */
1009
1025
  updated_at?: string | null;
1010
1026
  }
1011
1027
 
@@ -1030,10 +1046,16 @@ export interface PaginationMeta {
1030
1046
  limit: number;
1031
1047
  /** 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. */
1032
1048
  next_cursor?: string | null;
1049
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
1050
+ notes?: Array<string> | null;
1033
1051
  /** Current page number (1-indexed) */
1034
1052
  page: number;
1035
1053
  /** Total number of items */
1036
1054
  total: number;
1055
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
1056
+ total_available?: number | null;
1057
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
1058
+ total_is_lower_bound?: boolean | null;
1037
1059
  }
1038
1060
 
1039
1061
  /**
package/docs/api/lists.md CHANGED
@@ -75,6 +75,10 @@ Exact TypeScript types for every operation on this page, and every schema they u
75
75
 
76
76
  Add contacts to a list by their IDs.
77
77
 
78
+ ``added`` is the number of membership rows really created. Ids that are not
79
+ live contacts in this org come back in ``not_found``; ids already on the
80
+ list in ``already_member`` (LI-01). A missing or deleted list is a 404.
81
+
78
82
  **Input**
79
83
 
80
84
  | Field | Type | Required | Description |
@@ -350,9 +354,11 @@ Other envelope fields: `pagination` (PaginationMeta).
350
354
  | `id` | `integer` | yes | |
351
355
  | `title` | `string` | yes | |
352
356
  | `description` | `string \| null` | no | |
357
+ | `duplicate_list_ids` | `Array<integer> \| null` | no | Ids of existing lists with the same name (case-insensitive), when any. |
353
358
  | `status` | `string \| null` | no | |
354
359
  | `total` | `integer` | no | default `0` |
355
360
  | `type` | `string \| null` | no | |
361
+ | `warning` | `string \| null` | no | Set when another list already has this name. The list was still created. |
356
362
 
357
363
  **Example**
358
364
 
@@ -815,8 +821,14 @@ Other envelope fields: `pagination` (PaginationMeta).
815
821
  | Field | Type | Required | Description |
816
822
  |---|---|---|---|
817
823
  | `city` | `string \| null` | no | |
824
+ | `company_domain` | `string \| null` | no | |
825
+ | `company_employee_count` | `string \| null` | no | |
818
826
  | `company_id` | `integer \| null` | no | |
827
+ | `company_industry` | `string \| null` | no | |
828
+ | `company_name` | `string \| null` | no | |
829
+ | `company_website` | `string \| null` | no | |
819
830
  | `country` | `string \| null` | no | |
831
+ | `created_at` | `string \| null` | no | |
820
832
  | `custom_fields` | `Record<string, string \| null> \| null` | no | |
821
833
  | `direct_phone` | `string \| null` | no | |
822
834
  | `first_name` | `string \| null` | no | |
@@ -830,6 +842,7 @@ Other envelope fields: `pagination` (PaginationMeta).
830
842
  | `owner_name` | `string \| null` | no | |
831
843
  | `seniority_level` | `string \| null` | no | |
832
844
  | `state` | `string \| null` | no | |
845
+ | `updated_at` | `string \| null` | no | |
833
846
  | `work_email` | `string \| null` | no | |
834
847
 
835
848
  **Example**
@@ -1069,6 +1082,8 @@ Other envelope fields: `pagination` (PaginationMeta).
1069
1082
  |---|---|---|---|
1070
1083
  | `id` | `integer` | yes | |
1071
1084
  | `title` | `string` | yes | |
1085
+ | `company_count` | `integer \| null` | no | Number of companies in a company list (null for other list types) |
1086
+ | `contact_count` | `integer \| null` | no | Number of contacts in a contact list (null for other list types) |
1072
1087
  | `created_at` | `string (date-time) \| null` | no | |
1073
1088
  | `created_by` | `string \| null` | no | |
1074
1089
  | `description` | `string \| null` | no | Agent/human-readable note describing the list's purpose (#16641) |
@@ -1078,7 +1093,7 @@ Other envelope fields: `pagination` (PaginationMeta).
1078
1093
  | `tags` | `Array<string>` | no | |
1079
1094
  | `total` | `integer` | no | default `0` |
1080
1095
  | `type` | `string \| null` | no | List type (contacts, companies, suppressions, deals, leads) |
1081
- | `updated_at` | `string (date-time) \| null` | no | |
1096
+ | `updated_at` | `string (date-time) \| null` | no | Last change to the list. Equals created_at for a list never edited since creation. |
1082
1097
 
1083
1098
  **Example**
1084
1099
 
@@ -1374,6 +1389,11 @@ const result = await g8.api.lists.refreshMasterListNow({ path: { audience_id: 12
1374
1389
 
1375
1390
  Remove contacts from a list.
1376
1391
 
1392
+ ``removed`` is the number of membership rows really deleted; requested ids
1393
+ that were not on the list come back in ``not_member`` (LI-01). A missing or
1394
+ deleted list is a 404 (a deleted list's membership is frozen, so nothing
1395
+ could be removed from it anyway).
1396
+
1377
1397
  **Input**
1378
1398
 
1379
1399
  | Field | Type | Required | Description |
@@ -1476,6 +1496,8 @@ Other envelope fields: `pagination` (PaginationMeta).
1476
1496
  |---|---|---|---|
1477
1497
  | `id` | `integer` | yes | |
1478
1498
  | `title` | `string` | yes | |
1499
+ | `company_count` | `integer \| null` | no | Number of companies in a company list (null for other list types) |
1500
+ | `contact_count` | `integer \| null` | no | Number of contacts in a contact list (null for other list types) |
1479
1501
  | `created_at` | `string (date-time) \| null` | no | |
1480
1502
  | `created_by` | `string \| null` | no | |
1481
1503
  | `description` | `string \| null` | no | Agent/human-readable note describing the list's purpose (#16641) |
@@ -1485,7 +1507,7 @@ Other envelope fields: `pagination` (PaginationMeta).
1485
1507
  | `tags` | `Array<string>` | no | |
1486
1508
  | `total` | `integer` | no | default `0` |
1487
1509
  | `type` | `string \| null` | no | List type (contacts, companies, suppressions, deals, leads) |
1488
- | `updated_at` | `string (date-time) \| null` | no | |
1510
+ | `updated_at` | `string (date-time) \| null` | no | Last change to the list. Equals created_at for a list never edited since creation. |
1489
1511
 
1490
1512
  **Example**
1491
1513
 
@@ -51,10 +51,16 @@ export interface PaginationMeta {
51
51
  limit: number;
52
52
  /** 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. */
53
53
  next_cursor?: string | null;
54
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
55
+ notes?: Array<string> | null;
54
56
  /** Current page number (1-indexed) */
55
57
  page: number;
56
58
  /** Total number of items */
57
59
  total: number;
60
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
61
+ total_available?: number | null;
62
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
63
+ total_is_lower_bound?: boolean | null;
58
64
  }
59
65
 
60
66
  export interface RequestLogEntry {
@@ -980,10 +980,16 @@ export interface PaginationMeta {
980
980
  limit: number;
981
981
  /** 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. */
982
982
  next_cursor?: string | null;
983
+ /** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
984
+ notes?: Array<string> | null;
983
985
  /** Current page number (1-indexed) */
984
986
  page: number;
985
987
  /** Total number of items */
986
988
  total: number;
989
+ /** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
990
+ total_available?: number | null;
991
+ /** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
992
+ total_is_lower_bound?: boolean | null;
987
993
  }
988
994
 
989
995
  /**
@@ -43,6 +43,10 @@ export interface MarketingIntelligenceOperations {
43
43
  sort_by?: "visitors" | "meetings_booked" | "reply_rate" | "engaged_pct";
44
44
  /** Comma-separated public keys to filter by */
45
45
  write_key?: string | null;
46
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
47
+ include_bots?: boolean;
48
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
49
+ include_internal?: boolean;
46
50
  };
47
51
  headers?: {
48
52
  "X-Org-Id"?: string | null;
@@ -66,6 +70,10 @@ export interface MarketingIntelligenceOperations {
66
70
  sort_by?: "views" | "meetings_booked" | "reply_rate" | "unique_visitors";
67
71
  /** Comma-separated public keys to filter by */
68
72
  write_key?: string | null;
73
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
74
+ include_bots?: boolean;
75
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
76
+ include_internal?: boolean;
69
77
  };
70
78
  headers?: {
71
79
  "X-Org-Id"?: string | null;
@@ -87,6 +95,10 @@ export interface MarketingIntelligenceOperations {
87
95
  limit?: number;
88
96
  /** Comma-separated public keys to filter by */
89
97
  write_key?: string | null;
98
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
99
+ include_bots?: boolean;
100
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
101
+ include_internal?: boolean;
90
102
  };
91
103
  headers?: {
92
104
  "X-Org-Id"?: string | null;
@@ -106,6 +118,10 @@ export interface MarketingIntelligenceOperations {
106
118
  days?: number;
107
119
  /** Comma-separated public keys to filter by */
108
120
  write_key?: string | null;
121
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
122
+ include_bots?: boolean;
123
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
124
+ include_internal?: boolean;
109
125
  };
110
126
  headers?: {
111
127
  "X-Org-Id"?: string | null;
@@ -127,6 +143,10 @@ export interface MarketingIntelligenceOperations {
127
143
  limit?: number;
128
144
  /** Comma-separated public keys to filter by */
129
145
  write_key?: string | null;
146
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
147
+ include_bots?: boolean;
148
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
149
+ include_internal?: boolean;
130
150
  };
131
151
  headers?: {
132
152
  "X-Org-Id"?: string | null;
@@ -146,6 +166,10 @@ export interface MarketingIntelligenceOperations {
146
166
  days?: number;
147
167
  /** Comma-separated public keys to filter by */
148
168
  write_key?: string | null;
169
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
170
+ include_bots?: boolean;
171
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
172
+ include_internal?: boolean;
149
173
  };
150
174
  headers?: {
151
175
  "X-Org-Id"?: string | null;
@@ -167,6 +191,10 @@ export interface MarketingIntelligenceOperations {
167
191
  limit?: number;
168
192
  /** Comma-separated public keys to filter by */
169
193
  write_key?: string | null;
194
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
195
+ include_bots?: boolean;
196
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
197
+ include_internal?: boolean;
170
198
  };
171
199
  headers?: {
172
200
  "X-Org-Id"?: string | null;
@@ -186,6 +214,10 @@ export interface MarketingIntelligenceOperations {
186
214
  days?: number;
187
215
  /** Comma-separated public keys to filter by */
188
216
  write_key?: string | null;
217
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
218
+ include_bots?: boolean;
219
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
220
+ include_internal?: boolean;
189
221
  };
190
222
  headers?: {
191
223
  "X-Org-Id"?: string | null;
@@ -205,6 +237,10 @@ export interface MarketingIntelligenceOperations {
205
237
  days?: number;
206
238
  /** Comma-separated public keys to filter by */
207
239
  write_key?: string | null;
240
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
241
+ include_bots?: boolean;
242
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
243
+ include_internal?: boolean;
208
244
  };
209
245
  headers?: {
210
246
  "X-Org-Id"?: string | null;
@@ -226,6 +262,10 @@ export interface MarketingIntelligenceOperations {
226
262
  limit?: number;
227
263
  /** Comma-separated public keys to filter by */
228
264
  write_key?: string | null;
265
+ /** Count bot and crawler traffic too. Off by default: page views from self-identified crawlers, headless browsers, HTTP libraries and datacenter/cloud networks are excluded. Set true for the raw, unfiltered counts these reports returned before the filter existed. */
266
+ include_bots?: boolean;
267
+ /** Count internal traffic too. Off by default: page views on the graph8 app (app.graph8.com) and local development hosts, and browsers identified as your own team members (member emails and your company email domains), are excluded. */
268
+ include_internal?: boolean;
229
269
  };
230
270
  headers?: {
231
271
  "X-Org-Id"?: string | null;