@graph8/sdk 0.251.0 → 0.262.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +105 -7
- package/dist/index.d.ts +105 -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 +103 -7
- package/dist/react.d.ts +103 -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 +1697 -0
- package/docs/api/deals.md +2436 -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,1075 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.visitors`: Visitors
|
|
4
|
+
|
|
5
|
+
26 operations (20 read, 5 write, 1 destructive).
|
|
6
|
+
|
|
7
|
+
No hand-written client covers this area. Call it through `g8.api.visitors.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
|
|
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: [visitors.d.ts](visitors.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`buildTrackedLink`](#op-buildtrackedlink) | `POST /api/v1/visitors/links/build` | write | `visitors:write` | Build Tracked Link |
|
|
26
|
+
| [`checkTrackingInstallation`](#op-checktrackinginstallation) | `GET /api/v1/visitors/installation-check` | read | `visitors:read` | Check Tracking Installation |
|
|
27
|
+
| [`createTailorQueryParamSet`](#op-createtailorqueryparamset) | `POST /api/v1/visitors/tailor/query-param-sets` | write | `visitors:write` | Create Tailor Query Param Set |
|
|
28
|
+
| [`deleteTailorQueryParamSet`](#op-deletetailorqueryparamset) | `DELETE /api/v1/visitors/tailor/query-param-sets/{set_id}` | destructive | `visitors:write` | Delete Tailor Query Param Set |
|
|
29
|
+
| [`getAggregatedLiveVisitors`](#op-getaggregatedlivevisitors) | `GET /api/v1/visitors/live/aggregated` | read | `visitors:read` | Get Aggregated Live Visitors |
|
|
30
|
+
| [`getCampaignListSync`](#op-getcampaignlistsync) | `GET /api/v1/visitors/campaigns/list-syncs/{job_id}` | read | `visitors:read` | Get Campaign List Sync |
|
|
31
|
+
| [`getContactVisitorEvents`](#op-getcontactvisitorevents) | `GET /api/v1/visitors/contacts/{contact_id}/events` | read | `visitors:read` | Get Contact Visitor Events |
|
|
32
|
+
| [`getFormCaptureSettings`](#op-getformcapturesettings) | `GET /api/v1/visitors/form-capture-settings` | read | `visitors:read` | Get Form Capture Settings |
|
|
33
|
+
| [`getLiveVisitors`](#op-getlivevisitors) | `GET /api/v1/visitors/live` | read | `visitors:read` | Get Live Visitors |
|
|
34
|
+
| [`getTrackingClientInfo`](#op-gettrackingclientinfo) | `GET /api/v1/visitors/client-info` | read | `visitors:read` | Get Tracking Client Info |
|
|
35
|
+
| [`getVisitorContactMetrics`](#op-getvisitorcontactmetrics) | `GET /api/v1/visitors/contacts-metrics` | read | `visitors:read` | Get Visitor Contact Metrics |
|
|
36
|
+
| [`getVisitorStatistics`](#op-getvisitorstatistics) | `POST /api/v1/visitors/{resource}/statistics` | write | `visitors:write` | Get Visitor Statistics |
|
|
37
|
+
| [`getVisitorWorkspace`](#op-getvisitorworkspace) | `GET /api/v1/visitors/streams` | read | `visitors:read` | Get Visitor Workspace |
|
|
38
|
+
| [`listAdVisitorEvents`](#op-listadvisitorevents) | `GET /api/v1/visitors/ads/events` | read | `visitors:read` | List Ad Visitor Events |
|
|
39
|
+
| [`listB2bcContactVisitorEvents`](#op-listb2bccontactvisitorevents) | `GET /api/v1/visitors/contacts/b2bc/events` | read | `visitors:read` | List B2Bc Contact Visitor Events |
|
|
40
|
+
| [`listCampaignVisitorEvents`](#op-listcampaignvisitorevents) | `GET /api/v1/visitors/campaigns/events` | read | `visitors:read` | List Campaign Visitor Events |
|
|
41
|
+
| [`listCompanyVisitorEvents`](#op-listcompanyvisitorevents) | `GET /api/v1/visitors/companies/events` | read | `visitors:read` | List Company Visitor Events |
|
|
42
|
+
| [`listContactVisitorEvents`](#op-listcontactvisitorevents) | `GET /api/v1/visitors/contacts/events` | read | `visitors:read` | List Contact Visitor Events |
|
|
43
|
+
| [`listLinkVisitorEvents`](#op-listlinkvisitorevents) | `GET /api/v1/visitors/links/events` | read | `visitors:read` | List Link Visitor Events |
|
|
44
|
+
| [`listTailorQueryParamSets`](#op-listtailorqueryparamsets) | `GET /api/v1/visitors/tailor/query-param-sets` | read | `visitors:read` | List Tailor Query Param Sets |
|
|
45
|
+
| [`listVisitorDistinctBrowsers`](#op-listvisitordistinctbrowsers) | `GET /api/v1/visitors/{resource}/distinct-browsers` | read | `visitors:read` | List Visitor Distinct Browsers |
|
|
46
|
+
| [`listVisitorDistinctUtms`](#op-listvisitordistinctutms) | `GET /api/v1/visitors/{resource}/distinct-utms` | read | `visitors:read` | List Visitor Distinct Utms |
|
|
47
|
+
| [`listVisitorPageHosts`](#op-listvisitorpagehosts) | `GET /api/v1/visitors/page-hosts` | read | `visitors:read` | List Visitor Page Hosts |
|
|
48
|
+
| [`listVisitorStreams`](#op-listvisitorstreams) | `GET /api/v1/visitors/streams/list` | read | `visitors:read` | List Visitor Streams |
|
|
49
|
+
| [`startCampaignListSync`](#op-startcampaignlistsync) | `POST /api/v1/visitors/campaigns/list-syncs` | write | `visitors:write` | Start Campaign List Sync |
|
|
50
|
+
| [`updateFormCaptureSettings`](#op-updateformcapturesettings) | `PATCH /api/v1/visitors/form-capture-settings` | write | `visitors:write` | Update Form Capture Settings |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
<a id="op-buildtrackedlink"></a>
|
|
55
|
+
|
|
56
|
+
### `g8.api.visitors.buildTrackedLink(input)`
|
|
57
|
+
|
|
58
|
+
**Build Tracked Link**
|
|
59
|
+
|
|
60
|
+
- HTTP: `POST /api/v1/visitors/links/build`
|
|
61
|
+
- operationId: `build_tracked_link_visitors_links_build_post` (also callable as `g8.api.call("build_tracked_link_visitors_links_build_post", input)`)
|
|
62
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
63
|
+
- API-key scope: `visitors:write`
|
|
64
|
+
|
|
65
|
+
Mint a tracked short link for a destination URL.
|
|
66
|
+
|
|
67
|
+
Gated on `signals:run`, NOT `signals:read` - this mints a durable public
|
|
68
|
+
URL that attributes real traffic, which is why the app puts it behind the
|
|
69
|
+
run grant rather than the read one.
|
|
70
|
+
|
|
71
|
+
**Input**
|
|
72
|
+
|
|
73
|
+
| Field | Type | Required | Description |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| `body` | `TrackedLinkRequest` | yes | Request body; fields below. |
|
|
76
|
+
|
|
77
|
+
Body fields (`TrackedLinkRequest`):
|
|
78
|
+
|
|
79
|
+
| Field | Type | Required | Description |
|
|
80
|
+
|---|---|---|---|
|
|
81
|
+
| `body.destination_url` | `string` | yes | Absolute http(s) URL the link points at. |
|
|
82
|
+
| `body.link_name` | `string` | yes | Display name. REQUIRED, and not cosmetic: clicks are GROUPED by it, so two links sharing a name report as one. min length 1, max length 120 |
|
|
83
|
+
| `body.contact_id` | `integer \| null` | no | Attribute every click on this link to one contact. |
|
|
84
|
+
| `body.params` | `Record<string, string>` | no | Static custom params baked into the token. |
|
|
85
|
+
| `body.placement` | `string` | no | Where the token goes when NOT shortened: `fragment` (`#t=...`) or `query` (`?g8t=...`). Ignored when `shorten` is true. default `"fragment"`, pattern `^(fragment\|query)$` |
|
|
86
|
+
| `body.shorten` | `boolean` | no | Mint the LinkedIn-safe short form (`{base}/t/{token}`) for surfaces that strip fragments and query params. default `false` |
|
|
87
|
+
| `body.stream_id` | `string \| null` | no | PUBLIC KEY id of the stream clicks are attributed to - the id shape `GET /visitors/streams/list` emits, NOT the stream object's own id. Falls back to the org's dedicated `tracked-links` stream when unset or unresolvable, and is only meaningful with `shorten=true`. max length 64 |
|
|
88
|
+
|
|
89
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
90
|
+
|
|
91
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
92
|
+
|
|
93
|
+
**Example**
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
const result = await g8.api.visitors.buildTrackedLink({
|
|
97
|
+
body: { destination_url: "https://example.com", link_name: "Example" },
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<a id="op-checktrackinginstallation"></a>
|
|
104
|
+
|
|
105
|
+
### `g8.api.visitors.checkTrackingInstallation(input?)`
|
|
106
|
+
|
|
107
|
+
**Check Tracking Installation**
|
|
108
|
+
|
|
109
|
+
- HTTP: `GET /api/v1/visitors/installation-check`
|
|
110
|
+
- operationId: `check_tracking_installation_visitors_installation_check_get` (also callable as `g8.api.call("check_tracking_installation_visitors_installation_check_get", input)`)
|
|
111
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
112
|
+
- API-key scope: `visitors:read`
|
|
113
|
+
|
|
114
|
+
Is the tracking snippet installed? Answered by whether events are ARRIVING.
|
|
115
|
+
|
|
116
|
+
At least one of `write_key` or `host` is required (422 otherwise). Both are
|
|
117
|
+
filters inside the key's own org - they cannot reach another tenant's
|
|
118
|
+
events.
|
|
119
|
+
|
|
120
|
+
**Input**
|
|
121
|
+
|
|
122
|
+
| Field | Type | Required | Description |
|
|
123
|
+
|---|---|---|---|
|
|
124
|
+
| `query.write_key` | `string \| null` | no | A stream's browser write key (`id:secret`); matched by key id. |
|
|
125
|
+
| `query.host` | `string \| null` | no | Website hostname to scope the check to, e.g. example.com. |
|
|
126
|
+
| `query.since_minutes` | `integer` | no | Look-back window in minutes (default 30 days). default `43200` |
|
|
127
|
+
|
|
128
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
129
|
+
|
|
130
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
131
|
+
|
|
132
|
+
**Example**
|
|
133
|
+
|
|
134
|
+
```ts
|
|
135
|
+
const result = await g8.api.visitors.checkTrackingInstallation();
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
<a id="op-createtailorqueryparamset"></a>
|
|
141
|
+
|
|
142
|
+
### `g8.api.visitors.createTailorQueryParamSet(input)`
|
|
143
|
+
|
|
144
|
+
**Create Tailor Query Param Set**
|
|
145
|
+
|
|
146
|
+
- HTTP: `POST /api/v1/visitors/tailor/query-param-sets`
|
|
147
|
+
- operationId: `create_tailor_query_param_set_visitors_tailor_query_param_sets_post` (also callable as `g8.api.call("create_tailor_query_param_set_visitors_tailor_query_param_sets_post", input)`)
|
|
148
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
149
|
+
- API-key scope: `visitors:write`
|
|
150
|
+
|
|
151
|
+
Save a query-param set. At most ten per org; the eleventh is a 422.
|
|
152
|
+
|
|
153
|
+
**Input**
|
|
154
|
+
|
|
155
|
+
| Field | Type | Required | Description |
|
|
156
|
+
|---|---|---|---|
|
|
157
|
+
| `body` | `TailorQueryParamSetRequest` | yes | Request body; fields below. |
|
|
158
|
+
|
|
159
|
+
Body fields (`TailorQueryParamSetRequest`):
|
|
160
|
+
|
|
161
|
+
| Field | Type | Required | Description |
|
|
162
|
+
|---|---|---|---|
|
|
163
|
+
| `body.name` | `string` | yes | min length 3, max length 255 |
|
|
164
|
+
| `body.settings` | `Record<string, unknown>` | no | The saved parameter selection. |
|
|
165
|
+
|
|
166
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
167
|
+
|
|
168
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
169
|
+
|
|
170
|
+
**Example**
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
const result = await g8.api.visitors.createTailorQueryParamSet({ body: { name: "Example" } });
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
<a id="op-deletetailorqueryparamset"></a>
|
|
179
|
+
|
|
180
|
+
### `g8.api.visitors.deleteTailorQueryParamSet(input)`
|
|
181
|
+
|
|
182
|
+
**Delete Tailor Query Param Set**
|
|
183
|
+
|
|
184
|
+
- HTTP: `DELETE /api/v1/visitors/tailor/query-param-sets/{set_id}`
|
|
185
|
+
- operationId: `delete_tailor_query_param_set_visitors_tailor_query_param_sets__set_id__delete` (also callable as `g8.api.call("delete_tailor_query_param_set_visitors_tailor_query_param_sets__set_id__delete", input)`)
|
|
186
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
187
|
+
- API-key scope: `visitors:write`
|
|
188
|
+
|
|
189
|
+
Delete one saved set. Another org's id is a 404.
|
|
190
|
+
|
|
191
|
+
**Input**
|
|
192
|
+
|
|
193
|
+
| Field | Type | Required | Description |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| `path.set_id` | `string` | yes | The set's id (a UUID). |
|
|
196
|
+
|
|
197
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
198
|
+
|
|
199
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
200
|
+
|
|
201
|
+
**Example**
|
|
202
|
+
|
|
203
|
+
```ts
|
|
204
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
205
|
+
const result = await g8.api.visitors.deleteTailorQueryParamSet({ path: { set_id: "id" } });
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
<a id="op-getaggregatedlivevisitors"></a>
|
|
211
|
+
|
|
212
|
+
### `g8.api.visitors.getAggregatedLiveVisitors(input?)`
|
|
213
|
+
|
|
214
|
+
**Get Aggregated Live Visitors**
|
|
215
|
+
|
|
216
|
+
- HTTP: `GET /api/v1/visitors/live/aggregated`
|
|
217
|
+
- operationId: `get_aggregated_live_visitors_visitors_live_aggregated_get` (also callable as `g8.api.call("get_aggregated_live_visitors_visitors_live_aggregated_get", input)`)
|
|
218
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
219
|
+
- API-key scope: `visitors:read`
|
|
220
|
+
|
|
221
|
+
Live sessions rolled up per visitor. Same PII rule as `/live`.
|
|
222
|
+
|
|
223
|
+
**Input**
|
|
224
|
+
|
|
225
|
+
| Field | Type | Required | Description |
|
|
226
|
+
|---|---|---|---|
|
|
227
|
+
| `query.time_window` | `"5min" \| "30min" \| "1hr"` | no | Live window. default `"30min"` |
|
|
228
|
+
| `query.stream_id` | `string \| null` | no | Comma-separated public keys, or "all". Omit for every stream. |
|
|
229
|
+
| `query.limit` | `integer` | no | default `1000` |
|
|
230
|
+
|
|
231
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
232
|
+
|
|
233
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
234
|
+
|
|
235
|
+
**Example**
|
|
236
|
+
|
|
237
|
+
```ts
|
|
238
|
+
const result = await g8.api.visitors.getAggregatedLiveVisitors();
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
<a id="op-getcampaignlistsync"></a>
|
|
244
|
+
|
|
245
|
+
### `g8.api.visitors.getCampaignListSync(input)`
|
|
246
|
+
|
|
247
|
+
**Get Campaign List Sync**
|
|
248
|
+
|
|
249
|
+
- HTTP: `GET /api/v1/visitors/campaigns/list-syncs/{job_id}`
|
|
250
|
+
- operationId: `get_campaign_list_sync_visitors_campaigns_list_syncs__job_id__get` (also callable as `g8.api.call("get_campaign_list_sync_visitors_campaigns_list_syncs__job_id__get", input)`)
|
|
251
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
252
|
+
- API-key scope: `visitors:read`
|
|
253
|
+
|
|
254
|
+
How a campaign list sync is going: its state and, once done, how many lists it updated.
|
|
255
|
+
|
|
256
|
+
**Input**
|
|
257
|
+
|
|
258
|
+
| Field | Type | Required | Description |
|
|
259
|
+
|---|---|---|---|
|
|
260
|
+
| `path.job_id` | `string (uuid)` | yes | `job_id` from the sync that started it. |
|
|
261
|
+
|
|
262
|
+
**Returns** `ApiResponse_VisitorListSyncJob_`: the envelope `{ data: VisitorListSyncJob, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
263
|
+
|
|
264
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
265
|
+
|
|
266
|
+
`VisitorListSyncJob` fields:
|
|
267
|
+
|
|
268
|
+
| Field | Type | Required | Description |
|
|
269
|
+
|---|---|---|---|
|
|
270
|
+
| `job_id` | `string \| null` | no | |
|
|
271
|
+
| `status` | `string \| null` | no | |
|
|
272
|
+
|
|
273
|
+
**Example**
|
|
274
|
+
|
|
275
|
+
```ts
|
|
276
|
+
const result = await g8.api.visitors.getCampaignListSync({ path: { job_id: "00000000-0000-0000-0000-000000000000" } });
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
<a id="op-getcontactvisitorevents"></a>
|
|
282
|
+
|
|
283
|
+
### `g8.api.visitors.getContactVisitorEvents(input)`
|
|
284
|
+
|
|
285
|
+
**Get Contact Visitor Events**
|
|
286
|
+
|
|
287
|
+
- HTTP: `GET /api/v1/visitors/contacts/{contact_id}/events`
|
|
288
|
+
- operationId: `get_contact_visitor_events_visitors_contacts__contact_id__events_get` (also callable as `g8.api.call("get_contact_visitor_events_visitors_contacts__contact_id__events_get", input)`)
|
|
289
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
290
|
+
- API-key scope: `visitors:read`
|
|
291
|
+
|
|
292
|
+
Every page ONE identified contact viewed on the website, newest first.
|
|
293
|
+
|
|
294
|
+
`GET /visitors/contacts/events` is the org-wide feed; this is one person's
|
|
295
|
+
history and carries the per-record access check. A contact outside the
|
|
296
|
+
key's scope is a 404, so this cannot be used to probe which ids exist.
|
|
297
|
+
|
|
298
|
+
**Input**
|
|
299
|
+
|
|
300
|
+
| Field | Type | Required | Description |
|
|
301
|
+
|---|---|---|---|
|
|
302
|
+
| `path.contact_id` | `integer` | yes | Contact id. |
|
|
303
|
+
|
|
304
|
+
**Returns** `ApiResponse_VisitorContactEvents_`: the envelope `{ data: VisitorContactEvents, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
305
|
+
|
|
306
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
307
|
+
|
|
308
|
+
`VisitorContactEvents` fields:
|
|
309
|
+
|
|
310
|
+
| Field | Type | Required | Description |
|
|
311
|
+
|---|---|---|---|
|
|
312
|
+
| `events` | `Array<VisitorContactEvent>` | no | |
|
|
313
|
+
|
|
314
|
+
**Example**
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
const result = await g8.api.visitors.getContactVisitorEvents({ path: { contact_id: 123 } });
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
<a id="op-getformcapturesettings"></a>
|
|
323
|
+
|
|
324
|
+
### `g8.api.visitors.getFormCaptureSettings(input?)`
|
|
325
|
+
|
|
326
|
+
**Get Form Capture Settings**
|
|
327
|
+
|
|
328
|
+
- HTTP: `GET /api/v1/visitors/form-capture-settings`
|
|
329
|
+
- operationId: `get_form_capture_settings_visitors_form_capture_settings_get` (also callable as `g8.api.call("get_form_capture_settings_visitors_form_capture_settings_get", input)`)
|
|
330
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
331
|
+
- API-key scope: `visitors:read`
|
|
332
|
+
|
|
333
|
+
Which hosts and paths form submissions are captured from.
|
|
334
|
+
|
|
335
|
+
Defaults (capture everywhere, bookings included) when nothing has been set.
|
|
336
|
+
|
|
337
|
+
**Input**: none.
|
|
338
|
+
|
|
339
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
340
|
+
|
|
341
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
342
|
+
|
|
343
|
+
**Example**
|
|
344
|
+
|
|
345
|
+
```ts
|
|
346
|
+
const result = await g8.api.visitors.getFormCaptureSettings();
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
<a id="op-getlivevisitors"></a>
|
|
352
|
+
|
|
353
|
+
### `g8.api.visitors.getLiveVisitors(input?)`
|
|
354
|
+
|
|
355
|
+
**Get Live Visitors**
|
|
356
|
+
|
|
357
|
+
- HTTP: `GET /api/v1/visitors/live`
|
|
358
|
+
- operationId: `get_live_visitors_visitors_live_get` (also callable as `g8.api.call("get_live_visitors_visitors_live_get", input)`)
|
|
359
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
360
|
+
- API-key scope: `visitors:read`
|
|
361
|
+
|
|
362
|
+
Raw live sessions in the window.
|
|
363
|
+
|
|
364
|
+
Identifying fields are REDACTED unless the key's user holds a Signals
|
|
365
|
+
write capability - the same rule the browser applies, resolved from the
|
|
366
|
+
same principal.
|
|
367
|
+
|
|
368
|
+
**Input**
|
|
369
|
+
|
|
370
|
+
| Field | Type | Required | Description |
|
|
371
|
+
|---|---|---|---|
|
|
372
|
+
| `query.time_window` | `"5min" \| "30min" \| "1hr"` | no | Live window. default `"30min"` |
|
|
373
|
+
| `query.stream_id` | `string \| null` | no | Comma-separated public keys, or "all". Omit for every stream. |
|
|
374
|
+
| `query.limit` | `integer` | no | default `10000` |
|
|
375
|
+
|
|
376
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
377
|
+
|
|
378
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
379
|
+
|
|
380
|
+
**Example**
|
|
381
|
+
|
|
382
|
+
```ts
|
|
383
|
+
const result = await g8.api.visitors.getLiveVisitors();
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
<a id="op-gettrackingclientinfo"></a>
|
|
389
|
+
|
|
390
|
+
### `g8.api.visitors.getTrackingClientInfo(input?)`
|
|
391
|
+
|
|
392
|
+
**Get Tracking Client Info**
|
|
393
|
+
|
|
394
|
+
- HTTP: `GET /api/v1/visitors/client-info`
|
|
395
|
+
- operationId: `get_tracking_client_info_visitors_client_info_get` (also callable as `g8.api.call("get_tracking_client_info_visitors_client_info_get", input)`)
|
|
396
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
397
|
+
- API-key scope: `visitors:read`
|
|
398
|
+
|
|
399
|
+
The browser write key and domains a snippet for this stream should use.
|
|
400
|
+
|
|
401
|
+
The key is the PUBLIC browser key embedded in every page the snippet is on,
|
|
402
|
+
not a secret. An unknown `source_id` falls back to the org default, as the
|
|
403
|
+
app does.
|
|
404
|
+
|
|
405
|
+
**Input**
|
|
406
|
+
|
|
407
|
+
| Field | Type | Required | Description |
|
|
408
|
+
|---|---|---|---|
|
|
409
|
+
| `query.source_id` | `string \| null` | no | A stream id. Omit for the org's default stream. |
|
|
410
|
+
|
|
411
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
412
|
+
|
|
413
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
414
|
+
|
|
415
|
+
**Example**
|
|
416
|
+
|
|
417
|
+
```ts
|
|
418
|
+
const result = await g8.api.visitors.getTrackingClientInfo();
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
<a id="op-getvisitorcontactmetrics"></a>
|
|
424
|
+
|
|
425
|
+
### `g8.api.visitors.getVisitorContactMetrics(input?)`
|
|
426
|
+
|
|
427
|
+
**Get Visitor Contact Metrics**
|
|
428
|
+
|
|
429
|
+
- HTTP: `GET /api/v1/visitors/contacts-metrics`
|
|
430
|
+
- operationId: `get_visitor_contact_metrics_visitors_contacts_metrics_get` (also callable as `g8.api.call("get_visitor_contact_metrics_visitors_contacts_metrics_get", input)`)
|
|
431
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
432
|
+
- API-key scope: `visitors:read`
|
|
433
|
+
|
|
434
|
+
Identified-contact metrics over time.
|
|
435
|
+
|
|
436
|
+
The path is `contacts-metrics`, hyphenated, matching every other path on
|
|
437
|
+
this surface - the app's `contacts_metrics` is the odd one out.
|
|
438
|
+
|
|
439
|
+
**Input**
|
|
440
|
+
|
|
441
|
+
| Field | Type | Required | Description |
|
|
442
|
+
|---|---|---|---|
|
|
443
|
+
| `query.timeframe` | `string` | no | Preset period. default `"last_7_days"` |
|
|
444
|
+
| `query.interval` | `string \| null` | no | day \| week \| month \| quarter. |
|
|
445
|
+
| `query.start_date` | `string \| null` | no | Custom start, YYYY-MM-DD. |
|
|
446
|
+
| `query.end_date` | `string \| null` | no | Custom end, YYYY-MM-DD. |
|
|
447
|
+
|
|
448
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
449
|
+
|
|
450
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
451
|
+
|
|
452
|
+
**Example**
|
|
453
|
+
|
|
454
|
+
```ts
|
|
455
|
+
const result = await g8.api.visitors.getVisitorContactMetrics();
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
<a id="op-getvisitorstatistics"></a>
|
|
461
|
+
|
|
462
|
+
### `g8.api.visitors.getVisitorStatistics(input)`
|
|
463
|
+
|
|
464
|
+
**Get Visitor Statistics**
|
|
465
|
+
|
|
466
|
+
- HTTP: `POST /api/v1/visitors/{resource}/statistics`
|
|
467
|
+
- operationId: `get_visitor_statistics_visitors__resource__statistics_post` (also callable as `g8.api.call("get_visitor_statistics_visitors__resource__statistics_post", input)`)
|
|
468
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
469
|
+
- API-key scope: `visitors:write`
|
|
470
|
+
|
|
471
|
+
Counts over the visitor stream, filtered.
|
|
472
|
+
|
|
473
|
+
`companies` counts UNIQUE BY IP, `contacts` does not - the two series are
|
|
474
|
+
not comparable row for row and should not be charted as if they were.
|
|
475
|
+
|
|
476
|
+
**Input**
|
|
477
|
+
|
|
478
|
+
| Field | Type | Required | Description |
|
|
479
|
+
|---|---|---|---|
|
|
480
|
+
| `path.resource` | `"contacts" \| "companies"` | yes | What to count. |
|
|
481
|
+
| `body` | `Array<Record<string, unknown>>` | no | Request body; fields below. |
|
|
482
|
+
|
|
483
|
+
**Returns** `ApiResponse_VisitorStatisticsResponse_`: the envelope `{ data: VisitorStatisticsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
484
|
+
|
|
485
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
486
|
+
|
|
487
|
+
`VisitorStatisticsResponse` fields:
|
|
488
|
+
|
|
489
|
+
| Field | Type | Required | Description |
|
|
490
|
+
|---|---|---|---|
|
|
491
|
+
| `series` | `Array<Record<string, unknown>>` | no | |
|
|
492
|
+
| `total` | `integer \| null` | no | |
|
|
493
|
+
|
|
494
|
+
**Example**
|
|
495
|
+
|
|
496
|
+
```ts
|
|
497
|
+
const result = await g8.api.visitors.getVisitorStatistics({ path: { resource: "contacts" }, body: [{}] });
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
<a id="op-getvisitorworkspace"></a>
|
|
503
|
+
|
|
504
|
+
### `g8.api.visitors.getVisitorWorkspace(input?)`
|
|
505
|
+
|
|
506
|
+
**Get Visitor Workspace**
|
|
507
|
+
|
|
508
|
+
- HTTP: `GET /api/v1/visitors/streams`
|
|
509
|
+
- operationId: `get_visitor_workspace_visitors_streams_get` (also callable as `g8.api.call("get_visitor_workspace_visitors_streams_get", input)`)
|
|
510
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
511
|
+
- API-key scope: `visitors:read`
|
|
512
|
+
|
|
513
|
+
The tracking workspace: its streams and their public write keys.
|
|
514
|
+
|
|
515
|
+
The write keys are what the browser snippet sends with, so this is the
|
|
516
|
+
endpoint a rebuilt install flow reads to render the snippet.
|
|
517
|
+
|
|
518
|
+
**Input**: none.
|
|
519
|
+
|
|
520
|
+
**Returns** `ApiResponse_VisitorStreamsResponse_`: the envelope `{ data: VisitorStreamsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
521
|
+
|
|
522
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
523
|
+
|
|
524
|
+
`VisitorStreamsResponse` fields:
|
|
525
|
+
|
|
526
|
+
| Field | Type | Required | Description |
|
|
527
|
+
|---|---|---|---|
|
|
528
|
+
| `streams` | `Array<VisitorStream>` | no | |
|
|
529
|
+
| `total` | `integer` | no | default `0` |
|
|
530
|
+
|
|
531
|
+
**Example**
|
|
532
|
+
|
|
533
|
+
```ts
|
|
534
|
+
const result = await g8.api.visitors.getVisitorWorkspace();
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
---
|
|
538
|
+
|
|
539
|
+
<a id="op-listadvisitorevents"></a>
|
|
540
|
+
|
|
541
|
+
### `g8.api.visitors.listAdVisitorEvents(input?)`
|
|
542
|
+
|
|
543
|
+
**List Ad Visitor Events**
|
|
544
|
+
|
|
545
|
+
- HTTP: `GET /api/v1/visitors/ads/events`
|
|
546
|
+
- operationId: `list_ad_visitor_events_visitors_ads_events_get` (also callable as `g8.api.call("list_ad_visitor_events_visitors_ads_events_get", input)`)
|
|
547
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
548
|
+
- API-key scope: `visitors:read`
|
|
549
|
+
|
|
550
|
+
Visits attributed to an ad.
|
|
551
|
+
|
|
552
|
+
**Input**
|
|
553
|
+
|
|
554
|
+
| Field | Type | Required | Description |
|
|
555
|
+
|---|---|---|---|
|
|
556
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
557
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
558
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
559
|
+
|
|
560
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
561
|
+
|
|
562
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
563
|
+
|
|
564
|
+
`VisitorEventPage` fields:
|
|
565
|
+
|
|
566
|
+
| Field | Type | Required | Description |
|
|
567
|
+
|---|---|---|---|
|
|
568
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
569
|
+
| `limit` | `integer \| null` | no | |
|
|
570
|
+
| `page` | `integer \| null` | no | |
|
|
571
|
+
| `total` | `integer` | no | default `0` |
|
|
572
|
+
|
|
573
|
+
**Example**
|
|
574
|
+
|
|
575
|
+
```ts
|
|
576
|
+
const result = await g8.api.visitors.listAdVisitorEvents();
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
<a id="op-listb2bccontactvisitorevents"></a>
|
|
582
|
+
|
|
583
|
+
### `g8.api.visitors.listB2bcContactVisitorEvents(input?)`
|
|
584
|
+
|
|
585
|
+
**List B2Bc Contact Visitor Events**
|
|
586
|
+
|
|
587
|
+
- HTTP: `GET /api/v1/visitors/contacts/b2bc/events`
|
|
588
|
+
- operationId: `list_b2bc_contact_visitor_events_visitors_contacts_b2bc_events_get` (also callable as `g8.api.call("list_b2bc_contact_visitor_events_visitors_contacts_b2bc_events_get", input)`)
|
|
589
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
590
|
+
- API-key scope: `visitors:read`
|
|
591
|
+
|
|
592
|
+
The B2BC variant of the contact feed.
|
|
593
|
+
|
|
594
|
+
**Input**
|
|
595
|
+
|
|
596
|
+
| Field | Type | Required | Description |
|
|
597
|
+
|---|---|---|---|
|
|
598
|
+
| `query.show_mode` | `"grouped" \| "raw"` | no | default `"grouped"` |
|
|
599
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
600
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
601
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
602
|
+
|
|
603
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
604
|
+
|
|
605
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
606
|
+
|
|
607
|
+
`VisitorEventPage` fields:
|
|
608
|
+
|
|
609
|
+
| Field | Type | Required | Description |
|
|
610
|
+
|---|---|---|---|
|
|
611
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
612
|
+
| `limit` | `integer \| null` | no | |
|
|
613
|
+
| `page` | `integer \| null` | no | |
|
|
614
|
+
| `total` | `integer` | no | default `0` |
|
|
615
|
+
|
|
616
|
+
**Example**
|
|
617
|
+
|
|
618
|
+
```ts
|
|
619
|
+
const result = await g8.api.visitors.listB2bcContactVisitorEvents();
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
<a id="op-listcampaignvisitorevents"></a>
|
|
625
|
+
|
|
626
|
+
### `g8.api.visitors.listCampaignVisitorEvents(input?)`
|
|
627
|
+
|
|
628
|
+
**List Campaign Visitor Events**
|
|
629
|
+
|
|
630
|
+
- HTTP: `GET /api/v1/visitors/campaigns/events`
|
|
631
|
+
- operationId: `list_campaign_visitor_events_visitors_campaigns_events_get` (also callable as `g8.api.call("list_campaign_visitor_events_visitors_campaigns_events_get", input)`)
|
|
632
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
633
|
+
- API-key scope: `visitors:read`
|
|
634
|
+
|
|
635
|
+
Visits attributed to a sequence.
|
|
636
|
+
|
|
637
|
+
**Input**
|
|
638
|
+
|
|
639
|
+
| Field | Type | Required | Description |
|
|
640
|
+
|---|---|---|---|
|
|
641
|
+
| `query.campaign` | `string \| null` | no | Sequence id to scope to, or "all"/omitted for none. When set it ALWAYS constrains results to that campaign's sequencer steps: a step filter can only narrow within the campaign, never broaden to others, and a step belonging to a different campaign is rejected. |
|
|
642
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
643
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
644
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
645
|
+
|
|
646
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
647
|
+
|
|
648
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
649
|
+
|
|
650
|
+
`VisitorEventPage` fields:
|
|
651
|
+
|
|
652
|
+
| Field | Type | Required | Description |
|
|
653
|
+
|---|---|---|---|
|
|
654
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
655
|
+
| `limit` | `integer \| null` | no | |
|
|
656
|
+
| `page` | `integer \| null` | no | |
|
|
657
|
+
| `total` | `integer` | no | default `0` |
|
|
658
|
+
|
|
659
|
+
**Example**
|
|
660
|
+
|
|
661
|
+
```ts
|
|
662
|
+
const result = await g8.api.visitors.listCampaignVisitorEvents();
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
---
|
|
666
|
+
|
|
667
|
+
<a id="op-listcompanyvisitorevents"></a>
|
|
668
|
+
|
|
669
|
+
### `g8.api.visitors.listCompanyVisitorEvents(input?)`
|
|
670
|
+
|
|
671
|
+
**List Company Visitor Events**
|
|
672
|
+
|
|
673
|
+
- HTTP: `GET /api/v1/visitors/companies/events`
|
|
674
|
+
- operationId: `list_company_visitor_events_visitors_companies_events_get` (also callable as `g8.api.call("list_company_visitor_events_visitors_companies_events_get", input)`)
|
|
675
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
676
|
+
- API-key scope: `visitors:read`
|
|
677
|
+
|
|
678
|
+
Visits resolved to a company rather than a person.
|
|
679
|
+
|
|
680
|
+
**Input**
|
|
681
|
+
|
|
682
|
+
| Field | Type | Required | Description |
|
|
683
|
+
|---|---|---|---|
|
|
684
|
+
| `query.show_mode` | `"grouped" \| "raw"` | no | default `"grouped"` |
|
|
685
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
686
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
687
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
688
|
+
|
|
689
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
690
|
+
|
|
691
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
692
|
+
|
|
693
|
+
`VisitorEventPage` fields:
|
|
694
|
+
|
|
695
|
+
| Field | Type | Required | Description |
|
|
696
|
+
|---|---|---|---|
|
|
697
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
698
|
+
| `limit` | `integer \| null` | no | |
|
|
699
|
+
| `page` | `integer \| null` | no | |
|
|
700
|
+
| `total` | `integer` | no | default `0` |
|
|
701
|
+
|
|
702
|
+
**Example**
|
|
703
|
+
|
|
704
|
+
```ts
|
|
705
|
+
const result = await g8.api.visitors.listCompanyVisitorEvents();
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
<a id="op-listcontactvisitorevents"></a>
|
|
711
|
+
|
|
712
|
+
### `g8.api.visitors.listContactVisitorEvents(input?)`
|
|
713
|
+
|
|
714
|
+
**List Contact Visitor Events**
|
|
715
|
+
|
|
716
|
+
- HTTP: `GET /api/v1/visitors/contacts/events`
|
|
717
|
+
- operationId: `list_contact_visitor_events_visitors_contacts_events_get` (also callable as `g8.api.call("list_contact_visitor_events_visitors_contacts_events_get", input)`)
|
|
718
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
719
|
+
- API-key scope: `visitors:read`
|
|
720
|
+
|
|
721
|
+
Visits attributed to a known contact.
|
|
722
|
+
|
|
723
|
+
Carries BOTH gates the app declares: Signals read AND Contacts read. This
|
|
724
|
+
feed joins website behaviour to identified people, so holding one without
|
|
725
|
+
the other is not enough - and dropping either would be a quieter leak than
|
|
726
|
+
it looks.
|
|
727
|
+
|
|
728
|
+
**Input**
|
|
729
|
+
|
|
730
|
+
| Field | Type | Required | Description |
|
|
731
|
+
|---|---|---|---|
|
|
732
|
+
| `query.show_mode` | `"grouped" \| "raw"` | no | default `"grouped"` |
|
|
733
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
734
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
735
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
736
|
+
|
|
737
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
738
|
+
|
|
739
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
740
|
+
|
|
741
|
+
`VisitorEventPage` fields:
|
|
742
|
+
|
|
743
|
+
| Field | Type | Required | Description |
|
|
744
|
+
|---|---|---|---|
|
|
745
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
746
|
+
| `limit` | `integer \| null` | no | |
|
|
747
|
+
| `page` | `integer \| null` | no | |
|
|
748
|
+
| `total` | `integer` | no | default `0` |
|
|
749
|
+
|
|
750
|
+
**Example**
|
|
751
|
+
|
|
752
|
+
```ts
|
|
753
|
+
const result = await g8.api.visitors.listContactVisitorEvents();
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
---
|
|
757
|
+
|
|
758
|
+
<a id="op-listlinkvisitorevents"></a>
|
|
759
|
+
|
|
760
|
+
### `g8.api.visitors.listLinkVisitorEvents(input?)`
|
|
761
|
+
|
|
762
|
+
**List Link Visitor Events**
|
|
763
|
+
|
|
764
|
+
- HTTP: `GET /api/v1/visitors/links/events`
|
|
765
|
+
- operationId: `list_link_visitor_events_visitors_links_events_get` (also callable as `g8.api.call("list_link_visitor_events_visitors_links_events_get", input)`)
|
|
766
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
767
|
+
- API-key scope: `visitors:read`
|
|
768
|
+
|
|
769
|
+
Clicks on a tracked link.
|
|
770
|
+
|
|
771
|
+
**Input**
|
|
772
|
+
|
|
773
|
+
| Field | Type | Required | Description |
|
|
774
|
+
|---|---|---|---|
|
|
775
|
+
| `query.filter` | `string \| null` | no | Serialised filter expression, passed through to the events query unchanged. Its grammar is the app's, not this contract's - a typed model here would freeze a filter language that still moves. |
|
|
776
|
+
| `query.page` | `integer` | no | Page number (1-indexed). default `1` |
|
|
777
|
+
| `query.limit` | `integer` | no | Items per page. default `50` |
|
|
778
|
+
|
|
779
|
+
**Returns** `ApiResponse_VisitorEventPage_`: the envelope `{ data: VisitorEventPage, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
780
|
+
|
|
781
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
782
|
+
|
|
783
|
+
`VisitorEventPage` fields:
|
|
784
|
+
|
|
785
|
+
| Field | Type | Required | Description |
|
|
786
|
+
|---|---|---|---|
|
|
787
|
+
| `events` | `Array<Record<string, unknown>>` | no | |
|
|
788
|
+
| `limit` | `integer \| null` | no | |
|
|
789
|
+
| `page` | `integer \| null` | no | |
|
|
790
|
+
| `total` | `integer` | no | default `0` |
|
|
791
|
+
|
|
792
|
+
**Example**
|
|
793
|
+
|
|
794
|
+
```ts
|
|
795
|
+
const result = await g8.api.visitors.listLinkVisitorEvents();
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
---
|
|
799
|
+
|
|
800
|
+
<a id="op-listtailorqueryparamsets"></a>
|
|
801
|
+
|
|
802
|
+
### `g8.api.visitors.listTailorQueryParamSets(input?)`
|
|
803
|
+
|
|
804
|
+
**List Tailor Query Param Sets**
|
|
805
|
+
|
|
806
|
+
- HTTP: `GET /api/v1/visitors/tailor/query-param-sets`
|
|
807
|
+
- operationId: `list_tailor_query_param_sets_visitors_tailor_query_param_sets_get` (also callable as `g8.api.call("list_tailor_query_param_sets_visitors_tailor_query_param_sets_get", input)`)
|
|
808
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
809
|
+
- API-key scope: `visitors:read`
|
|
810
|
+
|
|
811
|
+
Saved page-personalisation query-param sets, oldest first, as `sets`.
|
|
812
|
+
|
|
813
|
+
**Input**: none.
|
|
814
|
+
|
|
815
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
816
|
+
|
|
817
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
818
|
+
|
|
819
|
+
**Example**
|
|
820
|
+
|
|
821
|
+
```ts
|
|
822
|
+
const result = await g8.api.visitors.listTailorQueryParamSets();
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
---
|
|
826
|
+
|
|
827
|
+
<a id="op-listvisitordistinctbrowsers"></a>
|
|
828
|
+
|
|
829
|
+
### `g8.api.visitors.listVisitorDistinctBrowsers(input)`
|
|
830
|
+
|
|
831
|
+
**List Visitor Distinct Browsers**
|
|
832
|
+
|
|
833
|
+
- HTTP: `GET /api/v1/visitors/{resource}/distinct-browsers`
|
|
834
|
+
- operationId: `list_visitor_distinct_browsers_visitors__resource__distinct_browsers_get` (also callable as `g8.api.call("list_visitor_distinct_browsers_visitors__resource__distinct_browsers_get", input)`)
|
|
835
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
836
|
+
- API-key scope: `visitors:read`
|
|
837
|
+
|
|
838
|
+
Browser values present in the data - a filter picker, not analytics.
|
|
839
|
+
|
|
840
|
+
**Input**
|
|
841
|
+
|
|
842
|
+
| Field | Type | Required | Description |
|
|
843
|
+
|---|---|---|---|
|
|
844
|
+
| `path.resource` | `"contacts" \| "companies"` | yes | |
|
|
845
|
+
| `query.write_key` | `string \| null` | no | Scope to a single stream. |
|
|
846
|
+
|
|
847
|
+
**Returns** `ApiResponse_list_str__`: the envelope `{ data: Array<string>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
848
|
+
|
|
849
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
850
|
+
|
|
851
|
+
**Example**
|
|
852
|
+
|
|
853
|
+
```ts
|
|
854
|
+
const result = await g8.api.visitors.listVisitorDistinctBrowsers({ path: { resource: "contacts" } });
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
---
|
|
858
|
+
|
|
859
|
+
<a id="op-listvisitordistinctutms"></a>
|
|
860
|
+
|
|
861
|
+
### `g8.api.visitors.listVisitorDistinctUtms(input)`
|
|
862
|
+
|
|
863
|
+
**List Visitor Distinct Utms**
|
|
864
|
+
|
|
865
|
+
- HTTP: `GET /api/v1/visitors/{resource}/distinct-utms`
|
|
866
|
+
- operationId: `list_visitor_distinct_utms_visitors__resource__distinct_utms_get` (also callable as `g8.api.call("list_visitor_distinct_utms_visitors__resource__distinct_utms_get", input)`)
|
|
867
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
868
|
+
- API-key scope: `visitors:read`
|
|
869
|
+
|
|
870
|
+
UTM values present in the data - the other half of the filter picker.
|
|
871
|
+
|
|
872
|
+
**Input**
|
|
873
|
+
|
|
874
|
+
| Field | Type | Required | Description |
|
|
875
|
+
|---|---|---|---|
|
|
876
|
+
| `path.resource` | `"contacts" \| "companies"` | yes | |
|
|
877
|
+
| `query.param` | `"utm_source" \| "utm_medium" \| "utm_campaign"` | yes | Which UTM parameter to list values for. |
|
|
878
|
+
| `query.write_key` | `string \| null` | no | Scope to a single stream. |
|
|
879
|
+
|
|
880
|
+
**Returns** `ApiResponse_list_str__`: the envelope `{ data: Array<string>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
881
|
+
|
|
882
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
883
|
+
|
|
884
|
+
**Example**
|
|
885
|
+
|
|
886
|
+
```ts
|
|
887
|
+
const result = await g8.api.visitors.listVisitorDistinctUtms({ path: { resource: "contacts" }, query: { param: "utm_source" } });
|
|
888
|
+
```
|
|
889
|
+
|
|
890
|
+
---
|
|
891
|
+
|
|
892
|
+
<a id="op-listvisitorpagehosts"></a>
|
|
893
|
+
|
|
894
|
+
### `g8.api.visitors.listVisitorPageHosts(input?)`
|
|
895
|
+
|
|
896
|
+
**List Visitor Page Hosts**
|
|
897
|
+
|
|
898
|
+
- HTTP: `GET /api/v1/visitors/page-hosts`
|
|
899
|
+
- operationId: `list_visitor_page_hosts_visitors_page_hosts_get` (also callable as `g8.api.call("list_visitor_page_hosts_visitors_page_hosts_get", input)`)
|
|
900
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
901
|
+
- API-key scope: `visitors:read`
|
|
902
|
+
|
|
903
|
+
Hostnames the snippet has actually reported from.
|
|
904
|
+
|
|
905
|
+
Useful for catching a snippet installed on a staging domain, or missing
|
|
906
|
+
from one you expected.
|
|
907
|
+
|
|
908
|
+
**Input**: none.
|
|
909
|
+
|
|
910
|
+
**Returns** `ApiResponse_dict_`: the envelope `{ data: Record<string, unknown>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
911
|
+
|
|
912
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
913
|
+
|
|
914
|
+
**Example**
|
|
915
|
+
|
|
916
|
+
```ts
|
|
917
|
+
const result = await g8.api.visitors.listVisitorPageHosts();
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
---
|
|
921
|
+
|
|
922
|
+
<a id="op-listvisitorstreams"></a>
|
|
923
|
+
|
|
924
|
+
### `g8.api.visitors.listVisitorStreams(input?)`
|
|
925
|
+
|
|
926
|
+
**List Visitor Streams**
|
|
927
|
+
|
|
928
|
+
- HTTP: `GET /api/v1/visitors/streams/list`
|
|
929
|
+
- operationId: `list_visitor_streams_visitors_streams_list_get` (also callable as `g8.api.call("list_visitor_streams_visitors_streams_list_get", input)`)
|
|
930
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
931
|
+
- API-key scope: `visitors:read`
|
|
932
|
+
|
|
933
|
+
Just the streams, without the surrounding workspace payload.
|
|
934
|
+
|
|
935
|
+
**Input**: none.
|
|
936
|
+
|
|
937
|
+
**Returns** `ApiResponse_VisitorStreamsResponse_`: the envelope `{ data: VisitorStreamsResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
938
|
+
|
|
939
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
940
|
+
|
|
941
|
+
`VisitorStreamsResponse` fields:
|
|
942
|
+
|
|
943
|
+
| Field | Type | Required | Description |
|
|
944
|
+
|---|---|---|---|
|
|
945
|
+
| `streams` | `Array<VisitorStream>` | no | |
|
|
946
|
+
| `total` | `integer` | no | default `0` |
|
|
947
|
+
|
|
948
|
+
**Example**
|
|
949
|
+
|
|
950
|
+
```ts
|
|
951
|
+
const result = await g8.api.visitors.listVisitorStreams();
|
|
952
|
+
```
|
|
953
|
+
|
|
954
|
+
---
|
|
955
|
+
|
|
956
|
+
<a id="op-startcampaignlistsync"></a>
|
|
957
|
+
|
|
958
|
+
### `g8.api.visitors.startCampaignListSync(input)`
|
|
959
|
+
|
|
960
|
+
**Start Campaign List Sync**
|
|
961
|
+
|
|
962
|
+
- HTTP: `POST /api/v1/visitors/campaigns/list-syncs`
|
|
963
|
+
- operationId: `start_campaign_list_sync_visitors_campaigns_list_syncs_post` (also callable as `g8.api.call("start_campaign_list_sync_visitors_campaigns_list_syncs_post", input)`)
|
|
964
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
965
|
+
- API-key scope: `visitors:write`
|
|
966
|
+
|
|
967
|
+
Sync the website visitors of some campaign steps into their campaign lists.
|
|
968
|
+
|
|
969
|
+
ASYNCHRONOUS: 202 and a `job_id`; poll
|
|
970
|
+
`GET /visitors/campaigns/list-syncs/{job_id}`. While a sync is already
|
|
971
|
+
running for the org, the running job comes back with
|
|
972
|
+
`status: already_running` and nothing new starts.
|
|
973
|
+
|
|
974
|
+
**Input**
|
|
975
|
+
|
|
976
|
+
| Field | Type | Required | Description |
|
|
977
|
+
|---|---|---|---|
|
|
978
|
+
| `body` | `VisitorListSyncRequest` | yes | Request body; fields below. |
|
|
979
|
+
|
|
980
|
+
Body fields (`VisitorListSyncRequest`):
|
|
981
|
+
|
|
982
|
+
| Field | Type | Required | Description |
|
|
983
|
+
|---|---|---|---|
|
|
984
|
+
| `body.sequencer_step_ids` | `Array<string>` | yes | Campaign (sequence) step ids whose visitors are synced into the campaign's list. min items 1, max items 500 |
|
|
985
|
+
|
|
986
|
+
**Returns** `ApiResponse_VisitorListSyncJob_`: the envelope `{ data: VisitorListSyncJob, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
987
|
+
|
|
988
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
989
|
+
|
|
990
|
+
`VisitorListSyncJob` fields:
|
|
991
|
+
|
|
992
|
+
| Field | Type | Required | Description |
|
|
993
|
+
|---|---|---|---|
|
|
994
|
+
| `job_id` | `string \| null` | no | |
|
|
995
|
+
| `status` | `string \| null` | no | |
|
|
996
|
+
|
|
997
|
+
**Example**
|
|
998
|
+
|
|
999
|
+
```ts
|
|
1000
|
+
const result = await g8.api.visitors.startCampaignListSync({ body: { sequencer_step_ids: ["id"] } });
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+
---
|
|
1004
|
+
|
|
1005
|
+
<a id="op-updateformcapturesettings"></a>
|
|
1006
|
+
|
|
1007
|
+
### `g8.api.visitors.updateFormCaptureSettings(input)`
|
|
1008
|
+
|
|
1009
|
+
**Update Form Capture Settings**
|
|
1010
|
+
|
|
1011
|
+
- HTTP: `PATCH /api/v1/visitors/form-capture-settings`
|
|
1012
|
+
- operationId: `update_form_capture_settings_visitors_form_capture_settings_patch` (also callable as `g8.api.call("update_form_capture_settings_visitors_form_capture_settings_patch", input)`)
|
|
1013
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
1014
|
+
- API-key scope: `visitors:write`
|
|
1015
|
+
|
|
1016
|
+
Replace the form-capture filters. Takes effect for the next submission on the site.
|
|
1017
|
+
|
|
1018
|
+
PATCH is the app's verb, but the body is a FULL REPLACEMENT - see the
|
|
1019
|
+
request model.
|
|
1020
|
+
|
|
1021
|
+
**Input**
|
|
1022
|
+
|
|
1023
|
+
| Field | Type | Required | Description |
|
|
1024
|
+
|---|---|---|---|
|
|
1025
|
+
| `body` | `FormCaptureSettingsRequest` | yes | Request body; fields below. |
|
|
1026
|
+
|
|
1027
|
+
Body fields (`FormCaptureSettingsRequest`):
|
|
1028
|
+
|
|
1029
|
+
| Field | Type | Required | Description |
|
|
1030
|
+
|---|---|---|---|
|
|
1031
|
+
| `body.allowed_hosts` | `Array<string>` | no | Capture only on these hosts. Empty means every host. |
|
|
1032
|
+
| `body.blocked_hosts` | `Array<string>` | no | Never capture on these hosts. |
|
|
1033
|
+
| `body.blocked_paths` | `Array<string>` | no | Never capture on these URL paths. |
|
|
1034
|
+
| `body.track_appointments` | `boolean` | no | Also capture booking-form submissions. default `true` |
|
|
1035
|
+
|
|
1036
|
+
**Returns** `ApiResponse_SiteConnectionsPayload_`: the envelope `{ data: SiteConnectionsPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
1037
|
+
|
|
1038
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
1039
|
+
|
|
1040
|
+
**Example**
|
|
1041
|
+
|
|
1042
|
+
```ts
|
|
1043
|
+
const result = await g8.api.visitors.updateFormCaptureSettings({ body: {} });
|
|
1044
|
+
```
|
|
1045
|
+
|
|
1046
|
+
---
|
|
1047
|
+
|
|
1048
|
+
## Referenced types
|
|
1049
|
+
|
|
1050
|
+
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
1051
|
+
|
|
1052
|
+
<a id="type-visitorcontactevent"></a>
|
|
1053
|
+
|
|
1054
|
+
### `VisitorContactEvent`
|
|
1055
|
+
|
|
1056
|
+
One page view by one identified contact.
|
|
1057
|
+
|
|
1058
|
+
| Field | Type | Required | Description |
|
|
1059
|
+
|---|---|---|---|
|
|
1060
|
+
| `page_host` | `string \| null` | no | |
|
|
1061
|
+
| `page_path` | `string \| null` | no | |
|
|
1062
|
+
| `page_title` | `string \| null` | no | |
|
|
1063
|
+
| `visit_time` | `string (date-time) \| null` | no | |
|
|
1064
|
+
|
|
1065
|
+
<a id="type-visitorstream"></a>
|
|
1066
|
+
|
|
1067
|
+
### `VisitorStream`
|
|
1068
|
+
|
|
1069
|
+
One tracking stream and the public keys the snippet sends with.
|
|
1070
|
+
|
|
1071
|
+
| Field | Type | Required | Description |
|
|
1072
|
+
|---|---|---|---|
|
|
1073
|
+
| `id` | `string \| null` | no | |
|
|
1074
|
+
| `name` | `string \| null` | no | |
|
|
1075
|
+
| `publicKeys` | `Array<string>` | no | Public write keys. Named in the app's camelCase rather than re-cased here - the snippet reads this value verbatim, and renaming it would be a silent breakage in a copy-paste flow. |
|