@graph8/sdk 0.265.0 → 0.277.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 (164) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.mts +137 -21
  3. package/dist/index.d.ts +137 -21
  4. package/dist/index.js +13 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +13 -5
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/react.d.mts +136 -19
  9. package/dist/react.d.ts +136 -19
  10. package/dist/react.js +12 -4
  11. package/dist/react.js.map +1 -1
  12. package/dist/react.mjs +12 -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 +7 -6
  21. package/docs/api/README.md +2 -2
  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 +6 -0
  30. package/docs/api/apiKeys.d.ts +6 -0
  31. package/docs/api/appDeployments.d.ts +6 -0
  32. package/docs/api/appDomains.d.ts +6 -0
  33. package/docs/api/appLogs.d.ts +6 -0
  34. package/docs/api/appObjects.d.ts +6 -0
  35. package/docs/api/appPages.d.ts +6 -0
  36. package/docs/api/appPlatformTokens.d.ts +6 -0
  37. package/docs/api/appointments.d.ts +20 -2
  38. package/docs/api/appointments.md +27 -11
  39. package/docs/api/apps.d.ts +6 -0
  40. package/docs/api/apps.md +7 -5
  41. package/docs/api/assertUpsert.d.ts +12 -0
  42. package/docs/api/assertUpsert.md +4 -0
  43. package/docs/api/audienceSyncs.d.ts +6 -0
  44. package/docs/api/brandKit.d.ts +6 -0
  45. package/docs/api/bugReports.d.ts +6 -0
  46. package/docs/api/by-path.md +1 -0
  47. package/docs/api/calendarInvites.d.ts +6 -0
  48. package/docs/api/campaignWorkflows.d.ts +6 -0
  49. package/docs/api/campaigns.d.ts +6 -0
  50. package/docs/api/channels.d.ts +6 -0
  51. package/docs/api/cliCampaigns.d.ts +6 -0
  52. package/docs/api/cliPipelines.d.ts +6 -0
  53. package/docs/api/clickHouse.d.ts +6 -0
  54. package/docs/api/companies.d.ts +10 -2
  55. package/docs/api/companies.md +9 -2
  56. package/docs/api/companyIntelligence.d.ts +6 -0
  57. package/docs/api/contacts.d.ts +19 -4
  58. package/docs/api/contacts.md +13 -5
  59. package/docs/api/content.d.ts +6 -0
  60. package/docs/api/contentGridSkills.d.ts +6 -0
  61. package/docs/api/copilot.d.ts +6 -0
  62. package/docs/api/crmSyncs.d.ts +6 -0
  63. package/docs/api/customerSuccess.d.ts +6 -0
  64. package/docs/api/deals.d.ts +6 -0
  65. package/docs/api/deliverability.d.ts +6 -0
  66. package/docs/api/desk.d.ts +6 -0
  67. package/docs/api/dialer.d.ts +6 -0
  68. package/docs/api/documents.d.ts +6 -0
  69. package/docs/api/duplicates.d.ts +6 -0
  70. package/docs/api/eSignature.d.ts +6 -0
  71. package/docs/api/enrichment.d.ts +6 -0
  72. package/docs/api/events.d.ts +6 -0
  73. package/docs/api/fields.d.ts +6 -0
  74. package/docs/api/forms.d.ts +6 -0
  75. package/docs/api/gtmCampaigns.d.ts +6 -0
  76. package/docs/api/gtmContext.d.ts +6 -0
  77. package/docs/api/gtmDeliverability.d.ts +6 -0
  78. package/docs/api/gtmKnowledgeBase.d.ts +6 -0
  79. package/docs/api/gtmLibrary.d.ts +6 -0
  80. package/docs/api/imageLibrary.d.ts +6 -0
  81. package/docs/api/imports.d.ts +6 -0
  82. package/docs/api/inbox.d.ts +6 -0
  83. package/docs/api/install.d.ts +6 -0
  84. package/docs/api/installedApps.d.ts +6 -0
  85. package/docs/api/integrationStatus.d.ts +6 -0
  86. package/docs/api/integrations.d.ts +6 -0
  87. package/docs/api/intent.d.ts +6 -0
  88. package/docs/api/knowledge.d.ts +6 -0
  89. package/docs/api/knowledgeBase.d.ts +6 -0
  90. package/docs/api/landingPages.d.ts +6 -0
  91. package/docs/api/leads.d.ts +6 -0
  92. package/docs/api/library.d.ts +6 -0
  93. package/docs/api/linkedIn.d.ts +6 -0
  94. package/docs/api/linkedInOutreach.d.ts +6 -0
  95. package/docs/api/lists.d.ts +13 -0
  96. package/docs/api/lists.md +7 -0
  97. package/docs/api/logs.d.ts +6 -0
  98. package/docs/api/mailboxes.d.ts +6 -0
  99. package/docs/api/marketplace.d.ts +6 -0
  100. package/docs/api/mcp.d.ts +6 -0
  101. package/docs/api/me.d.ts +6 -0
  102. package/docs/api/meetings.d.ts +6 -0
  103. package/docs/api/newsletter.d.ts +6 -0
  104. package/docs/api/notes.d.ts +6 -0
  105. package/docs/api/notifications.d.ts +6 -0
  106. package/docs/api/objects.d.ts +6 -0
  107. package/docs/api/openSearch.d.ts +6 -0
  108. package/docs/api/ops.d.ts +6 -0
  109. package/docs/api/orgGovernance.d.ts +6 -0
  110. package/docs/api/orgVideos.d.ts +6 -0
  111. package/docs/api/organizationSettings.d.ts +6 -0
  112. package/docs/api/phoneNumbers.d.ts +6 -0
  113. package/docs/api/profile.d.ts +6 -0
  114. package/docs/api/programmaticPages.d.ts +6 -0
  115. package/docs/api/providerDomains.d.ts +6 -0
  116. package/docs/api/providerUsage.d.ts +6 -0
  117. package/docs/api/public.d.ts +6 -0
  118. package/docs/api/publicCopilot.d.ts +6 -0
  119. package/docs/api/publicSignals.d.ts +6 -0
  120. package/docs/api/publicVisitors.d.ts +6 -0
  121. package/docs/api/quotes.d.ts +6 -0
  122. package/docs/api/radarReports.d.ts +6 -0
  123. package/docs/api/recordRoles.d.ts +6 -0
  124. package/docs/api/repos.d.ts +6 -0
  125. package/docs/api/research.d.ts +6 -0
  126. package/docs/api/revenue.d.ts +6 -0
  127. package/docs/api/revenueAnalytics.d.ts +6 -0
  128. package/docs/api/revenueLifecycle.d.ts +11 -1
  129. package/docs/api/revenueLifecycle.md +11 -2
  130. package/docs/api/revenueRecords.d.ts +6 -0
  131. package/docs/api/roles.d.ts +49 -2
  132. package/docs/api/roles.md +65 -1
  133. package/docs/api/salesCoach.d.ts +6 -0
  134. package/docs/api/scans.d.ts +6 -0
  135. package/docs/api/scheduleBuy.d.ts +6 -0
  136. package/docs/api/scraping.d.ts +6 -0
  137. package/docs/api/search.d.ts +9 -1
  138. package/docs/api/search.md +3 -2
  139. package/docs/api/seo.d.ts +6 -0
  140. package/docs/api/sequenceLifecycle.d.ts +6 -0
  141. package/docs/api/sequences.d.ts +6 -0
  142. package/docs/api/settings.d.ts +6 -0
  143. package/docs/api/signals.d.ts +6 -0
  144. package/docs/api/signatures.d.ts +6 -0
  145. package/docs/api/snippet.d.ts +6 -0
  146. package/docs/api/socialPublishing.d.ts +6 -0
  147. package/docs/api/studioDocuments.d.ts +6 -0
  148. package/docs/api/support.d.ts +6 -0
  149. package/docs/api/suppressions.d.ts +6 -0
  150. package/docs/api/surveys.d.ts +6 -0
  151. package/docs/api/tasks.d.ts +6 -0
  152. package/docs/api/teamMembers.d.ts +6 -0
  153. package/docs/api/teams.d.ts +6 -0
  154. package/docs/api/usage.d.ts +6 -0
  155. package/docs/api/visitors.d.ts +6 -0
  156. package/docs/api/voice.d.ts +6 -0
  157. package/docs/api/webChat.d.ts +6 -0
  158. package/docs/api/webhooks.d.ts +6 -0
  159. package/docs/api/websiteEditor.d.ts +6 -0
  160. package/docs/api/work.d.ts +6 -0
  161. package/docs/api/workbench.d.ts +6 -0
  162. package/docs/api/workflows.d.ts +6 -0
  163. package/docs/sdk-clients.md +5 -5
  164. package/package.json +1 -1
