@graph8/sdk 0.251.0 → 0.260.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +104 -7
- package/dist/index.d.ts +104 -7
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +102 -7
- package/dist/react.d.ts +102 -7
- package/dist/react.js +62 -11
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +53 -12
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1696 -0
- package/docs/api/deals.md +2432 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,1609 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.lists`: Lists
|
|
4
|
+
|
|
5
|
+
36 operations (12 read, 18 write, 6 destructive).
|
|
6
|
+
|
|
7
|
+
6 of these also have a hand-written method (`g8.lists`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
|
|
8
|
+
|
|
9
|
+
Every example below assumes this setup (server-side, API key):
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { g8 } from "@graph8/sdk";
|
|
13
|
+
|
|
14
|
+
g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
|
|
18
|
+
|
|
19
|
+
Exact TypeScript types for every operation on this page, and every schema they use: [lists.d.ts](lists.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`addContactsToList`](#op-addcontactstolist) ★ | `POST /api/v1/lists/{list_id}/contacts` | write | `lists:write` | Add Contacts To List |
|
|
26
|
+
| [`addDealsToList`](#op-adddealstolist) | `POST /api/v1/lists/{audience_id}/deals` | write | `lists:write` | Add Deals To List |
|
|
27
|
+
| [`assignListToFolder`](#op-assignlisttofolder) | `PUT /api/v1/lists/folders/assignments/{audience_id}` | write | `lists:write` | Assign List To Folder |
|
|
28
|
+
| [`assignListsToFolder`](#op-assignliststofolder) | `PUT /api/v1/lists/folders/assignments` | write | `lists:write` | Assign Lists To Folder |
|
|
29
|
+
| [`checkListIntegrity`](#op-checklistintegrity) | `POST /api/v1/lists/{list_id}/integrity-check` | read | `lists:read` | Check List Integrity |
|
|
30
|
+
| [`createEmptyList`](#op-createemptylist) | `POST /api/v1/lists/create-empty` | write | `lists:write` | Create Empty List |
|
|
31
|
+
| [`createList`](#op-createlist) ★ | `POST /api/v1/lists` | write | `lists:write` | Create List |
|
|
32
|
+
| [`createListFolder`](#op-createlistfolder) | `POST /api/v1/lists/folders` | write | `lists:write` | Create List Folder |
|
|
33
|
+
| [`createMasterList`](#op-createmasterlist) | `POST /api/v1/lists/masters` | write | `lists:write` | Create Master List |
|
|
34
|
+
| [`deleteCompaniesFromList`](#op-deletecompaniesfromlist) | `DELETE /api/v1/lists/{audience_id}/companies` | destructive | `lists:delete` | Delete Companies From List |
|
|
35
|
+
| [`deleteLeadsFromList`](#op-deleteleadsfromlist) | `DELETE /api/v1/lists/{audience_id}/leads` | destructive | `lists:delete` | Delete Leads From List |
|
|
36
|
+
| [`deleteList`](#op-deletelist) ★ | `DELETE /api/v1/lists/{list_id}` | destructive | `lists:delete` | Delete List |
|
|
37
|
+
| [`deleteListFolder`](#op-deletelistfolder) | `DELETE /api/v1/lists/folders/{folder_id}` | destructive | `lists:delete` | Delete List Folder |
|
|
38
|
+
| [`deleteSuppressionsFromList`](#op-deletesuppressionsfromlist) | `DELETE /api/v1/lists/{audience_id}/suppressions` | destructive | `lists:delete` | Delete Suppressions From List |
|
|
39
|
+
| [`downloadList`](#op-downloadlist) | `GET /api/v1/lists/{audience_id}/download` | read | `lists:read` | Download List |
|
|
40
|
+
| [`generateTrackedLinks`](#op-generatetrackedlinks) | `POST /api/v1/lists/{audience_id}/generate-tracked-links` | write | `lists:write` | Generate Tracked Links |
|
|
41
|
+
| [`getListColumnCapabilities`](#op-getlistcolumncapabilities) | `GET /api/v1/lists/{audience_id}/column-capabilities` | read | `lists:read` | Get List Column Capabilities |
|
|
42
|
+
| [`getListContacts`](#op-getlistcontacts) ★ | `GET /api/v1/lists/{list_id}/contacts` | read | `lists:read` | Get List Contacts |
|
|
43
|
+
| [`getListKeywordLinks`](#op-getlistkeywordlinks) | `GET /api/v1/lists/{audience_id}/keyword-links` | read | `lists:read` | Get List Keyword Links |
|
|
44
|
+
| [`getListPerformance`](#op-getlistperformance) | `GET /api/v1/lists/performance` | read | `lists:read` | Get List Performance |
|
|
45
|
+
| [`getTrackedLinkColumns`](#op-gettrackedlinkcolumns) | `GET /api/v1/lists/{audience_id}/tracked-links/columns` | read | `lists:read` | Get Tracked Link Columns |
|
|
46
|
+
| [`listDataColumns`](#op-listdatacolumns) | `GET /api/v1/lists/{list_id}/data-columns` | read | `lists:read` | List Data Columns |
|
|
47
|
+
| [`listListFolders`](#op-listlistfolders) | `GET /api/v1/lists/folders` | read | `lists:read` | List List Folders |
|
|
48
|
+
| [`listLists`](#op-listlists) ★ | `GET /api/v1/lists` | read | `lists:read` | List Lists |
|
|
49
|
+
| [`listMasterLists`](#op-listmasterlists) | `GET /api/v1/lists/masters` | read | `lists:read` | List Master Lists |
|
|
50
|
+
| [`patchDynamicValue`](#op-patchdynamicvalue) | `PATCH /api/v1/lists/{audience_id}/dynamic-value` | write | `lists:write` | Patch Dynamic Value |
|
|
51
|
+
| [`previewListOwnerTransfer`](#op-previewlistownertransfer) | `GET /api/v1/lists/{audience_id}/owner/preview` | read | `lists:read` | Preview List Owner Transfer |
|
|
52
|
+
| [`reassignListOwner`](#op-reassignlistowner) | `PATCH /api/v1/lists/{audience_id}/owner` | write | `lists:write` | Reassign List Owner |
|
|
53
|
+
| [`recordListOpened`](#op-recordlistopened) | `POST /api/v1/lists/folders/activity/{audience_id}` | write | `lists:write` | Record List Opened |
|
|
54
|
+
| [`refreshDynamicList`](#op-refreshdynamiclist) | `POST /api/v1/lists/{audience_id}/refresh` | write | `lists:write` | Refresh Dynamic List |
|
|
55
|
+
| [`refreshMasterListNow`](#op-refreshmasterlistnow) | `POST /api/v1/lists/{audience_id}/master-refresh` | write | `lists:write` | Refresh Master List Now |
|
|
56
|
+
| [`removeContactsFromList`](#op-removecontactsfromlist) ★ | `DELETE /api/v1/lists/{list_id}/contacts` | destructive | `lists:delete` | Remove Contacts From List |
|
|
57
|
+
| [`starList`](#op-starlist) | `PUT /api/v1/lists/folders/stars/{audience_id}` | write | `lists:write` | Star List |
|
|
58
|
+
| [`updateList`](#op-updatelist) | `PATCH /api/v1/lists/{list_id}` | write | `lists:write` | Update List |
|
|
59
|
+
| [`updateListFolder`](#op-updatelistfolder) | `PATCH /api/v1/lists/folders/{folder_id}` | write | `lists:write` | Update List Folder |
|
|
60
|
+
| [`updateMasterListConfig`](#op-updatemasterlistconfig) | `PATCH /api/v1/lists/{audience_id}/master-config` | write | `lists:write` | Update Master List Config |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
<a id="op-addcontactstolist"></a>
|
|
65
|
+
|
|
66
|
+
### `g8.api.lists.addContactsToList(input)`
|
|
67
|
+
|
|
68
|
+
**Add Contacts To List**
|
|
69
|
+
|
|
70
|
+
- HTTP: `POST /api/v1/lists/{list_id}/contacts`
|
|
71
|
+
- operationId: `add_contacts_to_list_lists__list_id__contacts_post` (also callable as `g8.api.call("add_contacts_to_list_lists__list_id__contacts_post", input)`)
|
|
72
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
73
|
+
- API-key scope: `lists:write`
|
|
74
|
+
- ★ Hand-written: [`g8.lists.addContacts()`](../sdk-clients.md#g8-lists-addcontacts)
|
|
75
|
+
|
|
76
|
+
Add contacts to a list by their IDs.
|
|
77
|
+
|
|
78
|
+
**Input**
|
|
79
|
+
|
|
80
|
+
| Field | Type | Required | Description |
|
|
81
|
+
|---|---|---|---|
|
|
82
|
+
| `path.list_id` | `integer` | yes | List ID |
|
|
83
|
+
| `body` | `AddContactsToListRequest` | yes | Request body; fields below. |
|
|
84
|
+
|
|
85
|
+
Body fields (`AddContactsToListRequest`):
|
|
86
|
+
|
|
87
|
+
| Field | Type | Required | Description |
|
|
88
|
+
|---|---|---|---|
|
|
89
|
+
| `body.contact_ids` | `Array<integer>` | yes | List of contact IDs to add |
|
|
90
|
+
| `body.conflict_resolution` | `"add_all" \| "skip_all" \| "custom" \| null` | no | Required on retry after a 409 CONFLICT_REVIEW_REQUIRED response: 'add_all' adds ready + every warned contact, 'skip_all' adds only ready contacts, 'custom' adds ready + the ids in include_warned_ids. Blocked contacts are always excluded regardless of this value. |
|
|
91
|
+
| `body.include_warned_ids` | `Array<string> \| null` | no | With conflict_resolution='custom', the warned contact ids to also add. |
|
|
92
|
+
|
|
93
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
94
|
+
|
|
95
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
96
|
+
|
|
97
|
+
**Example**
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
const result = await g8.api.lists.addContactsToList({ path: { list_id: 123 }, body: { contact_ids: [123] } });
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
<a id="op-adddealstolist"></a>
|
|
106
|
+
|
|
107
|
+
### `g8.api.lists.addDealsToList(input)`
|
|
108
|
+
|
|
109
|
+
**Add Deals To List**
|
|
110
|
+
|
|
111
|
+
- HTTP: `POST /api/v1/lists/{audience_id}/deals`
|
|
112
|
+
- operationId: `add_deals_to_list_lists__audience_id__deals_post` (also callable as `g8.api.call("add_deals_to_list_lists__audience_id__deals_post", input)`)
|
|
113
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
114
|
+
- API-key scope: `lists:write`
|
|
115
|
+
|
|
116
|
+
Put deals on a deals list.
|
|
117
|
+
|
|
118
|
+
Each deal is checked against the caller's DEAL scope as well as the list's,
|
|
119
|
+
so adding a deal you cannot see is refused rather than silently skipped.
|
|
120
|
+
|
|
121
|
+
**Input**
|
|
122
|
+
|
|
123
|
+
| Field | Type | Required | Description |
|
|
124
|
+
|---|---|---|---|
|
|
125
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
126
|
+
| `body` | `AddDealsToListRequest` | yes | Request body; fields below. |
|
|
127
|
+
|
|
128
|
+
Body fields (`AddDealsToListRequest`):
|
|
129
|
+
|
|
130
|
+
| Field | Type | Required | Description |
|
|
131
|
+
|---|---|---|---|
|
|
132
|
+
| `body.deal_ids` | `Array<string>` | yes | Deal ids (strings, unlike the others). |
|
|
133
|
+
| `body.source` | `string \| null` | no | Where the addition came from, for the audit trail. |
|
|
134
|
+
|
|
135
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
136
|
+
|
|
137
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
138
|
+
|
|
139
|
+
**Example**
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
const result = await g8.api.lists.addDealsToList({ path: { audience_id: 123 }, body: { deal_ids: ["id"] } });
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
<a id="op-assignlisttofolder"></a>
|
|
148
|
+
|
|
149
|
+
### `g8.api.lists.assignListToFolder(input)`
|
|
150
|
+
|
|
151
|
+
**Assign List To Folder**
|
|
152
|
+
|
|
153
|
+
- HTTP: `PUT /api/v1/lists/folders/assignments/{audience_id}`
|
|
154
|
+
- operationId: `assign_list_to_folder_lists_folders_assignments__audience_id__put` (also callable as `g8.api.call("assign_list_to_folder_lists_folders_assignments__audience_id__put", input)`)
|
|
155
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
156
|
+
- API-key scope: `lists:write`
|
|
157
|
+
|
|
158
|
+
File one list into a folder, or out of every folder. FREE.
|
|
159
|
+
|
|
160
|
+
Requires WRITE access to the list, as in the app. `folder_id` null unfiles
|
|
161
|
+
it.
|
|
162
|
+
|
|
163
|
+
**Input**
|
|
164
|
+
|
|
165
|
+
| Field | Type | Required | Description |
|
|
166
|
+
|---|---|---|---|
|
|
167
|
+
| `path.audience_id` | `integer` | yes | |
|
|
168
|
+
| `body` | `ListFolderAssignRequest` | yes | Request body; fields below. |
|
|
169
|
+
|
|
170
|
+
Body fields (`ListFolderAssignRequest`):
|
|
171
|
+
|
|
172
|
+
| Field | Type | Required | Description |
|
|
173
|
+
|---|---|---|---|
|
|
174
|
+
| `body.folder_id` | `string (uuid) \| null` | no | The folder. Null takes the list OUT of every folder. |
|
|
175
|
+
|
|
176
|
+
**Returns**: no JSON body is declared for the success response.
|
|
177
|
+
|
|
178
|
+
**Example**
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
const result = await g8.api.lists.assignListToFolder({ path: { audience_id: 123 }, body: {} });
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
<a id="op-assignliststofolder"></a>
|
|
187
|
+
|
|
188
|
+
### `g8.api.lists.assignListsToFolder(input)`
|
|
189
|
+
|
|
190
|
+
**Assign Lists To Folder**
|
|
191
|
+
|
|
192
|
+
- HTTP: `PUT /api/v1/lists/folders/assignments`
|
|
193
|
+
- operationId: `assign_lists_to_folder_lists_folders_assignments_put` (also callable as `g8.api.call("assign_lists_to_folder_lists_folders_assignments_put", input)`)
|
|
194
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
195
|
+
- API-key scope: `lists:write`
|
|
196
|
+
|
|
197
|
+
File up to 500 lists into one folder, or out of every folder. FREE.
|
|
198
|
+
|
|
199
|
+
All or nothing: if ANY list is not visible to the key the whole call is a
|
|
200
|
+
404 and nothing moves, so a caller cannot learn which ids exist by which
|
|
201
|
+
ones were filed. `folder_id` null unfiles them.
|
|
202
|
+
|
|
203
|
+
**Input**
|
|
204
|
+
|
|
205
|
+
| Field | Type | Required | Description |
|
|
206
|
+
|---|---|---|---|
|
|
207
|
+
| `body` | `ListFolderBulkAssignRequest` | yes | Request body; fields below. |
|
|
208
|
+
|
|
209
|
+
Body fields (`ListFolderBulkAssignRequest`):
|
|
210
|
+
|
|
211
|
+
| Field | Type | Required | Description |
|
|
212
|
+
|---|---|---|---|
|
|
213
|
+
| `body.audience_ids` | `Array<integer>` | yes | The lists to move, 1 to 500. min items 1, max items 500 |
|
|
214
|
+
| `body.folder_id` | `string (uuid) \| null` | no | The folder. Null takes the list OUT of every folder. |
|
|
215
|
+
|
|
216
|
+
**Returns**: no JSON body is declared for the success response.
|
|
217
|
+
|
|
218
|
+
**Example**
|
|
219
|
+
|
|
220
|
+
```ts
|
|
221
|
+
const result = await g8.api.lists.assignListsToFolder({ body: { audience_ids: [123] } });
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
<a id="op-checklistintegrity"></a>
|
|
227
|
+
|
|
228
|
+
### `g8.api.lists.checkListIntegrity(input)`
|
|
229
|
+
|
|
230
|
+
**Check List Integrity**
|
|
231
|
+
|
|
232
|
+
- HTTP: `POST /api/v1/lists/{list_id}/integrity-check`
|
|
233
|
+
- operationId: `check_list_integrity_lists__list_id__integrity_check_post` (also callable as `g8.api.call("check_list_integrity_lists__list_id__integrity_check_post", input)`)
|
|
234
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
235
|
+
- API-key scope: `lists:read`
|
|
236
|
+
|
|
237
|
+
How complete the list's data is: per field, how many contacts have a usable value.
|
|
238
|
+
|
|
239
|
+
Covers the default contact fields (email, phone, name, company, ...) plus any
|
|
240
|
+
`extra_fields` named. Reads only; nothing is written or enriched.
|
|
241
|
+
|
|
242
|
+
**Input**
|
|
243
|
+
|
|
244
|
+
| Field | Type | Required | Description |
|
|
245
|
+
|---|---|---|---|
|
|
246
|
+
| `path.list_id` | `integer` | yes | List (audience) id. |
|
|
247
|
+
| `body` | `IntegrityCheckRequest` | no | Request body; fields below. |
|
|
248
|
+
|
|
249
|
+
Body fields (`IntegrityCheckRequest`):
|
|
250
|
+
|
|
251
|
+
| Field | Type | Required | Description |
|
|
252
|
+
|---|---|---|---|
|
|
253
|
+
| `body.extra_fields` | `Array<string> \| null` | no | Enrichment / AI / dynamic columns to measure on top of the default fields - the `column_name_db` values from `GET /lists/{list_id}/data-columns`. |
|
|
254
|
+
|
|
255
|
+
**Returns** `ApiResponse_SequencerPayload_`: the envelope `{ data: SequencerPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
256
|
+
|
|
257
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
258
|
+
|
|
259
|
+
**Example**
|
|
260
|
+
|
|
261
|
+
```ts
|
|
262
|
+
const result = await g8.api.lists.checkListIntegrity({ path: { list_id: 1 } });
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
<a id="op-createemptylist"></a>
|
|
268
|
+
|
|
269
|
+
### `g8.api.lists.createEmptyList(input)`
|
|
270
|
+
|
|
271
|
+
**Create Empty List**
|
|
272
|
+
|
|
273
|
+
- HTTP: `POST /api/v1/lists/create-empty`
|
|
274
|
+
- operationId: `create_empty_list_lists_create_empty_post` (also callable as `g8.api.call("create_empty_list_lists_create_empty_post", input)`)
|
|
275
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
276
|
+
- API-key scope: `lists:write`
|
|
277
|
+
|
|
278
|
+
Create a list with nothing in it, to fill later.
|
|
279
|
+
|
|
280
|
+
SEND AN `idempotency_key`. Without one a retried request makes a second
|
|
281
|
+
empty list, and a duplicate list is harder to notice than a failed call.
|
|
282
|
+
|
|
283
|
+
**Input**
|
|
284
|
+
|
|
285
|
+
| Field | Type | Required | Description |
|
|
286
|
+
|---|---|---|---|
|
|
287
|
+
| `body` | `CreateEmptyListRequest` | yes | Request body; fields below. |
|
|
288
|
+
|
|
289
|
+
Body fields (`CreateEmptyListRequest`):
|
|
290
|
+
|
|
291
|
+
| Field | Type | Required | Description |
|
|
292
|
+
|---|---|---|---|
|
|
293
|
+
| `body.source` | `"csv" \| "graph8" \| "FormSubmission" \| "visitor" \| "salesforce" \| "hubspot" \| "keyword" \| "intent" \| …` | yes | Where the list comes from, e.g. `csv`. |
|
|
294
|
+
| `body.title` | `string` | yes | min length 1, max length 200 |
|
|
295
|
+
| `body.description` | `string \| null` | no | |
|
|
296
|
+
| `body.idempotency_key` | `string \| null` | no | Retry-safe: the same key returns the same list. |
|
|
297
|
+
| `body.is_dynamic` | `boolean` | no | A dynamic list re-runs its query; a static one keeps what it is given. default `false` |
|
|
298
|
+
| `body.request_fingerprint` | `string \| null` | no | |
|
|
299
|
+
| `body.status` | `"completed" \| "processing" \| "failed"` | no | default `"completed"` |
|
|
300
|
+
| `body.type` | `"contacts" \| "companies" \| "suppressions" \| "deals" \| "leads"` | no | What the list holds. The wire name is `type`; the app's field is `type_` because `type` is a Python builtin, and the alias keeps the wire name identical to the app's. default `"contacts"` |
|
|
301
|
+
|
|
302
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
303
|
+
|
|
304
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
305
|
+
|
|
306
|
+
**Example**
|
|
307
|
+
|
|
308
|
+
```ts
|
|
309
|
+
const result = await g8.api.lists.createEmptyList({ body: { source: "csv", title: "Example" } });
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
<a id="op-createlist"></a>
|
|
315
|
+
|
|
316
|
+
### `g8.api.lists.createList(input)`
|
|
317
|
+
|
|
318
|
+
**Create List**
|
|
319
|
+
|
|
320
|
+
- HTTP: `POST /api/v1/lists`
|
|
321
|
+
- operationId: `create_list_lists_post` (also callable as `g8.api.call("create_list_lists_post", input)`)
|
|
322
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
323
|
+
- API-key scope: `lists:write`
|
|
324
|
+
- ★ Hand-written: [`g8.lists.create()`](../sdk-clients.md#g8-lists-create)
|
|
325
|
+
|
|
326
|
+
Create a new empty list.
|
|
327
|
+
|
|
328
|
+
**Input**
|
|
329
|
+
|
|
330
|
+
| Field | Type | Required | Description |
|
|
331
|
+
|---|---|---|---|
|
|
332
|
+
| `body` | `ListCreateRequest` | yes | Request body; fields below. |
|
|
333
|
+
|
|
334
|
+
Body fields (`ListCreateRequest`):
|
|
335
|
+
|
|
336
|
+
| Field | Type | Required | Description |
|
|
337
|
+
|---|---|---|---|
|
|
338
|
+
| `body.title` | `string` | yes | Name of the list |
|
|
339
|
+
| `body.description` | `string \| null` | no | Optional note describing the list's purpose, readable by agents (#16641) max length 2000 |
|
|
340
|
+
| `body.type` | `string` | no | List type: contacts, companies, suppressions, deals, leads default `"contacts"` |
|
|
341
|
+
|
|
342
|
+
**Returns** `ApiResponse_ListCreateResponse_`: the envelope `{ data: ListCreateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
343
|
+
|
|
344
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
345
|
+
|
|
346
|
+
`ListCreateResponse` fields:
|
|
347
|
+
|
|
348
|
+
| Field | Type | Required | Description |
|
|
349
|
+
|---|---|---|---|
|
|
350
|
+
| `id` | `integer` | yes | |
|
|
351
|
+
| `title` | `string` | yes | |
|
|
352
|
+
| `description` | `string \| null` | no | |
|
|
353
|
+
| `status` | `string \| null` | no | |
|
|
354
|
+
| `total` | `integer` | no | default `0` |
|
|
355
|
+
| `type` | `string \| null` | no | |
|
|
356
|
+
|
|
357
|
+
**Example**
|
|
358
|
+
|
|
359
|
+
```ts
|
|
360
|
+
const result = await g8.api.lists.createList({ body: { title: "Example" } });
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
<a id="op-createlistfolder"></a>
|
|
366
|
+
|
|
367
|
+
### `g8.api.lists.createListFolder(input)`
|
|
368
|
+
|
|
369
|
+
**Create List Folder**
|
|
370
|
+
|
|
371
|
+
- HTTP: `POST /api/v1/lists/folders`
|
|
372
|
+
- operationId: `create_list_folder_lists_folders_post` (also callable as `g8.api.call("create_list_folder_lists_folders_post", input)`)
|
|
373
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
374
|
+
- API-key scope: `lists:write`
|
|
375
|
+
|
|
376
|
+
Create a folder. Titles are de-duplicated per owner by the same
|
|
377
|
+
internal path the app uses, so a repeat title returns its 409 unchanged.
|
|
378
|
+
|
|
379
|
+
**Input**
|
|
380
|
+
|
|
381
|
+
| Field | Type | Required | Description |
|
|
382
|
+
|---|---|---|---|
|
|
383
|
+
| `body` | `ListFolderCreateRequest` | yes | Request body; fields below. |
|
|
384
|
+
|
|
385
|
+
Body fields (`ListFolderCreateRequest`):
|
|
386
|
+
|
|
387
|
+
| Field | Type | Required | Description |
|
|
388
|
+
|---|---|---|---|
|
|
389
|
+
| `body.title` | `string` | yes | Folder title. min length 1, max length 120 |
|
|
390
|
+
| `body.visibility` | `"private" \| "org" \| null` | no | Defaults to `private` when omitted. |
|
|
391
|
+
|
|
392
|
+
**Returns** `ApiResponse_ListFolderResponse_`: the envelope `{ data: ListFolderResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
393
|
+
|
|
394
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
395
|
+
|
|
396
|
+
`ListFolderResponse` fields:
|
|
397
|
+
|
|
398
|
+
| Field | Type | Required | Description |
|
|
399
|
+
|---|---|---|---|
|
|
400
|
+
| `created_by` | `string` | yes | User id that created the folder. |
|
|
401
|
+
| `id` | `string (uuid)` | yes | Folder id. |
|
|
402
|
+
| `is_owner` | `boolean` | yes | True when the calling key's org owns the folder. |
|
|
403
|
+
| `list_count` | `integer` | yes | Number of lists currently filed in this folder. |
|
|
404
|
+
| `title` | `string` | yes | Display title. |
|
|
405
|
+
| `visibility` | `string` | yes | `private` (owner only) or `org` (browse-only for teammates). |
|
|
406
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
407
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
408
|
+
|
|
409
|
+
**Example**
|
|
410
|
+
|
|
411
|
+
```ts
|
|
412
|
+
const result = await g8.api.lists.createListFolder({ body: { title: "Example" } });
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
<a id="op-createmasterlist"></a>
|
|
418
|
+
|
|
419
|
+
### `g8.api.lists.createMasterList(input)`
|
|
420
|
+
|
|
421
|
+
**Create Master List**
|
|
422
|
+
|
|
423
|
+
- HTTP: `POST /api/v1/lists/masters`
|
|
424
|
+
- operationId: `create_master_list_lists_masters_post` (also callable as `g8.api.call("create_master_list_lists_masters_post", input)`)
|
|
425
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
426
|
+
- API-key scope: `lists:write`
|
|
427
|
+
|
|
428
|
+
Create a master list from other lists.
|
|
429
|
+
|
|
430
|
+
`include_all_sources` takes EVERY list of this type, including ones
|
|
431
|
+
created later - a standing rule rather than a snapshot, and it makes
|
|
432
|
+
`source_list_ids` irrelevant.
|
|
433
|
+
|
|
434
|
+
The first sync runs in the BACKGROUND, so the list comes back empty and
|
|
435
|
+
fills shortly after.
|
|
436
|
+
|
|
437
|
+
**Input**
|
|
438
|
+
|
|
439
|
+
| Field | Type | Required | Description |
|
|
440
|
+
|---|---|---|---|
|
|
441
|
+
| `body` | `CreateMasterListRequest` | yes | Request body; fields below. |
|
|
442
|
+
|
|
443
|
+
Body fields (`CreateMasterListRequest`):
|
|
444
|
+
|
|
445
|
+
| Field | Type | Required | Description |
|
|
446
|
+
|---|---|---|---|
|
|
447
|
+
| `body.title` | `string` | yes | max length 500 |
|
|
448
|
+
| `body.include_all_sources` | `boolean` | no | Take EVERY list of this type instead of the named ones, including ones created later. `source_list_ids` is then ignored. default `false` |
|
|
449
|
+
| `body.source_list_ids` | `Array<integer>` | no | The lists to union. |
|
|
450
|
+
| `body.type` | `"contacts" \| "companies" \| "suppressions" \| "deals" \| "leads"` | no | Wire name is `type`; see `CreateEmptyListRequest`. default `"contacts"` |
|
|
451
|
+
|
|
452
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
453
|
+
|
|
454
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
455
|
+
|
|
456
|
+
**Example**
|
|
457
|
+
|
|
458
|
+
```ts
|
|
459
|
+
const result = await g8.api.lists.createMasterList({ body: { title: "Example" } });
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
<a id="op-deletecompaniesfromlist"></a>
|
|
465
|
+
|
|
466
|
+
### `g8.api.lists.deleteCompaniesFromList(input)`
|
|
467
|
+
|
|
468
|
+
**Delete Companies From List**
|
|
469
|
+
|
|
470
|
+
- HTTP: `DELETE /api/v1/lists/{audience_id}/companies`
|
|
471
|
+
- operationId: `delete_companies_from_list_lists__audience_id__companies_delete` (also callable as `g8.api.call("delete_companies_from_list_lists__audience_id__companies_delete", input)`)
|
|
472
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
473
|
+
- API-key scope: `lists:delete`
|
|
474
|
+
|
|
475
|
+
Remove companies from a list.
|
|
476
|
+
|
|
477
|
+
**Input**
|
|
478
|
+
|
|
479
|
+
| Field | Type | Required | Description |
|
|
480
|
+
|---|---|---|---|
|
|
481
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
482
|
+
| `body` | `DeleteCompaniesFromListRequest` | yes | Request body; fields below. |
|
|
483
|
+
| `query.agFilterModel` | `string \| null` | no | AgGrid filter JSON. Every company in the list matching it is removed, IN ADDITION to `company_ids` - the two combine rather than the filter narrowing the ids. |
|
|
484
|
+
|
|
485
|
+
Body fields (`DeleteCompaniesFromListRequest`):
|
|
486
|
+
|
|
487
|
+
| Field | Type | Required | Description |
|
|
488
|
+
|---|---|---|---|
|
|
489
|
+
| `body.company_ids` | `Array<integer>` | no | |
|
|
490
|
+
|
|
491
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
492
|
+
|
|
493
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
494
|
+
|
|
495
|
+
**Example**
|
|
496
|
+
|
|
497
|
+
```ts
|
|
498
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
499
|
+
const result = await g8.api.lists.deleteCompaniesFromList({ path: { audience_id: 123 }, body: {} });
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
<a id="op-deleteleadsfromlist"></a>
|
|
505
|
+
|
|
506
|
+
### `g8.api.lists.deleteLeadsFromList(input)`
|
|
507
|
+
|
|
508
|
+
**Delete Leads From List**
|
|
509
|
+
|
|
510
|
+
- HTTP: `DELETE /api/v1/lists/{audience_id}/leads`
|
|
511
|
+
- operationId: `delete_leads_from_list_lists__audience_id__leads_delete` (also callable as `g8.api.call("delete_leads_from_list_lists__audience_id__leads_delete", input)`)
|
|
512
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
513
|
+
- API-key scope: `lists:delete`
|
|
514
|
+
|
|
515
|
+
Remove leads from a list.
|
|
516
|
+
|
|
517
|
+
**Input**
|
|
518
|
+
|
|
519
|
+
| Field | Type | Required | Description |
|
|
520
|
+
|---|---|---|---|
|
|
521
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
522
|
+
| `body` | `DeleteLeadsFromListRequest` | yes | Request body; fields below. |
|
|
523
|
+
|
|
524
|
+
Body fields (`DeleteLeadsFromListRequest`):
|
|
525
|
+
|
|
526
|
+
| Field | Type | Required | Description |
|
|
527
|
+
|---|---|---|---|
|
|
528
|
+
| `body.lead_ids` | `Array<integer>` | yes | The leads to remove. |
|
|
529
|
+
|
|
530
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
531
|
+
|
|
532
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
533
|
+
|
|
534
|
+
**Example**
|
|
535
|
+
|
|
536
|
+
```ts
|
|
537
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
538
|
+
const result = await g8.api.lists.deleteLeadsFromList({ path: { audience_id: 123 }, body: { lead_ids: [123] } });
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
<a id="op-deletelist"></a>
|
|
544
|
+
|
|
545
|
+
### `g8.api.lists.deleteList(input)`
|
|
546
|
+
|
|
547
|
+
**Delete List**
|
|
548
|
+
|
|
549
|
+
- HTTP: `DELETE /api/v1/lists/{list_id}`
|
|
550
|
+
- operationId: `delete_list_lists__list_id__delete` (also callable as `g8.api.call("delete_list_lists__list_id__delete", input)`)
|
|
551
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
552
|
+
- API-key scope: `lists:delete`
|
|
553
|
+
- ★ Hand-written: [`g8.lists.delete()`](../sdk-clients.md#g8-lists-delete)
|
|
554
|
+
|
|
555
|
+
Soft-delete a list.
|
|
556
|
+
|
|
557
|
+
**Input**
|
|
558
|
+
|
|
559
|
+
| Field | Type | Required | Description |
|
|
560
|
+
|---|---|---|---|
|
|
561
|
+
| `path.list_id` | `integer` | yes | List ID |
|
|
562
|
+
|
|
563
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
564
|
+
|
|
565
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
566
|
+
|
|
567
|
+
**Example**
|
|
568
|
+
|
|
569
|
+
```ts
|
|
570
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
571
|
+
const result = await g8.api.lists.deleteList({ path: { list_id: 123 } });
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
---
|
|
575
|
+
|
|
576
|
+
<a id="op-deletelistfolder"></a>
|
|
577
|
+
|
|
578
|
+
### `g8.api.lists.deleteListFolder(input)`
|
|
579
|
+
|
|
580
|
+
**Delete List Folder**
|
|
581
|
+
|
|
582
|
+
- HTTP: `DELETE /api/v1/lists/folders/{folder_id}`
|
|
583
|
+
- operationId: `delete_list_folder_lists_folders__folder_id__delete` (also callable as `g8.api.call("delete_list_folder_lists_folders__folder_id__delete", input)`)
|
|
584
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
585
|
+
- API-key scope: `lists:delete`
|
|
586
|
+
|
|
587
|
+
Delete a folder. The lists inside it are NOT deleted - they are
|
|
588
|
+
unfiled, exactly as in the app.
|
|
589
|
+
|
|
590
|
+
**Input**
|
|
591
|
+
|
|
592
|
+
| Field | Type | Required | Description |
|
|
593
|
+
|---|---|---|---|
|
|
594
|
+
| `path.folder_id` | `string (uuid)` | yes | Folder id. |
|
|
595
|
+
|
|
596
|
+
**Returns**: no JSON body is declared for the success response.
|
|
597
|
+
|
|
598
|
+
**Example**
|
|
599
|
+
|
|
600
|
+
```ts
|
|
601
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
602
|
+
const result = await g8.api.lists.deleteListFolder({ path: { folder_id: "00000000-0000-0000-0000-000000000000" } });
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
<a id="op-deletesuppressionsfromlist"></a>
|
|
608
|
+
|
|
609
|
+
### `g8.api.lists.deleteSuppressionsFromList(input)`
|
|
610
|
+
|
|
611
|
+
**Delete Suppressions From List**
|
|
612
|
+
|
|
613
|
+
- HTTP: `DELETE /api/v1/lists/{audience_id}/suppressions`
|
|
614
|
+
- operationId: `delete_suppressions_from_list_lists__audience_id__suppressions_delete` (also callable as `g8.api.call("delete_suppressions_from_list_lists__audience_id__suppressions_delete", input)`)
|
|
615
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
616
|
+
- API-key scope: `lists:delete`
|
|
617
|
+
|
|
618
|
+
Remove suppressions from a suppression list.
|
|
619
|
+
|
|
620
|
+
Removing a suppression makes those people CONTACTABLE again - this is the
|
|
621
|
+
one removal here that changes who can be emailed.
|
|
622
|
+
|
|
623
|
+
**Input**
|
|
624
|
+
|
|
625
|
+
| Field | Type | Required | Description |
|
|
626
|
+
|---|---|---|---|
|
|
627
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
628
|
+
| `body` | `DeleteSuppressionsFromListRequest` | yes | Request body; fields below. |
|
|
629
|
+
|
|
630
|
+
Body fields (`DeleteSuppressionsFromListRequest`):
|
|
631
|
+
|
|
632
|
+
| Field | Type | Required | Description |
|
|
633
|
+
|---|---|---|---|
|
|
634
|
+
| `body.suppression_ids` | `Array<integer>` | yes | The suppressions to remove. |
|
|
635
|
+
|
|
636
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
637
|
+
|
|
638
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
639
|
+
|
|
640
|
+
**Example**
|
|
641
|
+
|
|
642
|
+
```ts
|
|
643
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
644
|
+
const result = await g8.api.lists.deleteSuppressionsFromList({ path: { audience_id: 123 }, body: { suppression_ids: [123] } });
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
---
|
|
648
|
+
|
|
649
|
+
<a id="op-downloadlist"></a>
|
|
650
|
+
|
|
651
|
+
### `g8.api.lists.downloadList(input)`
|
|
652
|
+
|
|
653
|
+
**Download List**
|
|
654
|
+
|
|
655
|
+
- HTTP: `GET /api/v1/lists/{audience_id}/download`
|
|
656
|
+
- operationId: `download_list_lists__audience_id__download_get` (also callable as `g8.api.call("download_list_lists__audience_id__download_get", input)`)
|
|
657
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
658
|
+
- API-key scope: `lists:read`
|
|
659
|
+
|
|
660
|
+
Every row of a list as a CSV or XLSX file. FREE.
|
|
661
|
+
|
|
662
|
+
Unbounded: the file holds the WHOLE list. CSV comes back as text; XLSX as
|
|
663
|
+
base64 in `content` with `encoding: "base64"`.
|
|
664
|
+
|
|
665
|
+
**Input**
|
|
666
|
+
|
|
667
|
+
| Field | Type | Required | Description |
|
|
668
|
+
|---|---|---|---|
|
|
669
|
+
| `path.audience_id` | `integer` | yes | |
|
|
670
|
+
| `query.format` | `"csv" \| "xlsx"` | no | `csv` or `xlsx`. default `"xlsx"` |
|
|
671
|
+
| `query.columns` | `Array<string> \| null` | no | Only these columns. Omit for every column. LinkedIn profile URLs are always kept, as in the app. |
|
|
672
|
+
|
|
673
|
+
**Returns** `ApiResponse_ListDownloadPayload_`: the envelope `{ data: ListDownloadPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
674
|
+
|
|
675
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
676
|
+
|
|
677
|
+
`ListDownloadPayload` fields:
|
|
678
|
+
|
|
679
|
+
| Field | Type | Required | Description |
|
|
680
|
+
|---|---|---|---|
|
|
681
|
+
| `content` | `string` | yes | |
|
|
682
|
+
| `encoding` | `"utf-8" \| "base64"` | yes | |
|
|
683
|
+
| `filename` | `string` | yes | |
|
|
684
|
+
| `format` | `"csv" \| "xlsx"` | yes | |
|
|
685
|
+
| `media_type` | `string` | yes | |
|
|
686
|
+
|
|
687
|
+
**Example**
|
|
688
|
+
|
|
689
|
+
```ts
|
|
690
|
+
const result = await g8.api.lists.downloadList({ path: { audience_id: 123 } });
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
---
|
|
694
|
+
|
|
695
|
+
<a id="op-generatetrackedlinks"></a>
|
|
696
|
+
|
|
697
|
+
### `g8.api.lists.generateTrackedLinks(input)`
|
|
698
|
+
|
|
699
|
+
**Generate Tracked Links**
|
|
700
|
+
|
|
701
|
+
- HTTP: `POST /api/v1/lists/{audience_id}/generate-tracked-links`
|
|
702
|
+
- operationId: `generate_tracked_links_lists__audience_id__generate_tracked_links_post` (also callable as `g8.api.call("generate_tracked_links_lists__audience_id__generate_tracked_links_post", input)`)
|
|
703
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
704
|
+
- API-key scope: `lists:write`
|
|
705
|
+
|
|
706
|
+
Mint one tracked URL per row, into a column on the list.
|
|
707
|
+
|
|
708
|
+
`params_template` interpolates this list's own columns - check
|
|
709
|
+
`GET /tracked-links/columns` first, because an unresolvable name produces
|
|
710
|
+
a link with an empty parameter rather than an error.
|
|
711
|
+
|
|
712
|
+
`placement` only applies when `shorten` is off.
|
|
713
|
+
|
|
714
|
+
**Input**
|
|
715
|
+
|
|
716
|
+
| Field | Type | Required | Description |
|
|
717
|
+
|---|---|---|---|
|
|
718
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
719
|
+
| `body` | `GenerateTrackedLinksRequest` | yes | Request body; fields below. |
|
|
720
|
+
|
|
721
|
+
Body fields (`GenerateTrackedLinksRequest`):
|
|
722
|
+
|
|
723
|
+
| Field | Type | Required | Description |
|
|
724
|
+
|---|---|---|---|
|
|
725
|
+
| `body.destination_url` | `string` | yes | Absolute http(s) URL every link points at. |
|
|
726
|
+
| `body.link_name` | `string` | yes | What this set of links is called. |
|
|
727
|
+
| `body.column_title` | `string \| null` | no | Column to write the links into. |
|
|
728
|
+
| `body.params_template` | `Record<string, string>` | no | Query parameters to interpolate per row, e.g. {'utm_term': '{company}'}. |
|
|
729
|
+
| `body.placement` | `"fragment" \| "query"` | no | Where the token goes on a NON-shortened URL: `fragment` (#t=…) or `query` (?g8t=…). Ignored when `shorten` is on. default `"fragment"` |
|
|
730
|
+
| `body.shorten` | `boolean` | no | Use the short-link domain. default `false` |
|
|
731
|
+
| `body.stream_id` | `string \| null` | no | |
|
|
732
|
+
|
|
733
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
734
|
+
|
|
735
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
736
|
+
|
|
737
|
+
**Example**
|
|
738
|
+
|
|
739
|
+
```ts
|
|
740
|
+
const result = await g8.api.lists.generateTrackedLinks({
|
|
741
|
+
path: { audience_id: 123 },
|
|
742
|
+
body: { destination_url: "https://example.com", link_name: "Example" },
|
|
743
|
+
});
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
---
|
|
747
|
+
|
|
748
|
+
<a id="op-getlistcolumncapabilities"></a>
|
|
749
|
+
|
|
750
|
+
### `g8.api.lists.getListColumnCapabilities(input)`
|
|
751
|
+
|
|
752
|
+
**Get List Column Capabilities**
|
|
753
|
+
|
|
754
|
+
- HTTP: `GET /api/v1/lists/{audience_id}/column-capabilities`
|
|
755
|
+
- operationId: `get_list_column_capabilities_lists__audience_id__column_capabilities_get` (also callable as `g8.api.call("get_list_column_capabilities_lists__audience_id__column_capabilities_get", input)`)
|
|
756
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
757
|
+
- API-key scope: `lists:read`
|
|
758
|
+
|
|
759
|
+
Which dynamic columns this list can carry, and what may be written.
|
|
760
|
+
|
|
761
|
+
Read this before `PATCH /dynamic-value`: a column that is not writable
|
|
762
|
+
here is refused there, and the capability map is the only way to know
|
|
763
|
+
which is which without guessing.
|
|
764
|
+
|
|
765
|
+
**Input**
|
|
766
|
+
|
|
767
|
+
| Field | Type | Required | Description |
|
|
768
|
+
|---|---|---|---|
|
|
769
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
770
|
+
| `query.object_type` | `"mashup_contacts" \| "mashup_companies"` | yes | Which grid's columns: contacts or companies. |
|
|
771
|
+
|
|
772
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
773
|
+
|
|
774
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
775
|
+
|
|
776
|
+
**Example**
|
|
777
|
+
|
|
778
|
+
```ts
|
|
779
|
+
const result = await g8.api.lists.getListColumnCapabilities({
|
|
780
|
+
path: { audience_id: 123 },
|
|
781
|
+
query: { object_type: "mashup_contacts" },
|
|
782
|
+
});
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
---
|
|
786
|
+
|
|
787
|
+
<a id="op-getlistcontacts"></a>
|
|
788
|
+
|
|
789
|
+
### `g8.api.lists.getListContacts(input)`
|
|
790
|
+
|
|
791
|
+
**Get List Contacts**
|
|
792
|
+
|
|
793
|
+
- HTTP: `GET /api/v1/lists/{list_id}/contacts`
|
|
794
|
+
- operationId: `get_list_contacts_lists__list_id__contacts_get` (also callable as `g8.api.call("get_list_contacts_lists__list_id__contacts_get", input)`)
|
|
795
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
796
|
+
- API-key scope: `lists:read`
|
|
797
|
+
- ★ Hand-written: [`g8.lists.contacts()`](../sdk-clients.md#g8-lists-contacts)
|
|
798
|
+
|
|
799
|
+
Get contacts in a specific list.
|
|
800
|
+
|
|
801
|
+
**Input**
|
|
802
|
+
|
|
803
|
+
| Field | Type | Required | Description |
|
|
804
|
+
|---|---|---|---|
|
|
805
|
+
| `path.list_id` | `integer` | yes | List ID |
|
|
806
|
+
| `query.page` | `integer` | no | Page number (1-indexed) default `1` |
|
|
807
|
+
| `query.limit` | `integer` | no | Items per page (max 200) default `50` |
|
|
808
|
+
|
|
809
|
+
**Returns** `ApiResponse_list_ContactListItem__`: the envelope `{ data: Array<ContactListItem>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
810
|
+
|
|
811
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
812
|
+
|
|
813
|
+
`ContactListItem` fields:
|
|
814
|
+
|
|
815
|
+
| Field | Type | Required | Description |
|
|
816
|
+
|---|---|---|---|
|
|
817
|
+
| `city` | `string \| null` | no | |
|
|
818
|
+
| `company_id` | `integer \| null` | no | |
|
|
819
|
+
| `country` | `string \| null` | no | |
|
|
820
|
+
| `custom_fields` | `Record<string, string \| null> \| null` | no | |
|
|
821
|
+
| `direct_phone` | `string \| null` | no | |
|
|
822
|
+
| `first_name` | `string \| null` | no | |
|
|
823
|
+
| `id` | `integer \| null` | no | |
|
|
824
|
+
| `job_department` | `string \| null` | no | |
|
|
825
|
+
| `job_title` | `string \| null` | no | |
|
|
826
|
+
| `last_name` | `string \| null` | no | |
|
|
827
|
+
| `linkedin_url` | `string \| null` | no | |
|
|
828
|
+
| `mobile_phone` | `string \| null` | no | |
|
|
829
|
+
| `owner_id` | `string \| null` | no | |
|
|
830
|
+
| `owner_name` | `string \| null` | no | |
|
|
831
|
+
| `seniority_level` | `string \| null` | no | |
|
|
832
|
+
| `state` | `string \| null` | no | |
|
|
833
|
+
| `work_email` | `string \| null` | no | |
|
|
834
|
+
|
|
835
|
+
**Example**
|
|
836
|
+
|
|
837
|
+
```ts
|
|
838
|
+
const result = await g8.api.lists.getListContacts({ path: { list_id: 123 } });
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
---
|
|
842
|
+
|
|
843
|
+
<a id="op-getlistkeywordlinks"></a>
|
|
844
|
+
|
|
845
|
+
### `g8.api.lists.getListKeywordLinks(input)`
|
|
846
|
+
|
|
847
|
+
**Get List Keyword Links**
|
|
848
|
+
|
|
849
|
+
- HTTP: `GET /api/v1/lists/{audience_id}/keyword-links`
|
|
850
|
+
- operationId: `get_list_keyword_links_lists__audience_id__keyword_links_get` (also callable as `g8.api.call("get_list_keyword_links_lists__audience_id__keyword_links_get", input)`)
|
|
851
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
852
|
+
- API-key scope: `lists:read`
|
|
853
|
+
|
|
854
|
+
Which intent keywords auto-populate this list.
|
|
855
|
+
|
|
856
|
+
The authoritative source: the link lives in
|
|
857
|
+
`cb_keyword_sync_configs.list_id`, not in the list's own query, so a list
|
|
858
|
+
can be fed by a keyword while its `icp_query` says nothing about it.
|
|
859
|
+
|
|
860
|
+
**Input**
|
|
861
|
+
|
|
862
|
+
| Field | Type | Required | Description |
|
|
863
|
+
|---|---|---|---|
|
|
864
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
865
|
+
|
|
866
|
+
**Returns** `ApiResponse_ListCollectionPayload_`: the envelope `{ data: ListCollectionPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
867
|
+
|
|
868
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
869
|
+
|
|
870
|
+
`ListCollectionPayload` fields:
|
|
871
|
+
|
|
872
|
+
| Field | Type | Required | Description |
|
|
873
|
+
|---|---|---|---|
|
|
874
|
+
| `items` | `Array<unknown>` | no | |
|
|
875
|
+
|
|
876
|
+
**Example**
|
|
877
|
+
|
|
878
|
+
```ts
|
|
879
|
+
const result = await g8.api.lists.getListKeywordLinks({ path: { audience_id: 123 } });
|
|
880
|
+
```
|
|
881
|
+
|
|
882
|
+
---
|
|
883
|
+
|
|
884
|
+
<a id="op-getlistperformance"></a>
|
|
885
|
+
|
|
886
|
+
### `g8.api.lists.getListPerformance(input?)`
|
|
887
|
+
|
|
888
|
+
**Get List Performance**
|
|
889
|
+
|
|
890
|
+
- HTTP: `GET /api/v1/lists/performance`
|
|
891
|
+
- operationId: `get_list_performance_lists_performance_get` (also callable as `g8.api.call("get_list_performance_lists_performance_get", input)`)
|
|
892
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
893
|
+
- API-key scope: `lists:read`
|
|
894
|
+
|
|
895
|
+
Engagement counters for one list or every list the key may see.
|
|
896
|
+
|
|
897
|
+
**Input**
|
|
898
|
+
|
|
899
|
+
| Field | Type | Required | Description |
|
|
900
|
+
|---|---|---|---|
|
|
901
|
+
| `query.list_id` | `integer \| null` | no | Filter to a single list. Omit for all lists. |
|
|
902
|
+
| `query.days` | `integer \| null` | no | Restrict sends/events to the last N days. Omit for all-time. Ignored when start_date and end_date are both supplied. |
|
|
903
|
+
| `query.start_date` | `string \| null` | no | Inclusive start of an anchored range, `YYYY-MM-DD`. Requires end_date. |
|
|
904
|
+
| `query.end_date` | `string \| null` | no | Inclusive end of an anchored range, `YYYY-MM-DD`. |
|
|
905
|
+
|
|
906
|
+
**Returns** `ApiResponse_ListPerformanceResponse_`: the envelope `{ data: ListPerformanceResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
907
|
+
|
|
908
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
909
|
+
|
|
910
|
+
`ListPerformanceResponse` fields:
|
|
911
|
+
|
|
912
|
+
| Field | Type | Required | Description |
|
|
913
|
+
|---|---|---|---|
|
|
914
|
+
| `items` | `Array<ListPerformanceItem>` | no | |
|
|
915
|
+
|
|
916
|
+
**Example**
|
|
917
|
+
|
|
918
|
+
```ts
|
|
919
|
+
const result = await g8.api.lists.getListPerformance();
|
|
920
|
+
```
|
|
921
|
+
|
|
922
|
+
---
|
|
923
|
+
|
|
924
|
+
<a id="op-gettrackedlinkcolumns"></a>
|
|
925
|
+
|
|
926
|
+
### `g8.api.lists.getTrackedLinkColumns(input)`
|
|
927
|
+
|
|
928
|
+
**Get Tracked Link Columns**
|
|
929
|
+
|
|
930
|
+
- HTTP: `GET /api/v1/lists/{audience_id}/tracked-links/columns`
|
|
931
|
+
- operationId: `get_tracked_link_columns_lists__audience_id__tracked_links_columns_get` (also callable as `g8.api.call("get_tracked_link_columns_lists__audience_id__tracked_links_columns_get", input)`)
|
|
932
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
933
|
+
- API-key scope: `lists:read`
|
|
934
|
+
|
|
935
|
+
Which of this list's columns can be interpolated into a tracked link.
|
|
936
|
+
|
|
937
|
+
The source of the names usable in `params_template` - anything else
|
|
938
|
+
resolves to nothing and produces a link with an empty parameter.
|
|
939
|
+
|
|
940
|
+
**Input**
|
|
941
|
+
|
|
942
|
+
| Field | Type | Required | Description |
|
|
943
|
+
|---|---|---|---|
|
|
944
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
945
|
+
|
|
946
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
947
|
+
|
|
948
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
949
|
+
|
|
950
|
+
**Example**
|
|
951
|
+
|
|
952
|
+
```ts
|
|
953
|
+
const result = await g8.api.lists.getTrackedLinkColumns({ path: { audience_id: 123 } });
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
---
|
|
957
|
+
|
|
958
|
+
<a id="op-listdatacolumns"></a>
|
|
959
|
+
|
|
960
|
+
### `g8.api.lists.listDataColumns(input)`
|
|
961
|
+
|
|
962
|
+
**List Data Columns**
|
|
963
|
+
|
|
964
|
+
- HTTP: `GET /api/v1/lists/{list_id}/data-columns`
|
|
965
|
+
- operationId: `list_data_columns_lists__list_id__data_columns_get` (also callable as `g8.api.call("list_data_columns_lists__list_id__data_columns_get", input)`)
|
|
966
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
967
|
+
- API-key scope: `lists:read`
|
|
968
|
+
|
|
969
|
+
The enrichment (waterfall), AI and dynamic columns this list carries.
|
|
970
|
+
|
|
971
|
+
Pass a row's `column_name_db` in `extra_fields` on `POST .../integrity-check`.
|
|
972
|
+
|
|
973
|
+
**Input**
|
|
974
|
+
|
|
975
|
+
| Field | Type | Required | Description |
|
|
976
|
+
|---|---|---|---|
|
|
977
|
+
| `path.list_id` | `integer` | yes | List (audience) id. |
|
|
978
|
+
|
|
979
|
+
**Returns** `ApiResponse_SequencerListPayload_`: the envelope `{ data: SequencerListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
980
|
+
|
|
981
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
982
|
+
|
|
983
|
+
`SequencerListPayload` fields:
|
|
984
|
+
|
|
985
|
+
| Field | Type | Required | Description |
|
|
986
|
+
|---|---|---|---|
|
|
987
|
+
| `items` | `Array<unknown>` | no | |
|
|
988
|
+
|
|
989
|
+
**Example**
|
|
990
|
+
|
|
991
|
+
```ts
|
|
992
|
+
const result = await g8.api.lists.listDataColumns({ path: { list_id: 1 } });
|
|
993
|
+
```
|
|
994
|
+
|
|
995
|
+
---
|
|
996
|
+
|
|
997
|
+
<a id="op-listlistfolders"></a>
|
|
998
|
+
|
|
999
|
+
### `g8.api.lists.listListFolders(input?)`
|
|
1000
|
+
|
|
1001
|
+
**List List Folders**
|
|
1002
|
+
|
|
1003
|
+
- HTTP: `GET /api/v1/lists/folders`
|
|
1004
|
+
- operationId: `list_list_folders_lists_folders_get` (also callable as `g8.api.call("list_list_folders_lists_folders_get", input)`)
|
|
1005
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1006
|
+
- API-key scope: `lists:read`
|
|
1007
|
+
|
|
1008
|
+
Folders the key's org owns, plus org-visible folders owned by teammates.
|
|
1009
|
+
|
|
1010
|
+
`assignments` maps list id -> folder id, which is what a rebuilt Lists
|
|
1011
|
+
screen needs to place each list without a second round trip.
|
|
1012
|
+
|
|
1013
|
+
The internal `list_folders` takes TWO different scope classes: a
|
|
1014
|
+
campaign_builder `service_scope` (carrying `.is_scoped`/`.allowed_list_ids`)
|
|
1015
|
+
and an audiences `visibility_scope`. They are resolved by distinct
|
|
1016
|
+
dependencies - passing one object as both raises AttributeError -> 500.
|
|
1017
|
+
|
|
1018
|
+
**Input**: none.
|
|
1019
|
+
|
|
1020
|
+
**Returns** `ApiResponse_ListFolderIndexResponse_`: the envelope `{ data: ListFolderIndexResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1021
|
+
|
|
1022
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1023
|
+
|
|
1024
|
+
`ListFolderIndexResponse` fields:
|
|
1025
|
+
|
|
1026
|
+
| Field | Type | Required | Description |
|
|
1027
|
+
|---|---|---|---|
|
|
1028
|
+
| `assignments` | `Record<string, string (uuid)>` | no | Map of list id -> folder id for every filed list. |
|
|
1029
|
+
| `folders` | `Array<ListFolderResponse>` | no | |
|
|
1030
|
+
| `shared_folders` | `Array<ListFolderResponse>` | no | |
|
|
1031
|
+
| `starred_ids` | `Array<integer>` | no | List ids the caller has starred. |
|
|
1032
|
+
|
|
1033
|
+
**Example**
|
|
1034
|
+
|
|
1035
|
+
```ts
|
|
1036
|
+
const result = await g8.api.lists.listListFolders();
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
---
|
|
1040
|
+
|
|
1041
|
+
<a id="op-listlists"></a>
|
|
1042
|
+
|
|
1043
|
+
### `g8.api.lists.listLists(input?)`
|
|
1044
|
+
|
|
1045
|
+
**List Lists**
|
|
1046
|
+
|
|
1047
|
+
- HTTP: `GET /api/v1/lists`
|
|
1048
|
+
- operationId: `list_lists_lists_get` (also callable as `g8.api.call("list_lists_lists_get", input)`)
|
|
1049
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1050
|
+
- API-key scope: `lists:read`
|
|
1051
|
+
- ★ Hand-written: [`g8.lists.list()`](../sdk-clients.md#g8-lists-list)
|
|
1052
|
+
|
|
1053
|
+
List all lists (audiences) in the organization.
|
|
1054
|
+
|
|
1055
|
+
**Input**
|
|
1056
|
+
|
|
1057
|
+
| Field | Type | Required | Description |
|
|
1058
|
+
|---|---|---|---|
|
|
1059
|
+
| `query.page` | `integer` | no | Page number (1-indexed) default `1` |
|
|
1060
|
+
| `query.limit` | `integer` | no | Items per page (max 200) default `50` |
|
|
1061
|
+
|
|
1062
|
+
**Returns** `ApiResponse_list_ListResponse__`: the envelope `{ data: Array<ListResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1063
|
+
|
|
1064
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1065
|
+
|
|
1066
|
+
`ListResponse` fields:
|
|
1067
|
+
|
|
1068
|
+
| Field | Type | Required | Description |
|
|
1069
|
+
|---|---|---|---|
|
|
1070
|
+
| `id` | `integer` | yes | |
|
|
1071
|
+
| `title` | `string` | yes | |
|
|
1072
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
1073
|
+
| `created_by` | `string \| null` | no | |
|
|
1074
|
+
| `description` | `string \| null` | no | Agent/human-readable note describing the list's purpose (#16641) |
|
|
1075
|
+
| `is_dynamic` | `boolean` | no | default `false` |
|
|
1076
|
+
| `source` | `string \| null` | no | Source of the list |
|
|
1077
|
+
| `status` | `string \| null` | no | |
|
|
1078
|
+
| `tags` | `Array<string>` | no | |
|
|
1079
|
+
| `total` | `integer` | no | default `0` |
|
|
1080
|
+
| `type` | `string \| null` | no | List type (contacts, companies, suppressions, deals, leads) |
|
|
1081
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
1082
|
+
|
|
1083
|
+
**Example**
|
|
1084
|
+
|
|
1085
|
+
```ts
|
|
1086
|
+
const result = await g8.api.lists.listLists();
|
|
1087
|
+
```
|
|
1088
|
+
|
|
1089
|
+
---
|
|
1090
|
+
|
|
1091
|
+
<a id="op-listmasterlists"></a>
|
|
1092
|
+
|
|
1093
|
+
### `g8.api.lists.listMasterLists(input?)`
|
|
1094
|
+
|
|
1095
|
+
**List Master Lists**
|
|
1096
|
+
|
|
1097
|
+
- HTTP: `GET /api/v1/lists/masters`
|
|
1098
|
+
- operationId: `list_master_lists_lists_masters_get` (also callable as `g8.api.call("list_master_lists_lists_masters_get", input)`)
|
|
1099
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1100
|
+
- API-key scope: `lists:read`
|
|
1101
|
+
|
|
1102
|
+
Master lists: the ones that union other lists and stay in sync.
|
|
1103
|
+
|
|
1104
|
+
**Input**: none.
|
|
1105
|
+
|
|
1106
|
+
**Returns** `ApiResponse_ListCollectionPayload_`: the envelope `{ data: ListCollectionPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1107
|
+
|
|
1108
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1109
|
+
|
|
1110
|
+
`ListCollectionPayload` fields:
|
|
1111
|
+
|
|
1112
|
+
| Field | Type | Required | Description |
|
|
1113
|
+
|---|---|---|---|
|
|
1114
|
+
| `items` | `Array<unknown>` | no | |
|
|
1115
|
+
|
|
1116
|
+
**Example**
|
|
1117
|
+
|
|
1118
|
+
```ts
|
|
1119
|
+
const result = await g8.api.lists.listMasterLists();
|
|
1120
|
+
```
|
|
1121
|
+
|
|
1122
|
+
---
|
|
1123
|
+
|
|
1124
|
+
<a id="op-patchdynamicvalue"></a>
|
|
1125
|
+
|
|
1126
|
+
### `g8.api.lists.patchDynamicValue(input)`
|
|
1127
|
+
|
|
1128
|
+
**Patch Dynamic Value**
|
|
1129
|
+
|
|
1130
|
+
- HTTP: `PATCH /api/v1/lists/{audience_id}/dynamic-value`
|
|
1131
|
+
- operationId: `patch_dynamic_value_lists__audience_id__dynamic_value_patch` (also callable as `g8.api.call("patch_dynamic_value_lists__audience_id__dynamic_value_patch", input)`)
|
|
1132
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1133
|
+
- API-key scope: `lists:write`
|
|
1134
|
+
|
|
1135
|
+
Write ONE cell of a user-owned dynamic column.
|
|
1136
|
+
|
|
1137
|
+
Fail-closed: a protected, unknown, other-list or other-org destination is
|
|
1138
|
+
refused rather than written somewhere plausible.
|
|
1139
|
+
|
|
1140
|
+
Send `expected_value` to make the write conditional on the cell not having
|
|
1141
|
+
moved. Omit it and the write wins unconditionally, which on a shared grid
|
|
1142
|
+
means overwriting a colleague's edit without knowing.
|
|
1143
|
+
|
|
1144
|
+
**Input**
|
|
1145
|
+
|
|
1146
|
+
| Field | Type | Required | Description |
|
|
1147
|
+
|---|---|---|---|
|
|
1148
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1149
|
+
| `body` | `PatchDynamicValueRequest` | yes | Request body; fields below. |
|
|
1150
|
+
|
|
1151
|
+
Body fields (`PatchDynamicValueRequest`):
|
|
1152
|
+
|
|
1153
|
+
| Field | Type | Required | Description |
|
|
1154
|
+
|---|---|---|---|
|
|
1155
|
+
| `body.column_key` | `string` | yes | Dynamic column key, e.g. `udo_notes`. |
|
|
1156
|
+
| `body.object_type` | `"mashup_contacts" \| "mashup_companies"` | yes | |
|
|
1157
|
+
| `body.record_id` | `integer` | yes | Grid row id. |
|
|
1158
|
+
| `body.expected_value` | `unknown \| null` | no | Refuse the write unless the cell still holds this. Omit to force. |
|
|
1159
|
+
| `body.value` | `unknown \| null` | no | New value. Null CLEARS the cell. |
|
|
1160
|
+
|
|
1161
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1162
|
+
|
|
1163
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1164
|
+
|
|
1165
|
+
**Example**
|
|
1166
|
+
|
|
1167
|
+
```ts
|
|
1168
|
+
const result = await g8.api.lists.patchDynamicValue({
|
|
1169
|
+
path: { audience_id: 123 },
|
|
1170
|
+
body: {
|
|
1171
|
+
column_key: "example",
|
|
1172
|
+
object_type: "mashup_contacts",
|
|
1173
|
+
record_id: 123,
|
|
1174
|
+
},
|
|
1175
|
+
});
|
|
1176
|
+
```
|
|
1177
|
+
|
|
1178
|
+
---
|
|
1179
|
+
|
|
1180
|
+
<a id="op-previewlistownertransfer"></a>
|
|
1181
|
+
|
|
1182
|
+
### `g8.api.lists.previewListOwnerTransfer(input)`
|
|
1183
|
+
|
|
1184
|
+
**Preview List Owner Transfer**
|
|
1185
|
+
|
|
1186
|
+
- HTTP: `GET /api/v1/lists/{audience_id}/owner/preview`
|
|
1187
|
+
- operationId: `preview_list_owner_transfer_lists__audience_id__owner_preview_get` (also callable as `g8.api.call("preview_list_owner_transfer_lists__audience_id__owner_preview_get", input)`)
|
|
1188
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
1189
|
+
- API-key scope: `lists:read`
|
|
1190
|
+
|
|
1191
|
+
What a transfer WOULD do, before doing it. Changes nothing.
|
|
1192
|
+
|
|
1193
|
+
Worth calling first: `list_and_records` re-owns every record in the list,
|
|
1194
|
+
which can change who else can see them, and this says how many before you
|
|
1195
|
+
commit.
|
|
1196
|
+
|
|
1197
|
+
**Input**
|
|
1198
|
+
|
|
1199
|
+
| Field | Type | Required | Description |
|
|
1200
|
+
|---|---|---|---|
|
|
1201
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1202
|
+
| `query.new_owner_user_id` | `string` | yes | Candidate owner's PropelAuth user id. |
|
|
1203
|
+
|
|
1204
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1205
|
+
|
|
1206
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1207
|
+
|
|
1208
|
+
**Example**
|
|
1209
|
+
|
|
1210
|
+
```ts
|
|
1211
|
+
const result = await g8.api.lists.previewListOwnerTransfer({ path: { audience_id: 123 }, query: { new_owner_user_id: "id" } });
|
|
1212
|
+
```
|
|
1213
|
+
|
|
1214
|
+
---
|
|
1215
|
+
|
|
1216
|
+
<a id="op-reassignlistowner"></a>
|
|
1217
|
+
|
|
1218
|
+
### `g8.api.lists.reassignListOwner(input)`
|
|
1219
|
+
|
|
1220
|
+
**Reassign List Owner**
|
|
1221
|
+
|
|
1222
|
+
- HTTP: `PATCH /api/v1/lists/{audience_id}/owner`
|
|
1223
|
+
- operationId: `reassign_list_owner_lists__audience_id__owner_patch` (also callable as `g8.api.call("reassign_list_owner_lists__audience_id__owner_patch", input)`)
|
|
1224
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1225
|
+
- API-key scope: `lists:write`
|
|
1226
|
+
|
|
1227
|
+
Hand a list to someone else.
|
|
1228
|
+
|
|
1229
|
+
`mode="list_and_records"` ALSO re-owns every record in the list. Under
|
|
1230
|
+
record-level scoping that changes who can see them, so preview it first.
|
|
1231
|
+
|
|
1232
|
+
This route carries no `verify_list_access_dep` in the app - the transfer
|
|
1233
|
+
rules are enforced inside the handler instead, and they are stricter than
|
|
1234
|
+
the per-list read gate rather than weaker.
|
|
1235
|
+
|
|
1236
|
+
**Input**
|
|
1237
|
+
|
|
1238
|
+
| Field | Type | Required | Description |
|
|
1239
|
+
|---|---|---|---|
|
|
1240
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1241
|
+
| `body` | `ReassignListOwnerRequest` | yes | Request body; fields below. |
|
|
1242
|
+
|
|
1243
|
+
Body fields (`ReassignListOwnerRequest`):
|
|
1244
|
+
|
|
1245
|
+
| Field | Type | Required | Description |
|
|
1246
|
+
|---|---|---|---|
|
|
1247
|
+
| `body.owner_email` | `string (email)` | yes | Must agree with the user id - the app verifies both. Typed as an email at the request layer because the app's model is `EmailStr` and is built inside the handler: a malformed address would otherwise raise there and escape as a 500 rather than a 422. |
|
|
1248
|
+
| `body.owner_user_id` | `string` | yes | min length 1, max length 255 |
|
|
1249
|
+
| `body.mode` | `"list_only" \| "list_and_records"` | no | `list_only` moves just the list. `list_and_records` also re-owns every record in it, which can change who else can see them. default `"list_only"` |
|
|
1250
|
+
|
|
1251
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1252
|
+
|
|
1253
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1254
|
+
|
|
1255
|
+
**Example**
|
|
1256
|
+
|
|
1257
|
+
```ts
|
|
1258
|
+
const result = await g8.api.lists.reassignListOwner({
|
|
1259
|
+
path: { audience_id: 123 },
|
|
1260
|
+
body: { owner_email: "jane@acme.com", owner_user_id: "id" },
|
|
1261
|
+
});
|
|
1262
|
+
```
|
|
1263
|
+
|
|
1264
|
+
---
|
|
1265
|
+
|
|
1266
|
+
<a id="op-recordlistopened"></a>
|
|
1267
|
+
|
|
1268
|
+
### `g8.api.lists.recordListOpened(input)`
|
|
1269
|
+
|
|
1270
|
+
**Record List Opened**
|
|
1271
|
+
|
|
1272
|
+
- HTTP: `POST /api/v1/lists/folders/activity/{audience_id}`
|
|
1273
|
+
- operationId: `record_list_opened_lists_folders_activity__audience_id__post` (also callable as `g8.api.call("record_list_opened_lists_folders_activity__audience_id__post", input)`)
|
|
1274
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1275
|
+
- API-key scope: `lists:write`
|
|
1276
|
+
|
|
1277
|
+
Record that this key opened a list, for the "recent" shelf. FREE.
|
|
1278
|
+
|
|
1279
|
+
Recents come back in `GET /lists/folders` as `recent_items`, most recent
|
|
1280
|
+
first. A list the key cannot see is a 404.
|
|
1281
|
+
|
|
1282
|
+
**Input**
|
|
1283
|
+
|
|
1284
|
+
| Field | Type | Required | Description |
|
|
1285
|
+
|---|---|---|---|
|
|
1286
|
+
| `path.audience_id` | `integer` | yes | The list (audience) id. |
|
|
1287
|
+
|
|
1288
|
+
**Returns**: no JSON body is declared for the success response.
|
|
1289
|
+
|
|
1290
|
+
**Example**
|
|
1291
|
+
|
|
1292
|
+
```ts
|
|
1293
|
+
const result = await g8.api.lists.recordListOpened({ path: { audience_id: 123 } });
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
---
|
|
1297
|
+
|
|
1298
|
+
<a id="op-refreshdynamiclist"></a>
|
|
1299
|
+
|
|
1300
|
+
### `g8.api.lists.refreshDynamicList(input)`
|
|
1301
|
+
|
|
1302
|
+
**Refresh Dynamic List**
|
|
1303
|
+
|
|
1304
|
+
- HTTP: `POST /api/v1/lists/{audience_id}/refresh`
|
|
1305
|
+
- operationId: `refresh_dynamic_list_lists__audience_id__refresh_post` (also callable as `g8.api.call("refresh_dynamic_list_lists__audience_id__refresh_post", input)`)
|
|
1306
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1307
|
+
- API-key scope: `lists:write`
|
|
1308
|
+
|
|
1309
|
+
Re-run a dynamic list's query now.
|
|
1310
|
+
|
|
1311
|
+
Membership can go DOWN as well as up: a record that no longer matches
|
|
1312
|
+
leaves. Only meaningful for a list created with `is_dynamic`.
|
|
1313
|
+
|
|
1314
|
+
**Input**
|
|
1315
|
+
|
|
1316
|
+
| Field | Type | Required | Description |
|
|
1317
|
+
|---|---|---|---|
|
|
1318
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1319
|
+
|
|
1320
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1321
|
+
|
|
1322
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1323
|
+
|
|
1324
|
+
**Example**
|
|
1325
|
+
|
|
1326
|
+
```ts
|
|
1327
|
+
const result = await g8.api.lists.refreshDynamicList({ path: { audience_id: 123 } });
|
|
1328
|
+
```
|
|
1329
|
+
|
|
1330
|
+
---
|
|
1331
|
+
|
|
1332
|
+
<a id="op-refreshmasterlistnow"></a>
|
|
1333
|
+
|
|
1334
|
+
### `g8.api.lists.refreshMasterListNow(input)`
|
|
1335
|
+
|
|
1336
|
+
**Refresh Master List Now**
|
|
1337
|
+
|
|
1338
|
+
- HTTP: `POST /api/v1/lists/{audience_id}/master-refresh`
|
|
1339
|
+
- operationId: `refresh_master_list_now_lists__audience_id__master_refresh_post` (also callable as `g8.api.call("refresh_master_list_now_lists__audience_id__master_refresh_post", input)`)
|
|
1340
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1341
|
+
- API-key scope: `lists:write`
|
|
1342
|
+
|
|
1343
|
+
Re-sync a master list from its sources now. Returns add/remove counts.
|
|
1344
|
+
|
|
1345
|
+
**Input**
|
|
1346
|
+
|
|
1347
|
+
| Field | Type | Required | Description |
|
|
1348
|
+
|---|---|---|---|
|
|
1349
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1350
|
+
|
|
1351
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1352
|
+
|
|
1353
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1354
|
+
|
|
1355
|
+
**Example**
|
|
1356
|
+
|
|
1357
|
+
```ts
|
|
1358
|
+
const result = await g8.api.lists.refreshMasterListNow({ path: { audience_id: 123 } });
|
|
1359
|
+
```
|
|
1360
|
+
|
|
1361
|
+
---
|
|
1362
|
+
|
|
1363
|
+
<a id="op-removecontactsfromlist"></a>
|
|
1364
|
+
|
|
1365
|
+
### `g8.api.lists.removeContactsFromList(input)`
|
|
1366
|
+
|
|
1367
|
+
**Remove Contacts From List**
|
|
1368
|
+
|
|
1369
|
+
- HTTP: `DELETE /api/v1/lists/{list_id}/contacts`
|
|
1370
|
+
- operationId: `remove_contacts_from_list_lists__list_id__contacts_delete` (also callable as `g8.api.call("remove_contacts_from_list_lists__list_id__contacts_delete", input)`)
|
|
1371
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
1372
|
+
- API-key scope: `lists:delete`
|
|
1373
|
+
- ★ Hand-written: [`g8.lists.removeContacts()`](../sdk-clients.md#g8-lists-removecontacts)
|
|
1374
|
+
|
|
1375
|
+
Remove contacts from a list.
|
|
1376
|
+
|
|
1377
|
+
**Input**
|
|
1378
|
+
|
|
1379
|
+
| Field | Type | Required | Description |
|
|
1380
|
+
|---|---|---|---|
|
|
1381
|
+
| `path.list_id` | `integer` | yes | List ID |
|
|
1382
|
+
| `body` | `RemoveContactsFromListRequest` | yes | Request body; fields below. |
|
|
1383
|
+
|
|
1384
|
+
Body fields (`RemoveContactsFromListRequest`):
|
|
1385
|
+
|
|
1386
|
+
| Field | Type | Required | Description |
|
|
1387
|
+
|---|---|---|---|
|
|
1388
|
+
| `body.contact_ids` | `Array<integer>` | yes | List of contact IDs to remove |
|
|
1389
|
+
|
|
1390
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1391
|
+
|
|
1392
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1393
|
+
|
|
1394
|
+
**Example**
|
|
1395
|
+
|
|
1396
|
+
```ts
|
|
1397
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
1398
|
+
const result = await g8.api.lists.removeContactsFromList({ path: { list_id: 123 }, body: { contact_ids: [123] } });
|
|
1399
|
+
```
|
|
1400
|
+
|
|
1401
|
+
---
|
|
1402
|
+
|
|
1403
|
+
<a id="op-starlist"></a>
|
|
1404
|
+
|
|
1405
|
+
### `g8.api.lists.starList(input)`
|
|
1406
|
+
|
|
1407
|
+
**Star List**
|
|
1408
|
+
|
|
1409
|
+
- HTTP: `PUT /api/v1/lists/folders/stars/{audience_id}`
|
|
1410
|
+
- operationId: `star_list_lists_folders_stars__audience_id__put` (also callable as `g8.api.call("star_list_lists_folders_stars__audience_id__put", input)`)
|
|
1411
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1412
|
+
- API-key scope: `lists:write`
|
|
1413
|
+
|
|
1414
|
+
Star or unstar a list for this key. FREE.
|
|
1415
|
+
|
|
1416
|
+
Starred ids come back in `GET /lists/folders` as `starred_ids`. A list the
|
|
1417
|
+
key cannot see is a 404.
|
|
1418
|
+
|
|
1419
|
+
**Input**
|
|
1420
|
+
|
|
1421
|
+
| Field | Type | Required | Description |
|
|
1422
|
+
|---|---|---|---|
|
|
1423
|
+
| `path.audience_id` | `integer` | yes | The list (audience) id. |
|
|
1424
|
+
| `body` | `ListStarRequest` | yes | Request body; fields below. |
|
|
1425
|
+
|
|
1426
|
+
Body fields (`ListStarRequest`):
|
|
1427
|
+
|
|
1428
|
+
| Field | Type | Required | Description |
|
|
1429
|
+
|---|---|---|---|
|
|
1430
|
+
| `body.starred` | `boolean` | yes | True to star, false to unstar. |
|
|
1431
|
+
|
|
1432
|
+
**Returns**: no JSON body is declared for the success response.
|
|
1433
|
+
|
|
1434
|
+
**Example**
|
|
1435
|
+
|
|
1436
|
+
```ts
|
|
1437
|
+
const result = await g8.api.lists.starList({ path: { audience_id: 123 }, body: { starred: true } });
|
|
1438
|
+
```
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1442
|
+
<a id="op-updatelist"></a>
|
|
1443
|
+
|
|
1444
|
+
### `g8.api.lists.updateList(input)`
|
|
1445
|
+
|
|
1446
|
+
**Update List**
|
|
1447
|
+
|
|
1448
|
+
- HTTP: `PATCH /api/v1/lists/{list_id}`
|
|
1449
|
+
- operationId: `update_list_lists__list_id__patch` (also callable as `g8.api.call("update_list_lists__list_id__patch", input)`)
|
|
1450
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1451
|
+
- API-key scope: `lists:write`
|
|
1452
|
+
|
|
1453
|
+
Update a list's name and/or its agent-readable description (#16641).
|
|
1454
|
+
|
|
1455
|
+
**Input**
|
|
1456
|
+
|
|
1457
|
+
| Field | Type | Required | Description |
|
|
1458
|
+
|---|---|---|---|
|
|
1459
|
+
| `path.list_id` | `integer` | yes | List ID |
|
|
1460
|
+
| `body` | `ListUpdateRequest` | yes | Request body; fields below. |
|
|
1461
|
+
|
|
1462
|
+
Body fields (`ListUpdateRequest`):
|
|
1463
|
+
|
|
1464
|
+
| Field | Type | Required | Description |
|
|
1465
|
+
|---|---|---|---|
|
|
1466
|
+
| `body.title` | `string` | yes | New name for the list min length 1 |
|
|
1467
|
+
| `body.description` | `string \| null` | no | New purpose note for the list (#16641). Omit to leave the current description unchanged; send an empty string to clear it. max length 2000 |
|
|
1468
|
+
|
|
1469
|
+
**Returns** `ApiResponse_ListResponse_`: the envelope `{ data: ListResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1470
|
+
|
|
1471
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1472
|
+
|
|
1473
|
+
`ListResponse` fields:
|
|
1474
|
+
|
|
1475
|
+
| Field | Type | Required | Description |
|
|
1476
|
+
|---|---|---|---|
|
|
1477
|
+
| `id` | `integer` | yes | |
|
|
1478
|
+
| `title` | `string` | yes | |
|
|
1479
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
1480
|
+
| `created_by` | `string \| null` | no | |
|
|
1481
|
+
| `description` | `string \| null` | no | Agent/human-readable note describing the list's purpose (#16641) |
|
|
1482
|
+
| `is_dynamic` | `boolean` | no | default `false` |
|
|
1483
|
+
| `source` | `string \| null` | no | Source of the list |
|
|
1484
|
+
| `status` | `string \| null` | no | |
|
|
1485
|
+
| `tags` | `Array<string>` | no | |
|
|
1486
|
+
| `total` | `integer` | no | default `0` |
|
|
1487
|
+
| `type` | `string \| null` | no | List type (contacts, companies, suppressions, deals, leads) |
|
|
1488
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
1489
|
+
|
|
1490
|
+
**Example**
|
|
1491
|
+
|
|
1492
|
+
```ts
|
|
1493
|
+
const result = await g8.api.lists.updateList({ path: { list_id: 123 }, body: { title: "Example" } });
|
|
1494
|
+
```
|
|
1495
|
+
|
|
1496
|
+
---
|
|
1497
|
+
|
|
1498
|
+
<a id="op-updatelistfolder"></a>
|
|
1499
|
+
|
|
1500
|
+
### `g8.api.lists.updateListFolder(input)`
|
|
1501
|
+
|
|
1502
|
+
**Update List Folder**
|
|
1503
|
+
|
|
1504
|
+
- HTTP: `PATCH /api/v1/lists/folders/{folder_id}`
|
|
1505
|
+
- operationId: `update_list_folder_lists_folders__folder_id__patch` (also callable as `g8.api.call("update_list_folder_lists_folders__folder_id__patch", input)`)
|
|
1506
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1507
|
+
- API-key scope: `lists:write`
|
|
1508
|
+
|
|
1509
|
+
Rename a folder or change its visibility. Omitted fields are untouched.
|
|
1510
|
+
|
|
1511
|
+
**Input**
|
|
1512
|
+
|
|
1513
|
+
| Field | Type | Required | Description |
|
|
1514
|
+
|---|---|---|---|
|
|
1515
|
+
| `path.folder_id` | `string (uuid)` | yes | Folder id. |
|
|
1516
|
+
| `body` | `ListFolderUpdateRequest` | yes | Request body; fields below. |
|
|
1517
|
+
|
|
1518
|
+
Body fields (`ListFolderUpdateRequest`):
|
|
1519
|
+
|
|
1520
|
+
| Field | Type | Required | Description |
|
|
1521
|
+
|---|---|---|---|
|
|
1522
|
+
| `body.title` | `string \| null` | no | min length 1, max length 120 |
|
|
1523
|
+
| `body.visibility` | `"private" \| "org" \| null` | no | |
|
|
1524
|
+
|
|
1525
|
+
**Returns** `ApiResponse_ListFolderResponse_`: the envelope `{ data: ListFolderResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1526
|
+
|
|
1527
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1528
|
+
|
|
1529
|
+
`ListFolderResponse` fields:
|
|
1530
|
+
|
|
1531
|
+
| Field | Type | Required | Description |
|
|
1532
|
+
|---|---|---|---|
|
|
1533
|
+
| `created_by` | `string` | yes | User id that created the folder. |
|
|
1534
|
+
| `id` | `string (uuid)` | yes | Folder id. |
|
|
1535
|
+
| `is_owner` | `boolean` | yes | True when the calling key's org owns the folder. |
|
|
1536
|
+
| `list_count` | `integer` | yes | Number of lists currently filed in this folder. |
|
|
1537
|
+
| `title` | `string` | yes | Display title. |
|
|
1538
|
+
| `visibility` | `string` | yes | `private` (owner only) or `org` (browse-only for teammates). |
|
|
1539
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
1540
|
+
| `updated_at` | `string (date-time) \| null` | no | |
|
|
1541
|
+
|
|
1542
|
+
**Example**
|
|
1543
|
+
|
|
1544
|
+
```ts
|
|
1545
|
+
const result = await g8.api.lists.updateListFolder({
|
|
1546
|
+
path: { folder_id: "00000000-0000-0000-0000-000000000000" },
|
|
1547
|
+
body: {},
|
|
1548
|
+
});
|
|
1549
|
+
```
|
|
1550
|
+
|
|
1551
|
+
---
|
|
1552
|
+
|
|
1553
|
+
<a id="op-updatemasterlistconfig"></a>
|
|
1554
|
+
|
|
1555
|
+
### `g8.api.lists.updateMasterListConfig(input)`
|
|
1556
|
+
|
|
1557
|
+
**Update Master List Config**
|
|
1558
|
+
|
|
1559
|
+
- HTTP: `PATCH /api/v1/lists/{audience_id}/master-config`
|
|
1560
|
+
- operationId: `update_master_list_config_lists__audience_id__master_config_patch` (also callable as `g8.api.call("update_master_list_config_lists__audience_id__master_config_patch", input)`)
|
|
1561
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1562
|
+
- API-key scope: `lists:write`
|
|
1563
|
+
|
|
1564
|
+
Replace a master list's sources.
|
|
1565
|
+
|
|
1566
|
+
A REPLACE, not a merge: a source you omit stops feeding the list. The
|
|
1567
|
+
config is saved synchronously and the re-sync runs afterwards, so a 200
|
|
1568
|
+
means the config is stored, not that membership has caught up.
|
|
1569
|
+
|
|
1570
|
+
**Input**
|
|
1571
|
+
|
|
1572
|
+
| Field | Type | Required | Description |
|
|
1573
|
+
|---|---|---|---|
|
|
1574
|
+
| `path.audience_id` | `integer` | yes | List (audience) id. |
|
|
1575
|
+
| `body` | `UpdateMasterListConfigRequest` | yes | Request body; fields below. |
|
|
1576
|
+
|
|
1577
|
+
Body fields (`UpdateMasterListConfigRequest`):
|
|
1578
|
+
|
|
1579
|
+
| Field | Type | Required | Description |
|
|
1580
|
+
|---|---|---|---|
|
|
1581
|
+
| `body.include_all_sources` | `boolean` | no | default `false` |
|
|
1582
|
+
| `body.source_list_ids` | `Array<integer>` | no | |
|
|
1583
|
+
|
|
1584
|
+
**Returns** `ApiResponse_ListPayload_`: the envelope `{ data: ListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1585
|
+
|
|
1586
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1587
|
+
|
|
1588
|
+
**Example**
|
|
1589
|
+
|
|
1590
|
+
```ts
|
|
1591
|
+
const result = await g8.api.lists.updateMasterListConfig({ path: { audience_id: 123 }, body: {} });
|
|
1592
|
+
```
|
|
1593
|
+
|
|
1594
|
+
---
|
|
1595
|
+
|
|
1596
|
+
## Referenced types
|
|
1597
|
+
|
|
1598
|
+
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
1599
|
+
|
|
1600
|
+
<a id="type-listperformanceitem"></a>
|
|
1601
|
+
|
|
1602
|
+
### `ListPerformanceItem`
|
|
1603
|
+
|
|
1604
|
+
Per-list engagement counters. Fields mirror the app's own item.
|
|
1605
|
+
|
|
1606
|
+
| Field | Type | Required | Description |
|
|
1607
|
+
|---|---|---|---|
|
|
1608
|
+
| `list_id` | `integer \| null` | no | |
|
|
1609
|
+
| `title` | `string \| null` | no | |
|