@graph8/sdk 0.264.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 (165) hide show
  1. package/README.md +3 -3
  2. package/dist/index.d.mts +140 -24
  3. package/dist/index.d.ts +140 -24
  4. package/dist/index.js +14 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +14 -5
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/react.d.mts +139 -22
  9. package/dist/react.d.ts +139 -22
  10. package/dist/react.js +13 -4
  11. package/dist/react.js.map +1 -1
  12. package/dist/react.mjs +13 -4
  13. package/dist/react.mjs.map +1 -1
  14. package/dist/types/core.d.ts +3 -1
  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 +7 -3
  18. package/dist/types/search.d.ts +25 -1
  19. package/dist/types/version.d.ts +2 -2
  20. package/dist/types/webhooks.d.ts +2 -2
  21. package/docs/agents.md +7 -6
  22. package/docs/api/README.md +2 -2
  23. package/docs/api/accounts.d.ts +6 -0
  24. package/docs/api/adCampaigns.d.ts +6 -0
  25. package/docs/api/adCreatives.d.ts +6 -0
  26. package/docs/api/agency.d.ts +6 -0
  27. package/docs/api/agent.d.ts +6 -0
  28. package/docs/api/agents.d.ts +6 -0
  29. package/docs/api/aiInbox.d.ts +6 -0
  30. package/docs/api/analytics.d.ts +6 -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 +12 -0
  43. package/docs/api/assertUpsert.md +4 -0
  44. package/docs/api/audienceSyncs.d.ts +6 -0
  45. package/docs/api/brandKit.d.ts +6 -0
  46. package/docs/api/bugReports.d.ts +6 -0
  47. package/docs/api/by-path.md +1 -0
  48. package/docs/api/calendarInvites.d.ts +6 -0
  49. package/docs/api/campaignWorkflows.d.ts +6 -0
  50. package/docs/api/campaigns.d.ts +6 -0
  51. package/docs/api/channels.d.ts +6 -0
  52. package/docs/api/cliCampaigns.d.ts +6 -0
  53. package/docs/api/cliPipelines.d.ts +6 -0
  54. package/docs/api/clickHouse.d.ts +6 -0
  55. package/docs/api/companies.d.ts +10 -2
  56. package/docs/api/companies.md +9 -2
  57. package/docs/api/companyIntelligence.d.ts +6 -0
  58. package/docs/api/contacts.d.ts +19 -4
  59. package/docs/api/contacts.md +13 -5
  60. package/docs/api/content.d.ts +6 -0
  61. package/docs/api/contentGridSkills.d.ts +6 -0
  62. package/docs/api/copilot.d.ts +6 -0
  63. package/docs/api/crmSyncs.d.ts +6 -0
  64. package/docs/api/customerSuccess.d.ts +6 -0
  65. package/docs/api/deals.d.ts +6 -0
  66. package/docs/api/deliverability.d.ts +6 -0
  67. package/docs/api/desk.d.ts +6 -0
  68. package/docs/api/dialer.d.ts +6 -0
  69. package/docs/api/documents.d.ts +6 -0
  70. package/docs/api/duplicates.d.ts +6 -0
  71. package/docs/api/eSignature.d.ts +6 -0
  72. package/docs/api/enrichment.d.ts +6 -0
  73. package/docs/api/events.d.ts +6 -0
  74. package/docs/api/fields.d.ts +6 -0
  75. package/docs/api/forms.d.ts +6 -0
  76. package/docs/api/gtmCampaigns.d.ts +6 -0
  77. package/docs/api/gtmContext.d.ts +6 -0
  78. package/docs/api/gtmDeliverability.d.ts +6 -0
  79. package/docs/api/gtmKnowledgeBase.d.ts +6 -0
  80. package/docs/api/gtmLibrary.d.ts +6 -0
  81. package/docs/api/imageLibrary.d.ts +6 -0
  82. package/docs/api/imports.d.ts +6 -0
  83. package/docs/api/inbox.d.ts +6 -0
  84. package/docs/api/install.d.ts +6 -0
  85. package/docs/api/installedApps.d.ts +6 -0
  86. package/docs/api/integrationStatus.d.ts +6 -0
  87. package/docs/api/integrations.d.ts +6 -0
  88. package/docs/api/intent.d.ts +6 -0
  89. package/docs/api/knowledge.d.ts +6 -0
  90. package/docs/api/knowledgeBase.d.ts +6 -0
  91. package/docs/api/landingPages.d.ts +6 -0
  92. package/docs/api/leads.d.ts +6 -0
  93. package/docs/api/library.d.ts +6 -0
  94. package/docs/api/linkedIn.d.ts +6 -0
  95. package/docs/api/linkedInOutreach.d.ts +6 -0
  96. package/docs/api/lists.d.ts +13 -0
  97. package/docs/api/lists.md +7 -0
  98. package/docs/api/logs.d.ts +6 -0
  99. package/docs/api/mailboxes.d.ts +6 -0
  100. package/docs/api/marketplace.d.ts +6 -0
  101. package/docs/api/mcp.d.ts +6 -0
  102. package/docs/api/me.d.ts +6 -0
  103. package/docs/api/meetings.d.ts +6 -0
  104. package/docs/api/newsletter.d.ts +6 -0
  105. package/docs/api/notes.d.ts +6 -0
  106. package/docs/api/notifications.d.ts +6 -0
  107. package/docs/api/objects.d.ts +6 -0
  108. package/docs/api/openSearch.d.ts +6 -0
  109. package/docs/api/ops.d.ts +6 -0
  110. package/docs/api/orgGovernance.d.ts +6 -0
  111. package/docs/api/orgVideos.d.ts +6 -0
  112. package/docs/api/organizationSettings.d.ts +6 -0
  113. package/docs/api/phoneNumbers.d.ts +6 -0
  114. package/docs/api/profile.d.ts +6 -0
  115. package/docs/api/programmaticPages.d.ts +6 -0
  116. package/docs/api/providerDomains.d.ts +6 -0
  117. package/docs/api/providerUsage.d.ts +6 -0
  118. package/docs/api/public.d.ts +6 -0
  119. package/docs/api/publicCopilot.d.ts +6 -0
  120. package/docs/api/publicSignals.d.ts +6 -0
  121. package/docs/api/publicVisitors.d.ts +6 -0
  122. package/docs/api/quotes.d.ts +6 -0
  123. package/docs/api/radarReports.d.ts +6 -0
  124. package/docs/api/recordRoles.d.ts +6 -0
  125. package/docs/api/repos.d.ts +6 -0
  126. package/docs/api/research.d.ts +6 -0
  127. package/docs/api/revenue.d.ts +6 -0
  128. package/docs/api/revenueAnalytics.d.ts +6 -0
  129. package/docs/api/revenueLifecycle.d.ts +11 -1
  130. package/docs/api/revenueLifecycle.md +11 -2
  131. package/docs/api/revenueRecords.d.ts +6 -0
  132. package/docs/api/roles.d.ts +49 -2
  133. package/docs/api/roles.md +65 -1
  134. package/docs/api/salesCoach.d.ts +6 -0
  135. package/docs/api/scans.d.ts +6 -0
  136. package/docs/api/scheduleBuy.d.ts +6 -0
  137. package/docs/api/scraping.d.ts +6 -0
  138. package/docs/api/search.d.ts +9 -1
  139. package/docs/api/search.md +3 -2
  140. package/docs/api/seo.d.ts +6 -0
  141. package/docs/api/sequenceLifecycle.d.ts +6 -0
  142. package/docs/api/sequences.d.ts +6 -0
  143. package/docs/api/settings.d.ts +6 -0
  144. package/docs/api/signals.d.ts +6 -0
  145. package/docs/api/signatures.d.ts +6 -0
  146. package/docs/api/snippet.d.ts +6 -0
  147. package/docs/api/socialPublishing.d.ts +6 -0
  148. package/docs/api/studioDocuments.d.ts +6 -0
  149. package/docs/api/support.d.ts +6 -0
  150. package/docs/api/suppressions.d.ts +6 -0
  151. package/docs/api/surveys.d.ts +6 -0
  152. package/docs/api/tasks.d.ts +6 -0
  153. package/docs/api/teamMembers.d.ts +6 -0
  154. package/docs/api/teams.d.ts +6 -0
  155. package/docs/api/usage.d.ts +6 -0
  156. package/docs/api/visitors.d.ts +6 -0
  157. package/docs/api/voice.d.ts +6 -0
  158. package/docs/api/webChat.d.ts +6 -0
  159. package/docs/api/webhooks.d.ts +6 -0
  160. package/docs/api/websiteEditor.d.ts +6 -0
  161. package/docs/api/work.d.ts +6 -0
  162. package/docs/api/workbench.d.ts +6 -0
  163. package/docs/api/workflows.d.ts +6 -0
  164. package/docs/sdk-clients.md +5 -5
  165. package/package.json +1 -1