@@ -340,10 +340,16 @@ export interface PaginationMeta {
340
340
  limit: number;
341
341
  /** 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. */
342
342
  next_cursor?: string | null;
343
+ /** 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. */
344
+ notes?: Array<string> | null;
343
345
  /** Current page number (1-indexed) */
344
346
  page: number;
345
347
  /** Total number of items */
346
348
  total: number;
349
+ /** 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. */
350
+ total_available?: number | null;
351
+ /** 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. */
352
+ total_is_lower_bound?: boolean | null;
347
353
  }
348
354
 
349
355
  export interface RevenuePlanCreateRequest {
@@ -1,7 +1,7 @@
1
1
  /* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
2
2
 
3
3
  /**
4
- * Types for `g8.api.roles` (Roles): 20 operations.
4
+ * Types for `g8.api.roles` (Roles): 21 operations.
5
5
  *
6
6
  * For reading. In code, import from the package instead:
7
7
  * import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
@@ -21,6 +21,7 @@ export interface RolesMembers {
21
21
  getMyPermissions: "get_my_permissions_roles_me_permissions_get";
22
22
  getRole: "get_role_roles__role_id__get";
23
23
  getUserRole: "get_user_role_roles_users__user_id__get";
24
+ inviteMember: "invite_member_roles_invite_post";
24
25
  listJoinRequests: "list_join_requests_roles_join_requests_get";
25
26
  listOrgUsers: "list_org_users_roles_org_users_get";
26
27
  listPendingInvites: "list_pending_invites_roles_pending_invites_get";
@@ -158,6 +159,20 @@ export interface RolesOperations {
158
159
  };
159
160
  output: ApiResponse_OrgPayload_;
160
161
  };
162
+ /**
163
+ * POST /roles/invite
164
+ * Invite Member
165
+ * tier: external · scope: account:run
166
+ */
167
+ invite_member_roles_invite_post: {
168
+ input: {
169
+ headers?: {
170
+ "X-Target-Org-Id"?: string | null;
171
+ };
172
+ body: InviteMemberRequest;
173
+ };
174
+ output: ApiResponse_OrgPayload_;
175
+ };
161
176
  /**
162
177
  * GET /roles/join-requests
163
178
  * List Join Requests
@@ -333,7 +348,7 @@ export interface RolesOperations {
333
348
  };
334
349
  }
335
350
 
336
- // 8 schemas referenced above (the same as G8Contract.<Name>).
351
+ // 9 schemas referenced above (the same as G8Contract.<Name>).
337
352
 
338
353
  export interface ApiResponse_OrgListPayload_ {
339
354
  data: OrgListPayload;
@@ -345,6 +360,32 @@ export interface ApiResponse_OrgPayload_ {
345
360
  pagination?: PaginationMeta | null;
346
361
  }
347
362
 
363
+ /**
364
+ * Invite one person into the organisation. Mirrors `roles.InviteUserRequest`
365
+ * with ONE addition: the role may be named instead of identified by UUID.
366
+ *
367
+ * The app model takes `role_id: UUID` only, because its caller is a role
368
+ * picker that already holds the id. An API caller holds a NAME - "Engineer",
369
+ * "Member" - and making it fetch `GET /roles` first to translate is a round
370
+ * trip this contract can absorb. So exactly one of `role_id` or `role` is
371
+ * required; `role` is resolved against this organisation's own roles by slug
372
+ * first, then by case-insensitive display name.
373
+ *
374
+ * `role` is deliberately NOT defaulted to "Member". An absent role on an
375
+ * invitation is a caller mistake, and silently picking the fallback is how
376
+ * someone ends up in an organisation at a permission level nobody chose.
377
+ */
378
+ export interface InviteMemberRequest {
379
+ /** Email address to invite. Matched case-insensitively against existing members and invitations. */
380
+ email: string;
381
+ /** List ids to assign. Honoured for the `service_provider` role only, as in the app. */
382
+ list_ids?: Array<number> | null;
383
+ /** Role slug or display name to grant, resolved within this organisation (slug first, then case-insensitive name). Mutually exclusive with `role_id`. */
384
+ role?: string | null;
385
+ /** Id of the role to grant, from `GET /roles`. Mutually exclusive with `role`. */
386
+ role_id?: string | null;
387
+ }
388
+
348
389
  /**
349
390
  * An open envelope for a LIST result, so a bare list keeps its shape.
350
391
  *
@@ -377,10 +418,16 @@ export interface PaginationMeta {
377
418
  limit: number;
378
419
  /** 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. */
379
420
  next_cursor?: string | null;
421
+ /** 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. */
422
+ notes?: Array<string> | null;
380
423
  /** Current page number (1-indexed) */
381
424
  page: number;
382
425
  /** Total number of items */
383
426
  total: number;
427
+ /** 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. */
428
+ total_available?: number | null;
429
+ /** 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. */
430
+ total_is_lower_bound?: boolean | null;
384
431
  }
385
432
 
386
433
  /**
package/docs/api/roles.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # `g8.api.roles`: Roles
4
4
 
5
- 20 operations (14 read, 2 write, 4 destructive).
5
+ 21 operations (14 read, 2 write, 4 destructive, 1 external).
6
6
 
7
7
  No hand-written client covers this area. Call it through `g8.api.roles.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
8
8
 
@@ -30,6 +30,7 @@ Exact TypeScript types for every operation on this page, and every schema they u
30
30
  | [`getMyPermissions`](#op-getmypermissions) | `GET /api/v1/roles/me/permissions` | read | `account:read` | Get My Permissions |
31
31
  | [`getRole`](#op-getrole) | `GET /api/v1/roles/{role_id}` | read | `account:read` | Get Role |
32
32
  | [`getUserRole`](#op-getuserrole) | `GET /api/v1/roles/users/{user_id}` | read | `account:read` | Get User Role |
33
+ | [`inviteMember`](#op-invitemember) | `POST /api/v1/roles/invite` | external | `account:run` | Invite Member |
33
34
  | [`listJoinRequests`](#op-listjoinrequests) | `GET /api/v1/roles/join-requests` | read | `account:read` | List Join Requests |
34
35
  | [`listOrgUsers`](#op-listorgusers) | `GET /api/v1/roles/org-users` | read | `account:read` | List Org Users |
35
36
  | [`listPendingInvites`](#op-listpendinginvites) | `GET /api/v1/roles/pending-invites` | read | `account:read` | List Pending Invites |
@@ -333,6 +334,69 @@ const result = await g8.api.roles.getUserRole({ path: { user_id: "id" } });
333
334
 
334
335
  ---
335
336
 
337
+ <a id="op-invitemember"></a>
338
+
339
+ ### `g8.api.roles.inviteMember(input)`
340
+
341
+ **Invite Member**
342
+
343
+ - HTTP: `POST /api/v1/roles/invite`
344
+ - operationId: `invite_member_roles_invite_post` (also callable as `g8.api.call("invite_member_roles_invite_post", input)`)
345
+ - Tier: `external`: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first
346
+ - API-key scope: `account:run`
347
+
348
+ Invite one person into the organisation, at a role below administrator.
349
+
350
+ `status` in the response is the app's own: `invited` when an invitation
351
+ email went out to someone with no graph8 account, `added` when the person
352
+ already had one and now holds the role immediately. Re-inviting the same
353
+ address is safe - the pending invitation is UPDATED to the new role rather
354
+ than duplicated - so a reconciliation loop may call this once per row.
355
+
356
+ ADMINISTRATOR ROLES ARE REFUSED HERE, AND THAT IS WHY THIS ROUTE CAN EXIST
357
+ AT ALL. The module docstring withholds every route that can end with a
358
+ person holding PropelAuth `Owner` or `Admin`. The reason is specific:
359
+ `build_api_principal` can answer AS an org administrator, and the app's
360
+ `_assert_can_grant_permissions` bypasses its non-escalation check for a
361
+ privileged org role - so a bare proxy of the app handler would let a
362
+ credential mint an administrator. Capping the role here removes exactly
363
+ that, and leaves the capability that was actually asked for: admitting
364
+ members and project roles in bulk from a script, a workflow or an agent.
365
+ Granting administration stays a decision for a person, in the product.
366
+
367
+ 422 when neither or both of `role_id`/`role` are given; 404 when the role is
368
+ not this organisation's; 403 when the role is administrator-equivalent, or
369
+ when the app refuses the grant because the key's own permissions do not
370
+ cover the role's.
371
+
372
+ **Input**
373
+
374
+ | Field | Type | Required | Description |
375
+ |---|---|---|---|
376
+ | `body` | `InviteMemberRequest` | yes | Request body; fields below. |
377
+
378
+ Body fields (`InviteMemberRequest`):
379
+
380
+ | Field | Type | Required | Description |
381
+ |---|---|---|---|
382
+ | `body.email` | `string` | yes | Email address to invite. Matched case-insensitively against existing members and invitations. min length 3, max length 255 |
383
+ | `body.list_ids` | `Array<integer> \| null` | no | List ids to assign. Honoured for the `service_provider` role only, as in the app. |
384
+ | `body.role` | `string \| null` | no | Role slug or display name to grant, resolved within this organisation (slug first, then case-insensitive name). Mutually exclusive with `role_id`. min length 1, max length 100 |
385
+ | `body.role_id` | `string (uuid) \| null` | no | Id of the role to grant, from `GET /roles`. Mutually exclusive with `role`. |
386
+
387
+ **Returns** `ApiResponse_OrgPayload_`: the envelope `{ data: OrgPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
388
+
389
+ Other envelope fields: `pagination` (PaginationMeta).
390
+
391
+ **Example**
392
+
393
+ ```ts
394
+ // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
395
+ const result = await g8.api.roles.inviteMember({ body: { email: "jane@acme.com" } });
396
+ ```
397
+
398
+ ---
399
+
336
400
  <a id="op-listjoinrequests"></a>
337
401
 
338
402
  ### `g8.api.roles.listJoinRequests(input?)`
@@ -808,10 +808,16 @@ export interface PaginationMeta {
808
808
  limit: number;
809
809
  /** 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. */