@@ -1427,7 +1427,7 @@ export interface AppointmentsOperations {
1427
1427
  };
1428
1428
  /**
1429
1429
  * PATCH /appointments/bookings/{booking_uid}/location
1430
- * Update the meeting location and notify both parties
1430
+ * Change a booking's location and/or conferencing
1431
1431
  * tier: external · scope: meetings:run
1432
1432
  */
1433
1433
  update_booking_location_appointments_bookings__booking_uid__location_patch: {
@@ -2028,10 +2028,16 @@ export interface PaginationMeta {
2028
2028
  limit: number;
2029
2029
  /** 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. */
2030
2030
  next_cursor?: string | null;
2031
+ /** 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. */
2032
+ notes?: Array<string> | null;
2031
2033
  /** Current page number (1-indexed) */
2032
2034
  page: number;
2033
2035
  /** Total number of items */
2034
2036
  total: number;
2037
+ /** 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. */
2038
+ total_available?: number | null;
2039
+ /** 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. */
2040
+ total_is_lower_bound?: boolean | null;
2035
2041
  }
2036
2042
 
2037
2043
  export interface RequestRescheduleRequest {
@@ -2235,8 +2241,20 @@ export interface UpdateEventTypeRequest {
2235
2241
  use_common_schedule?: boolean | null;
2236
2242
  }
2237
2243
 
2244
+ /**
2245
+ * Change a booking's location and/or conferencing.
2246
+ *
2247
+ * Send only the field you change: an omitted field is left as is, and ``null``
2248
+ * clears it. ``selected_location`` is a physical, phone or custom location;
2249
+ * ``selected_conferencing`` is a meeting link or a conferencing app (a new
2250
+ * meeting room is created for zoom, roam_auto, ms_teams and google_meet).
2251
+ * ``location`` is deprecated: a plain address, kept for older clients.
2252
+ */
2238
2253
  export interface UpdateLocationRequest {
2239
- location: string;
2254
+ location?: string | null;
2255
+ notify_attendees?: boolean;
2256
+ selected_conferencing?: LocationItem | null;
2257
+ selected_location?: LocationItem | null;
2240
2258
  }
2241
2259
 
2242
2260
  /** A member's SCHEDULING role - not their graph8 organisation role. */
@@ -100,7 +100,7 @@ Exact TypeScript types for every operation on this page, and every schema they u
100
100
  | [`toggleWorkflow`](#op-toggleworkflow) | `POST /api/v1/appointments/workflows/{workflow_id}/toggle` | external | `meetings:run` | Activate or deactivate a workflow |
101
101
  | [`unassignManagedMember`](#op-unassignmanagedmember) | `DELETE /api/v1/appointments/event-types/{event_type_id}/members/{user_id}` | destructive | `meetings:delete` | Unassign Managed Member |
102
102
  | [`updateAvailability`](#op-updateavailability) | `PATCH /api/v1/appointments/schedules/{schedule_id}/availability` | write | `meetings:write` | Replace availability rules and/or date overrides for a schedule |
103
- | [`updateBookingLocation`](#op-updatebookinglocation) | `PATCH /api/v1/appointments/bookings/{booking_uid}/location` | external | `meetings:run` | Update the meeting location and notify both parties |
103
+ | [`updateBookingLocation`](#op-updatebookinglocation) | `PATCH /api/v1/appointments/bookings/{booking_uid}/location` | external | `meetings:run` | Change a booking's location and/or conferencing |
104
104
  | [`updateBookingSequence`](#op-updatebookingsequence) | `PATCH /api/v1/appointments/bookings/{booking_uid}/sequence` | external | `meetings:run` | Associate a booking with a sequence (or detach) |
105
105
  | [`updateEmbedConfig`](#op-updateembedconfig) | `PATCH /api/v1/appointments/event-types/{event_type_id}/embed` | write | `meetings:write` | Update Embed Config |
106
106
  | [`updateEventType`](#op-updateeventtype) | `PATCH /api/v1/appointments/event-types/{event_type_id}` | write | `meetings:write` | Update an event type (partial) |
@@ -145,7 +145,7 @@ Body fields (`AddGuestsRequest`):
145
145
 
146
146
  | Field | Type | Required | Description |
147
147
  |---|---|---|---|
148
- | `body.guests` | `Array<string>` | yes | |
148
+ | `body.guests` | `Array<string>` | yes | min items 1, max items 50 |
149
149
 
150
150
  **Returns** `Record<string, unknown>`.
151
151
 
@@ -3148,20 +3148,33 @@ const result = await g8.api.appointments.updateAvailability({ path: { schedule_i
3148
3148
 
3149
3149
  ### `g8.api.appointments.updateBookingLocation(input)`
3150
3150
 
3151
- **Update the meeting location and notify both parties**
3151
+ **Change a booking's location and/or conferencing**
3152
3152
 
3153
3153
  - HTTP: `PATCH /api/v1/appointments/bookings/{booking_uid}/location`
3154
3154
  - operationId: `update_booking_location_appointments_bookings__booking_uid__location_patch` (also callable as `g8.api.call("update_booking_location_appointments_bookings__booking_uid__location_patch", input)`)
3155
3155
  - 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
3156
3156
  - API-key scope: `meetings:run`
3157
3157
 
3158
- Change the meeting location for a booking and re-notify both parties.
3158
+ Change a booking's physical location and/or its conferencing.
3159
3159
 
3160
- ``location`` is a location key such as ``"zoom"``, ``"google_meet"``,
3161
- ``"in_person"``, or a custom URL. Backed by
3162
- ``BookingsHandler.handle_update_location`` (updates the booking row,
3163
- sends location-updated emails, emits an EDA event). Raises 404 when
3164
- the booking uid is not visible to the caller.
3160
+ Two independent fields; send only the one you change. An omitted field is
3161
+ left as is, and ``null`` clears it:
3162
+
3163
+ * ``selected_location``: a location object, e.g.
3164
+ ``{"kind": "in_person_host", "address": "1 Market St"}``,
3165
+ ``{"kind": "phone_host", "phone": "+14155550100"}`` or
3166
+ ``{"kind": "custom", "display_label": "Lobby"}``.
3167
+ * ``selected_conferencing``: ``{"kind": "link", "link": "https://..."}`` for a
3168
+ meeting URL, or ``{"kind": "conferencing", "provider": "zoom"}`` (also
3169
+ ``roam_auto``, ``ms_teams``, ``google_meet``), which creates a NEW meeting room.
3170
+ * ``notify_attendees`` (default true): the host is always emailed.
3171
+
3172
+ The host's calendar event is updated too; ``calendar_synced`` in the response
3173
+ is false when that update failed (the change is saved either way). Errors:
3174
+ 404 when the booking is not visible to the caller, 409 when it is cancelled,
3175
+ past, imported or changed meanwhile, 422 for an invalid value or a provider
3176
+ the host has not connected, 429 past the per-booking edit limit, 502 when a
3177
+ new meeting room could not be created (nothing is changed then).
3165
3178
 
3166
3179
  **Input**
3167
3180
 
@@ -3174,7 +3187,10 @@ Body fields (`UpdateLocationRequest`):
3174
3187
 
3175
3188
  | Field | Type | Required | Description |
3176
3189
  |---|---|---|---|
3177
- | `body.location` | `string` | yes | |
3190
+ | `body.location` | `string \| null` | no | |
3191
+ | `body.notify_attendees` | `boolean` | no | default `true` |
3192
+ | `body.selected_conferencing` | `LocationItem \| null` | no | |
3193
+ | `body.selected_location` | `LocationItem \| null` | no | |
3178
3194
 
3179
3195
  **Returns** `Record<string, unknown>`.
3180
3196
 
@@ -3182,7 +3198,7 @@ Body fields (`UpdateLocationRequest`):
3182
3198
 
3183
3199
  ```ts
3184
3200
  // external: reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first.
3185
- const result = await g8.api.appointments.updateBookingLocation({ path: { booking_uid: "example" }, body: { location: "example" } });
3201
+ const result = await g8.api.appointments.updateBookingLocation({ path: { booking_uid: "example" }, body: {} });
3186
3202
  ```
3187
3203
 
3188
3204
  ---
@@ -713,10 +713,16 @@ export interface PaginationMeta {
713
713
  limit: number;
714
714
  /** 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. */
715
715
  next_cursor?: string | null;
716
+ /** 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. */
717
+ notes?: Array<string> | null;
716
718
  /** Current page number (1-indexed) */
717
719
  page: number;
718
720
  /** Total number of items */
719
721
  total: number;
722
+ /** 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. */
723
+ total_available?: number | null;
724
+ /** 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. */
725
+ total_is_lower_bound?: boolean | null;
720
726
  }
721
727
 
722
728
  /**
package/docs/api/apps.md CHANGED
@@ -504,11 +504,13 @@ Can this app be built and run yet, and if not, what is missing (M9 J9).
504
504
 
505
505
  ANSWERS FROM THE CONTROL PLANE, AND SAYS SO. It reports what graph8 has
506
506
  recorded: a bound source, an assigned hostname, declared secrets, the last
507
- deployment's state. It does NOT claim the cluster side is ready, because the
508
- namespace provisioner, the image registry and the runtime objects are
509
- separate, unbuilt work. Reporting `ready: true` on that basis would be the
510
- most expensive kind of wrong: a builder would push and wait for something
511
- nothing can serve.
507
+ deployment's state. The serving half -- namespace provisioner, registry
508
+ credentials, and the deployed-image rollout -- now EXISTS as control-plane code
509
+ (#22301), so this no longer blocks on it unconditionally. What it still checks
510
+ is whether that code is CONFIGURED in this environment (`_unset_serving_runtime_vars`):
511
+ reporting `ready: true` with the templates or registry credentials unset would
512
+ be the most expensive kind of wrong, because a builder would push and wait for
513
+ something nothing can serve.
512
514
 
513
515
  `blockers` is the field that matters. An agent driving a build needs to know
514
516
  WHY it cannot proceed; a bare `ready: false` sends it guessing, and guessing
@@ -146,6 +146,8 @@ export interface BatchAssertResponse {
146
146
  errors?: Array<Record<string, unknown>>;
147
147
  total: number;
148
148
  updated?: number;
149
+ /** Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country), prefixed with the row index. Empty when the input is clean. */
150
+ warnings?: Array<string>;
149
151
  }
150
152
 
151
153
  export interface BatchCompanyAssertRequest {
@@ -193,6 +195,8 @@ export interface CompanyAssertResponse {
193
195
  action: string;
194
196
  count?: number;
195
197
  custom_fields?: CustomFieldWriteReport;
198
+ /** Advisory notes about values saved as sent that look wrong (e.g. an unrecognised country). Empty when the input is clean. */
199
+ warnings?: Array<string>;
196
200
  }
197
201
 
198
202
  export interface ContactAssertRequest {
@@ -225,6 +229,8 @@ export interface ContactAssertResponse {
225
229
  action: string;
226
230
  count?: number;
227
231
  custom_fields?: CustomFieldWriteReport;
232
+ /** Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country). Empty when the input is clean. */
233
+ warnings?: Array<string>;
228
234
  }
229
235
 
230
236
  /**
@@ -279,8 +285,14 @@ export interface PaginationMeta {
279
285
  limit: number;
280
286
  /** 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. */
281
287
  next_cursor?: string | null;
288
+ /** 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. */
289
+ notes?: Array<string> | null;
282
290
  /** Current page number (1-indexed) */
283
291
  page: number;
284
292
  /** Total number of items */
285
293
  total: number;
294
+ /** 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. */
295
+ total_available?: number | null;
296
+ /** 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. */
297
+ total_is_lower_bound?: boolean | null;
286
298
  }
@@ -71,6 +71,7 @@ Other envelope fields: `pagination` (PaginationMeta).
71
71
  | `custom_fields` | `CustomFieldWriteReport` | no | |
72
72
  | `errors` | `Array<Record<string, unknown>>` | no | default `[]` |
73
73
  | `updated` | `integer` | no | default `0` |
74
+ | `warnings` | `Array<string>` | no | Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country), prefixed with the row index. Empty when the input is clean. |
74
75
 
75
76
  **Example**
76
77
 
@@ -129,6 +130,7 @@ Other envelope fields: `pagination` (PaginationMeta).
129
130
  | `action` | `string` | yes | 'created' or 'updated' |
130
131
  | `count` | `integer` | no | default `1` |
131
132
  | `custom_fields` | `CustomFieldWriteReport` | no | |
133
+ | `warnings` | `Array<string>` | no | Advisory notes about values saved as sent that look wrong (e.g. an unrecognised country). Empty when the input is clean. |
132
134
 
133
135
  **Example**
134
136
 
@@ -191,6 +193,7 @@ Other envelope fields: `pagination` (PaginationMeta).
191
193
  | `action` | `string` | yes | 'created' or 'updated' |
192
194
  | `count` | `integer` | no | default `1` |
193
195
  | `custom_fields` | `CustomFieldWriteReport` | no | |
196
+ | `warnings` | `Array<string>` | no | Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country). Empty when the input is clean. |
194
197
 
195
198
  **Example**
196
199
 
@@ -240,6 +243,7 @@ Other envelope fields: `pagination` (PaginationMeta).
240
243
  | `custom_fields` | `CustomFieldWriteReport` | no | |
241
244
  | `errors` | `Array<Record<string, unknown>>` | no | default `[]` |
242
245
  | `updated` | `integer` | no | default `0` |
246
+ | `warnings` | `Array<string>` | no | Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country), prefixed with the row index. Empty when the input is clean. |
243
247
 
244
248
  **Example**
245
249
 
@@ -234,10 +234,16 @@ export interface PaginationMeta {
234
234
  limit: number;
235
235
  /** 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. */
236
236
  next_cursor?: string | null;
237
+ /** 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. */
238
+ notes?: Array<string> | null;
237
239
  /** Current page number (1-indexed) */
238
240
  page: number;
239
241
  /** Total number of items */
240
242
  total: number;
243
+ /** 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. */
244
+ total_available?: number | null;
245
+ /** 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. */
246
+ total_is_lower_bound?: boolean | null;
241
247
  }
242
248
 
243
249
  export interface SyncErrorResponse {
@@ -593,10 +593,16 @@ export interface PaginationMeta {
593
593
  limit: number;
594
594
  /** 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. */
595
595
  next_cursor?: string | null;
596
+ /** 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. */
597
+ notes?: Array<string> | null;
596
598
  /** Current page number (1-indexed) */
597
599
  page: number;
598
600
  /** Total number of items */
599
601
  total: number;
602
+ /** 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. */
603
+ total_available?: number | null;
604
+ /** 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. */
605
+ total_is_lower_bound?: boolean | null;
600
606
  }
601
607
 
602
608
  /**
@@ -174,8 +174,14 @@ export interface PaginationMeta {
174
174
  limit: number;
175
175
  /** 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. */
176
176
  next_cursor?: string | null;
177
+ /** 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. */
178
+ notes?: Array<string> | null;
177
179
  /** Current page number (1-indexed) */
178
180
  page: number;
179
181
  /** Total number of items */
180
182
  total: number;
183
+ /** 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. */
184
+ total_available?: number | null;
185
+ /** 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. */
186
+ total_is_lower_bound?: boolean | null;
181
187
  }
@@ -2367,6 +2367,7 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
2367
2367
  | GET | `/api/v1/roles` | [`g8.api.roles.listRoles`](roles.md#op-listroles) | read |
2368
2368
  | POST | `/api/v1/roles` | [`g8.api.roles.createRole`](roles.md#op-createrole) | write |
2369
2369
  | GET | `/api/v1/roles/domain-settings` | [`g8.api.roles.getDomainSettings`](roles.md#op-getdomainsettings) | read |
2370
+ | POST | `/api/v1/roles/invite` | [`g8.api.roles.inviteMember`](roles.md#op-invitemember) | external |
2370
2371
  | GET | `/api/v1/roles/join-requests` | [`g8.api.roles.listJoinRequests`](roles.md#op-listjoinrequests) | read |
2371
2372
  | GET | `/api/v1/roles/join-requests/count` | [`g8.api.roles.getJoinRequestCount`](roles.md#op-getjoinrequestcount) | read |
2372
2373
  | POST | `/api/v1/roles/join-requests/{request_id}/reject` | [`g8.api.roles.rejectJoinRequest`](roles.md#op-rejectjoinrequest) | write |
@@ -110,8 +110,14 @@ export interface PaginationMeta {
110
110
  limit: number;
111
111
  /** 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. */
112
112
  next_cursor?: string | null;
113
+ /** 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. */
114
+ notes?: Array<string> | null;
113
115
  /** Current page number (1-indexed) */
114
116
  page: number;
115
117
  /** Total number of items */
116
118
  total: number;
119
+ /** 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. */
120
+ total_available?: number | null;
121
+ /** 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. */
122
+ total_is_lower_bound?: boolean | null;
117
123
  }
@@ -145,8 +145,14 @@ export interface PaginationMeta {
145
145
  limit: number;
146
146
  /** 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. */
147
147
  next_cursor?: string | null;
148
+ /** 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. */
149
+ notes?: Array<string> | null;
148
150
  /** Current page number (1-indexed) */
149
151
  page: number;
150
152
  /** Total number of items */
151
153
  total: number;
154
+ /** 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. */
155
+ total_available?: number | null;
156
+ /** 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. */
157
+ total_is_lower_bound?: boolean | null;
152
158
  }
@@ -674,10 +674,16 @@ export interface PaginationMeta {
674
674
  limit: number;
675
675
  /** 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. */
676
676
  next_cursor?: string | null;
677
+ /** 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. */
678
+ notes?: Array<string> | null;
677
679
  /** Current page number (1-indexed) */
678
680
  page: number;
679
681
  /** Total number of items */
680
682
  total: number;
683
+ /** 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. */
684
+ total_available?: number | null;
685
+ /** 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. */
686
+ total_is_lower_bound?: boolean | null;
681
687
  }
682
688
 
683
689
  /**
@@ -151,10 +151,16 @@ export interface PaginationMeta {
151
151
  limit: number;
152
152
  /** 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. */
153
153
  next_cursor?: string | null;
154
+ /** 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. */
155
+ notes?: Array<string> | null;
154
156
  /** Current page number (1-indexed) */
155
157
  page: number;
156
158
  /** Total number of items */
157
159
  total: number;
160
+ /** 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. */
161
+ total_available?: number | null;
162
+ /** 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. */
163
+ total_is_lower_bound?: boolean | null;
158
164
  }
159
165
 
160
166
  /**
@@ -164,10 +164,16 @@ export interface PaginationMeta {
164
164
  limit: number;
165
165
  /** 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. */
166
166
  next_cursor?: string | null;
167
+ /** 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. */
168
+ notes?: Array<string> | null;
167
169
  /** Current page number (1-indexed) */
168
170
  page: number;
169
171
  /** Total number of items */
170
172
  total: number;
173
+ /** 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. */
174
+ total_available?: number | null;
175
+ /** 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. */
176
+ total_is_lower_bound?: boolean | null;
171
177
  }
172
178
 
173
179
  export interface developer_api__interfaces__v1__cli_campaigns_router__CampaignCreateRequest {
@@ -256,10 +256,16 @@ export interface PaginationMeta {
256
256
  limit: number;
257
257
  /** 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. */
258
258
  next_cursor?: string | null;
259
+ /** 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. */
260
+ notes?: Array<string> | null;
259
261
  /** Current page number (1-indexed) */
260
262
  page: number;
261
263
  /** Total number of items */
262
264
  total: number;
265
+ /** 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. */
266
+ total_available?: number | null;
267
+ /** 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. */
268
+ total_is_lower_bound?: boolean | null;
263
269
  }
264
270
 
265
271
  export interface PipelineCreateRequest {
@@ -108,8 +108,14 @@ export interface PaginationMeta {
108
108
  limit: number;
109
109
  /** 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. */
110
110
  next_cursor?: string | null;
111
+ /** 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. */
112
+ notes?: Array<string> | null;
111
113
  /** Current page number (1-indexed) */
112
114
  page: number;
113
115
  /** Total number of items */
114
116
  total: number;
117
+ /** 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. */
118
+ total_available?: number | null;
119
+ /** 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. */
120
+ total_is_lower_bound?: boolean | null;
115
121
  }
@@ -633,9 +633,9 @@ export interface CompaniesOperations {
633
633
  employee_count_min?: number | null;
634
634
  /** Maximum employee count */
635
635
  employee_count_max?: number | null;
636
- /** Filter by country (exact match) */
636
+ /** Filter by country (exact match, case-insensitive; surrounding spaces ignored). Common aliases match each other: United States = US = USA; United Kingdom = UK. */
637
637
  country?: string | null;
638
- /** Filter by state (exact match) */
638
+ /** Filter by state (exact match, case-insensitive; surrounding spaces ignored) */
639
639
  state?: string | null;
640
640
  /** Filter by city (partial match) */
641
641
  city?: string | null;
@@ -1204,6 +1204,8 @@ export interface CompanyCreateResponse {
1204
1204
  company_id?: number | null;
1205
1205
  merged?: boolean;
1206
1206
  status: string;
1207
+ /** Advisory notes about values that look wrong (e.g. an employee_count with no number, an unrecognised country, or a linkedin_url that is not a web address and was not saved). Empty when the input is clean. */
1208
+ warnings?: Array<string>;
1207
1209
  }
1208
1210
 
1209
1211
  /** Lighter company representation for list endpoints. */
@@ -1526,10 +1528,16 @@ export interface PaginationMeta {
1526
1528
  limit: number;
1527
1529
  /** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
1528
1530
  next_cursor?: string | null;
1531
+ /** 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. */
1532
+ notes?: Array<string> | null;
1529
1533
  /** Current page number (1-indexed) */
1530
1534
  page: number;
1531
1535
  /** Total number of items */
1532
1536
  total: number;
1537
+ /** 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. */
1538
+ total_available?: number | null;
1539
+ /** 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. */
1540
+ total_is_lower_bound?: boolean | null;
1533
1541
  }
1534
1542
 
1535
1543
  /** Attach the output of a skill run to a record as a document. */
@@ -297,6 +297,7 @@ Other envelope fields: `pagination` (PaginationMeta).
297
297
  | `status` | `string` | yes | |
298
298
  | `company_id` | `integer \| null` | no | |
299
299
  | `merged` | `boolean` | no | default `false` |
300
+ | `warnings` | `Array<string>` | no | Advisory notes about values that look wrong (e.g. an employee_count with no number, an unrecognised country, or a linkedin_url that is not a web address and was not saved). Empty when the input is clean. |
300
301
 
301
302
  **Example**
302
303
 
@@ -1354,8 +1355,8 @@ List companies with optional filtering and pagination.
1354
1355
  | `query.name` | `string \| null` | no | Filter by company name (partial match) |
1355
1356
  | `query.employee_count_min` | `integer \| null` | no | Minimum employee count |
1356
1357
  | `query.employee_count_max` | `integer \| null` | no | Maximum employee count |
1357
- | `query.country` | `string \| null` | no | Filter by country (exact match) |
1358
- | `query.state` | `string \| null` | no | Filter by state (exact match) |
1358
+ | `query.country` | `string \| null` | no | Filter by country (exact match, case-insensitive; surrounding spaces ignored). Common aliases match each other: United States = US = USA; United Kingdom = UK. |
1359
+ | `query.state` | `string \| null` | no | Filter by state (exact match, case-insensitive; surrounding spaces ignored) |
1359
1360
  | `query.city` | `string \| null` | no | Filter by city (partial match) |
1360
1361
  | `query.description` | `string \| null` | no | Filter by company description (partial match) |
1361
1362
  | `query.revenue_min` | `integer \| null` | no | Minimum annual revenue |
@@ -2068,6 +2069,12 @@ const result = await g8.api.companies.startCompanyWorkflow({ path: { company_id:
2068
2069
 
2069
2070
  Update a company's fields (partial update).
2070
2071
 
2072
+ A ``name`` over 512 characters or a ``linkedin_url`` that is not a web
2073
+ address is refused with a 400 and nothing is written. An employee_count
2074
+ with no number, an unrecognised country, or a linkedin_url that is not on
2075
+ linkedin.com is saved as sent and flagged in ``warnings`` (present only
2076
+ when there is something to flag).
2077
+
2071
2078
  **Input**
2072
2079
 
2073
2080
  | Field | Type | Required | Description |
@@ -292,8 +292,14 @@ export interface PaginationMeta {
292
292
  limit: number;
293
293
  /** 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. */
294
294
  next_cursor?: string | null;
295
+ /** 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. */
296
+ notes?: Array<string> | null;
295
297
  /** Current page number (1-indexed) */
296
298
  page: number;
297
299
  /** Total number of items */
298
300
  total: number;
301
+ /** 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. */
302
+ total_available?: number | null;
303
+ /** 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. */
304
+ total_is_lower_bound?: boolean | null;
299
305
  }
@@ -844,7 +844,7 @@ export interface ContactsOperations {
844
844
  page?: number;
845
845
  /** Items per page (max 200) */
846
846
  limit?: number;
847
- /** Filter by work email (exact match) */
847
+ /** Filter by work email (exact match, case-insensitive; surrounding spaces ignored) */
848
848
  email?: string | null;
849
849
  /** Filter by list ID */
850
850
  list_id?: number | null;
@@ -852,15 +852,15 @@ export interface ContactsOperations {
852
852
  name?: string | null;
853
853
  /** Filter by job title (partial match) */
854
854
  job_title?: string | null;
855
- /** Filter by seniority level (exact match) */
855
+ /** Filter by seniority level (exact match, case-insensitive). Spellings of the same level match each other: VP = Vice President; SVP/EVP = SVP = EVP = Senior/Executive Vice President; C-Suite = C-Level = CXO. Pass several levels comma-separated to match any of them, e.g. `VP,SVP/EVP`. */
856
856
  seniority_level?: string | null;
857
857
  /** Filter by company name (partial match) */
858
858
  company_name?: string | null;
859
859
  /** Filter by company ID */
860
860
  company_id?: number | null;
861
- /** Filter by country (exact match) */
861
+ /** Filter by country (exact match, case-insensitive; surrounding spaces ignored). Common aliases match each other: United States = US = USA; United Kingdom = UK. */
862
862
  country?: string | null;
863
- /** Filter by state (exact match) */
863
+ /** Filter by state (exact match, case-insensitive; surrounding spaces ignored) */
864
864
  state?: string | null;
865
865
  /** Filter by city (partial match) */
866
866
  city?: string | null;
@@ -1540,6 +1540,8 @@ export interface ContactCreateResponse {
1540
1540
  merged?: boolean;
1541
1541
  status: string;
1542
1542
  validation_errors?: Array<string>;
1543
+ /** Advisory notes about values saved as sent that look wrong (e.g. an unrecognised seniority or country). Empty when the input is clean. */
1544
+ warnings?: Array<string>;
1543
1545
  }
1544
1546
 
1545
1547
  /** Mirrors `campaign_builder.models.contact_documents.UpdateContactDocumentRequest`. */
@@ -1553,8 +1555,14 @@ export interface ContactDocumentUpdateRequest {
1553
1555
  /** Lighter contact representation for list endpoints. */
1554
1556
  export interface ContactListItem {
1555
1557
  city?: string | null;
1558
+ company_domain?: string | null;
1559
+ company_employee_count?: string | null;
1556
1560
  company_id?: number | null;
1561
+ company_industry?: string | null;
1562
+ company_name?: string | null;
1563
+ company_website?: string | null;
1557
1564
  country?: string | null;
1565
+ created_at?: string | null;
1558
1566
  custom_fields?: (Record<string, string | null>) | null;
1559
1567
  direct_phone?: string | null;
1560
1568
  first_name?: string | null;
@@ -1568,6 +1576,7 @@ export interface ContactListItem {
1568
1576
  owner_name?: string | null;
1569
1577
  seniority_level?: string | null;
1570
1578
  state?: string | null;
1579
+ updated_at?: string | null;
1571
1580
  work_email?: string | null;
1572
1581
  }
1573
1582
 
@@ -1930,10 +1939,16 @@ export interface PaginationMeta {
1930
1939
  limit: number;
1931
1940
  /** 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. */
1932
1941
  next_cursor?: string | null;
1942
+ /** 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. */
1943
+ notes?: Array<string> | null;
1933
1944
  /** Current page number (1-indexed) */
1934
1945
  page: number;
1935
1946
  /** Total number of items */
1936
1947
  total: number;
1948
+ /** 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. */
1949
+ total_available?: number | null;
1950
+ /** 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. */
1951
+ total_is_lower_bound?: boolean | null;
1937
1952
  }
1938
1953
 
1939
1954
  /**