810
810
  next_cursor?: string | null;
811
+ /** 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. */
812
+ notes?: Array<string> | null;
811
813
  /** Current page number (1-indexed) */
812
814
  page: number;
813
815
  /** Total number of items */
814
816
  total: number;
817
+ /** 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. */
818
+ total_available?: number | null;
819
+ /** 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. */
820
+ total_is_lower_bound?: boolean | null;
815
821
  }
816
822
 
817
823
  /** A ROTATION of leaderboards - what a wall display cycles through. */
@@ -70,10 +70,16 @@ export interface PaginationMeta {
70
70
  limit: number;
71
71
  /** 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. */
72
72
  next_cursor?: string | null;
73
+ /** 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. */
74
+ notes?: Array<string> | null;
73
75
  /** Current page number (1-indexed) */
74
76
  page: number;
75
77
  /** Total number of items */
76
78
  total: number;
79
+ /** 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. */
80
+ total_available?: number | null;
81
+ /** 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. */
82
+ total_is_lower_bound?: boolean | null;
77
83
  }
78
84
 
79
85
  export interface ScanResponse {
@@ -206,10 +206,16 @@ export interface PaginationMeta {
206
206
  limit: number;
207
207
  /** 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. */
208
208
  next_cursor?: string | null;
209
+ /** 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. */
210
+ notes?: Array<string> | null;
209
211
  /** Current page number (1-indexed) */
210
212
  page: number;
211
213
  /** Total number of items */
212
214
  total: number;
215
+ /** 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. */
216
+ total_available?: number | null;
217
+ /** 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. */
218
+ total_is_lower_bound?: boolean | null;
213
219
  }
214
220
 
215
221
  /** Validate edited candidate names: owned-by-you, and available. SPENDS NOTHING. */
@@ -201,10 +201,16 @@ export interface PaginationMeta {
201
201
  limit: number;
202
202
  /** 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. */
203
203
  next_cursor?: string | null;
204
+ /** 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. */
205
+ notes?: Array<string> | null;
204
206
  /** Current page number (1-indexed) */
205
207
  page: number;
206
208
  /** Total number of items */
207
209
  total: number;
210
+ /** 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. */
211
+ total_available?: number | null;
212
+ /** 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. */
213
+ total_is_lower_bound?: boolean | null;
208
214
  }
209
215
 
210
216
  /** Change how the org crawls. Only what you send is written. */
@@ -428,10 +428,16 @@ export interface PaginationMeta {
428
428
  limit: number;
429
429
  /** 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. */
430
430
  next_cursor?: string | null;
431
+ /** 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. */
432
+ notes?: Array<string> | null;
431
433
  /** Current page number (1-indexed) */
432
434
  page: number;
433
435
  /** Total number of items */
434
436
  total: number;
437
+ /** 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. */
438
+ total_available?: number | null;
439
+ /** 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. */
440
+ total_is_lower_bound?: boolean | null;
435
441
  }
436
442
 
437
443
  /**
@@ -497,6 +503,8 @@ export interface SearchContactItem {
497
503
  last_name?: string | null;
498
504
  linkedin_headline?: string | null;
499
505
  linkedin_url?: string | null;
506
+ /** Fields whose value exists but is locked (shown as "***") until the contact is added to a list. A null field has no value. */
507
+ locked_fields?: Array<string>;
500
508
  middle_name?: string | null;
501
509
  mobile_phone?: string | null;
502
510
  personal_emails?: string | null;
@@ -528,7 +536,7 @@ export interface SearchRequest {
528
536
  filters?: Array<SearchFilter>;
529
537
  /** Results per page (max 100) */
530
538
  limit?: number;
531
- /** Page number (1-indexed) */
539
+ /** Page number (1-indexed). page * limit may not exceed 10,000 (the paging window); narrow the filters to reach records beyond it. */
532
540
  page?: number;
533
541
  }
534
542
 
@@ -566,7 +566,7 @@ Body fields (`SearchRequest`):
566
566
  |---|---|---|---|
567
567
  | `body.filters` | `Array<SearchFilter>` | no | Filter conditions (AND logic) |
568
568
  | `body.limit` | `integer` | no | Results per page (max 100) default `25`, min 1, max 100 |
569
- | `body.page` | `integer` | no | Page number (1-indexed) default `1`, min 1, max 100 |
569
+ | `body.page` | `integer` | no | Page number (1-indexed). page * limit may not exceed 10,000 (the paging window); narrow the filters to reach records beyond it. default `1`, min 1 |
570
570
 
571
571
  **Returns** `ApiResponse_list_SearchCompanyItem__`: the envelope `{ data: Array<SearchCompanyItem>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
572
572
 
@@ -633,7 +633,7 @@ Body fields (`SearchRequest`):
633
633
  |---|---|---|---|
634
634
  | `body.filters` | `Array<SearchFilter>` | no | Filter conditions (AND logic) |
635
635
  | `body.limit` | `integer` | no | Results per page (max 100) default `25`, min 1, max 100 |
636
- | `body.page` | `integer` | no | Page number (1-indexed) default `1`, min 1, max 100 |
636
+ | `body.page` | `integer` | no | Page number (1-indexed). page * limit may not exceed 10,000 (the paging window); narrow the filters to reach records beyond it. default `1`, min 1 |
637
637
 
638
638
  **Returns** `ApiResponse_list_SearchContactItem__`: the envelope `{ data: Array<SearchContactItem>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
639
639
 
@@ -658,6 +658,7 @@ Other envelope fields: `pagination` (PaginationMeta).
658
658
  | `last_name` | `string \| null` | no | |
659
659
  | `linkedin_headline` | `string \| null` | no | |
660
660
  | `linkedin_url` | `string \| null` | no | |
661
+ | `locked_fields` | `Array<string>` | no | Fields whose value exists but is locked (shown as "***") until the contact is added to a list. A null field has no value. |
661
662
  | `middle_name` | `string \| null` | no | |
662
663
  | `mobile_phone` | `string \| null` | no | |
663
664
  | `personal_emails` | `string \| null` | no | |
package/docs/api/seo.d.ts CHANGED
@@ -260,10 +260,16 @@ export interface PaginationMeta {
260
260
  limit: number;
261
261
  /** 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. */
262
262
  next_cursor?: string | null;
263
+ /** 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. */
264
+ notes?: Array<string> | null;
263
265
  /** Current page number (1-indexed) */
264
266
  page: number;
265
267
  /** Total number of items */
266
268
  total: number;
269
+ /** 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. */
270
+ total_available?: number | null;
271
+ /** 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. */
272
+ total_is_lower_bound?: boolean | null;
267
273
  }
268
274
 
269
275
  /** Mirrors `AuditDTO`. */
@@ -259,10 +259,16 @@ export interface PaginationMeta {
259
259
  limit: number;
260
260
  /** 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. */
261
261
  next_cursor?: string | null;
262
+ /** 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. */
263
+ notes?: Array<string> | null;
262
264
  /** Current page number (1-indexed) */
263
265
  page: number;
264
266
  /** Total number of items */
265
267
  total: number;
268
+ /** 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. */
269
+ total_available?: number | null;
270
+ /** 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. */
271
+ total_is_lower_bound?: boolean | null;
266
272
  }
267
273
 
268
274
  export interface PreviewChannelItem {
@@ -1672,10 +1672,16 @@ export interface PaginationMeta {
1672
1672
  limit: number;
1673
1673
  /** 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. */
1674
1674
  next_cursor?: string | null;
1675
+ /** 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. */
1676
+ notes?: Array<string> | null;
1675
1677
  /** Current page number (1-indexed) */
1676
1678
  page: number;
1677
1679
  /** Total number of items */
1678
1680
  total: number;
1681
+ /** 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. */
1682
+ total_available?: number | null;
1683
+ /** 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. */
1684
+ total_is_lower_bound?: boolean | null;
1679
1685
  }
1680
1686
 
1681
1687
  /** Detach senders from a sequence. Mirrors `BulkArchiveChannelParams`. */
@@ -393,10 +393,16 @@ export interface PaginationMeta {
393
393
  limit: number;
394
394
  /** 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. */
395
395
  next_cursor?: string | null;
396
+ /** 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. */
397
+ notes?: Array<string> | null;
396
398
  /** Current page number (1-indexed) */
397
399
  page: number;
398
400
  /** Total number of items */
399
401
  total: number;
402
+ /** 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. */
403
+ total_available?: number | null;
404
+ /** 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. */
405
+ total_is_lower_bound?: boolean | null;
400
406
  }
401
407
 
402
408
  /**
@@ -1276,10 +1276,16 @@ export interface PaginationMeta {
1276
1276
  limit: number;
1277
1277
  /** 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. */
1278
1278
  next_cursor?: string | null;
1279
+ /** 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. */
1280
+ notes?: Array<string> | null;
1279
1281
  /** Current page number (1-indexed) */
1280
1282
  page: number;
1281
1283
  /** Total number of items */
1282
1284
  total: number;
1285
+ /** 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. */
1286
+ total_available?: number | null;
1287
+ /** 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. */
1288
+ total_is_lower_bound?: boolean | null;
1283
1289
  }
1284
1290
 
1285
1291
  /**
@@ -504,10 +504,16 @@ export interface PaginationMeta {
504
504
  limit: number;
505
505
  /** 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. */
506
506
  next_cursor?: string | null;
507
+ /** 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. */
508
+ notes?: Array<string> | null;
507
509
  /** Current page number (1-indexed) */
508
510
  page: number;
509
511
  /** Total number of items */
510
512
  total: number;
513
+ /** 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. */
514
+ total_available?: number | null;
515
+ /** 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. */
516
+ total_is_lower_bound?: boolean | null;
511
517
  }
512
518
 
513
519
  export interface SignatureArchiveResponse {
@@ -66,10 +66,16 @@ export interface PaginationMeta {
66
66
  limit: number;
67
67
  /** 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. */
68
68
  next_cursor?: string | null;
69
+ /** 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. */
70
+ notes?: Array<string> | null;
69
71
  /** Current page number (1-indexed) */
70
72
  page: number;
71
73
  /** Total number of items */
72
74
  total: number;
75
+ /** 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. */
76
+ total_available?: number | null;
77
+ /** 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. */
78
+ total_is_lower_bound?: boolean | null;
73
79
  }
74
80
 
75
81
  export interface SnippetResponse {
@@ -494,10 +494,16 @@ export interface PaginationMeta {
494
494
  limit: number;
495
495
  /** 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. */
496
496
  next_cursor?: string | null;
497
+ /** 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. */
498
+ notes?: Array<string> | null;
497
499
  /** Current page number (1-indexed) */
498
500
  page: number;
499
501
  /** Total number of items */
500
502
  total: number;
503
+ /** 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. */
504
+ total_available?: number | null;
505
+ /** 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. */
506
+ total_is_lower_bound?: boolean | null;
501
507
  }
502
508
 
503
509
  /** A connected social account. `id` is what `account_ref` takes everywhere else. */
@@ -215,10 +215,16 @@ export interface PaginationMeta {
215
215
  limit: number;
216
216
  /** 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. */
217
217
  next_cursor?: string | null;
218
+ /** 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. */
219
+ notes?: Array<string> | null;
218
220
  /** Current page number (1-indexed) */
219
221
  page: number;
220
222
  /** Total number of items */
221
223
  total: number;
224
+ /** 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. */
225
+ total_available?: number | null;
226
+ /** 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. */
227
+ total_is_lower_bound?: boolean | null;
222
228
  }
223
229
 
224
230
  /**
@@ -83,8 +83,14 @@ export interface PaginationMeta {
83
83
  limit: number;
84
84
  /** 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. */
85
85
  next_cursor?: string | null;
86
+ /** 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. */
87
+ notes?: Array<string> | null;
86
88
  /** Current page number (1-indexed) */
87
89
  page: number;
88
90
  /** Total number of items */
89
91
  total: number;
92
+ /** 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. */
93
+ total_available?: number | null;
94
+ /** 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. */
95
+ total_is_lower_bound?: boolean | null;
90
96
  }
@@ -178,10 +178,16 @@ export interface PaginationMeta {
178
178
  limit: number;
179
179
  /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
180
180
  next_cursor?: string | null;
181
+ /** 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. */
182
+ notes?: Array<string> | null;
181
183
  /** Current page number (1-indexed) */
182
184
  page: number;
183
185
  /** Total number of items */
184
186
  total: number;
187
+ /** 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. */
188
+ total_available?: number | null;
189
+ /** 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. */
190
+ total_is_lower_bound?: boolean | null;
185
191
  }
186
192
 
187
193
  export interface ReinstateSkip {
@@ -621,10 +621,16 @@ export interface PaginationMeta {
621
621
  limit: number;
622
622
  /** 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. */
623
623
  next_cursor?: string | null;
624
+ /** 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. */
625
+ notes?: Array<string> | null;
624
626
  /** Current page number (1-indexed) */
625
627
  page: number;
626
628
  /** Total number of items */
627
629
  total: number;
630
+ /** 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. */
631
+ total_available?: number | null;
632
+ /** 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. */
633
+ total_is_lower_bound?: boolean | null;
628
634
  }
629
635
 
630
636
  export interface PerSurveyDTO {
@@ -561,10 +561,16 @@ export interface PaginationMeta {
561
561
  limit: number;
562
562
  /** 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. */
563
563
  next_cursor?: string | null;
564
+ /** 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. */
565
+ notes?: Array<string> | null;
564
566
  /** Current page number (1-indexed) */
565
567
  page: number;
566
568
  /** Total number of items */
567
569
  total: number;
570
+ /** 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. */
571
+ total_available?: number | null;
572
+ /** 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. */
573
+ total_is_lower_bound?: boolean | null;
568
574
  }
569
575
 
570
576
  /**
@@ -661,8 +661,14 @@ export interface PaginationMeta {
661
661
  limit: number;
662
662
  /** 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. */
663
663
  next_cursor?: string | null;
664
+ /** 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. */
665
+ notes?: Array<string> | null;
664
666
  /** Current page number (1-indexed) */
665
667
  page: number;
666
668
  /** Total number of items */
667
669
  total: number;
670
+ /** 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. */
671
+ total_available?: number | null;
672
+ /** 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. */
673
+ total_is_lower_bound?: boolean | null;
668
674
  }
@@ -709,10 +709,16 @@ export interface PaginationMeta {
709
709
  limit: number;
710
710
  /** 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. */
711
711
  next_cursor?: string | null;
712
+ /** 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. */
713
+ notes?: Array<string> | null;
712
714
  /** Current page number (1-indexed) */
713
715
  page: number;
714
716
  /** Total number of items */
715
717
  total: number;
718
+ /** 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. */
719
+ total_available?: number | null;
720
+ /** 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. */
721
+ total_is_lower_bound?: boolean | null;
716
722
  }
717
723
 
718
724
  /**
@@ -209,10 +209,16 @@ export interface PaginationMeta {
209
209
  limit: number;
210
210
  /** 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. */
211
211
  next_cursor?: string | null;
212
+ /** 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. */
213
+ notes?: Array<string> | null;
212
214
  /** Current page number (1-indexed) */
213
215
  page: number;
214
216
  /** Total number of items */
215
217
  total: number;
218
+ /** 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. */
219
+ total_available?: number | null;
220
+ /** 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. */
221
+ total_is_lower_bound?: boolean | null;
216
222
  }
217
223
 
218
224
  /**