@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,858 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.intent`: Intent
|
|
4
|
+
|
|
5
|
+
16 operations (2 read, 1 destructive, 13 billable).
|
|
6
|
+
|
|
7
|
+
13 of these also have a hand-written method (`g8.intent`), 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: [intent.d.ts](intent.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`intentStats`](#op-intentstats) ★ | `GET /api/v1/intent/stats` | read | `intent:read` | Intent Stats |
|
|
26
|
+
| [`keywordCompanies`](#op-keywordcompanies) ★ | `POST /api/v1/intent/keywords/{keyword_id}/companies` | billable | `intent:run` | Keyword Companies |
|
|
27
|
+
| [`keywordContacts`](#op-keywordcontacts) ★ | `POST /api/v1/intent/keywords/{keyword_id}/contacts` | billable | `intent:run` | Keyword Contacts |
|
|
28
|
+
| [`keywordUpdateFilters`](#op-keywordupdatefilters) | `POST /api/v1/intent/keywords/{keyword_id}/filters` | billable | `intent:run` | Keyword Update Filters |
|
|
29
|
+
| [`keywordUrls`](#op-keywordurls) ★ | `POST /api/v1/intent/keywords/{keyword_id}/urls` | billable | `intent:run` | Keyword Urls |
|
|
30
|
+
| [`keywordsAdd`](#op-keywordsadd) | `POST /api/v1/intent/keywords/add` | billable | `intent:run` | Keywords Add |
|
|
31
|
+
| [`keywordsCreateFromDomain`](#op-keywordscreatefromdomain) ★ | `POST /api/v1/intent/keywords/create-from-domain` | billable | `intent:run` | Keywords Create From Domain |
|
|
32
|
+
| [`keywordsCreateFromSearch`](#op-keywordscreatefromsearch) | `POST /api/v1/intent/keywords/create-from-search` | billable | `intent:run` | Keywords Create From Search |
|
|
33
|
+
| [`keywordsDelete`](#op-keywordsdelete) ★ | `DELETE /api/v1/intent/keywords/{keyword_id}` | destructive | `intent:delete` | Keywords Delete |
|
|
34
|
+
| [`keywordsList`](#op-keywordslist) ★ | `POST /api/v1/intent/keywords/list` | billable | `intent:run` | Keywords List |
|
|
35
|
+
| [`pagesByDomain`](#op-pagesbydomain) ★ | `POST /api/v1/intent/pages-by-domain` | billable | `intent:run` | Pages By Domain |
|
|
36
|
+
| [`pagesContacts`](#op-pagescontacts) ★ | `POST /api/v1/intent/pages/contacts` | billable | `intent:run` | Pages Contacts |
|
|
37
|
+
| [`pagesSearch`](#op-pagessearch) ★ | `POST /api/v1/intent/pages/search` | billable | `intent:run` | Pages Search |
|
|
38
|
+
| [`pagesVisitorCounts`](#op-pagesvisitorcounts) ★ | `POST /api/v1/intent/pages/visitor-counts` | billable | `intent:run` | Pages Visitor Counts |
|
|
39
|
+
| [`pagesVisitors`](#op-pagesvisitors) ★ | `POST /api/v1/intent/pages/visitors` | billable | `intent:run` | Pages Visitors |
|
|
40
|
+
| [`urlCompanies`](#op-urlcompanies) ★ | `POST /api/v1/intent/url-companies` | read | `intent:read` | Url Companies |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
<a id="op-intentstats"></a>
|
|
45
|
+
|
|
46
|
+
### `g8.api.intent.intentStats(input?)`
|
|
47
|
+
|
|
48
|
+
**Intent Stats**
|
|
49
|
+
|
|
50
|
+
- HTTP: `GET /api/v1/intent/stats`
|
|
51
|
+
- operationId: `intent_stats_intent_stats_get` (also callable as `g8.api.call("intent_stats_intent_stats_get", input)`)
|
|
52
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
53
|
+
- API-key scope: `intent:read`
|
|
54
|
+
- ★ Hand-written: [`g8.intent.stats()`](../sdk-clients.md#g8-intent-stats)
|
|
55
|
+
|
|
56
|
+
Index-coverage stats: document count + size.
|
|
57
|
+
|
|
58
|
+
Useful for health checks before committing to a compete-tracking program.
|
|
59
|
+
|
|
60
|
+
**Input**: none.
|
|
61
|
+
|
|
62
|
+
**Returns** `unknown`.
|
|
63
|
+
|
|
64
|
+
**Example**
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
const result = await g8.api.intent.intentStats();
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
<a id="op-keywordcompanies"></a>
|
|
73
|
+
|
|
74
|
+
### `g8.api.intent.keywordCompanies(input)`
|
|
75
|
+
|
|
76
|
+
**Keyword Companies**
|
|
77
|
+
|
|
78
|
+
- HTTP: `POST /api/v1/intent/keywords/{keyword_id}/companies`
|
|
79
|
+
- operationId: `keyword_companies_intent_keywords__keyword_id__companies_post` (also callable as `g8.api.call("keyword_companies_intent_keywords__keyword_id__companies_post", input)`)
|
|
80
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
81
|
+
- API-key scope: `intent:run`
|
|
82
|
+
- ★ Hand-written: [`g8.intent.keywordCompanies()`](../sdk-clients.md#g8-intent-keywordcompanies)
|
|
83
|
+
|
|
84
|
+
Companies resolved against a keyword's URL set (intent_resolved).
|
|
85
|
+
|
|
86
|
+
**Input**
|
|
87
|
+
|
|
88
|
+
| Field | Type | Required | Description |
|
|
89
|
+
|---|---|---|---|
|
|
90
|
+
| `path.keyword_id` | `string (uuid)` | yes | |
|
|
91
|
+
| `body` | `KeywordDetailRequest` | yes | Request body; fields below. |
|
|
92
|
+
|
|
93
|
+
Body fields (`KeywordDetailRequest`):
|
|
94
|
+
|
|
95
|
+
| Field | Type | Required | Description |
|
|
96
|
+
|---|---|---|---|
|
|
97
|
+
| `body.conditions` | `Array<Record<string, unknown>>` | no | Optional `[{field, operator, value}]` filter conditions. |
|
|
98
|
+
| `body.limit` | `integer` | no | default `100`, min 1, max 500 |
|
|
99
|
+
| `body.page` | `integer` | no | default `1`, min 1 |
|
|
100
|
+
|
|
101
|
+
**Returns** `unknown`.
|
|
102
|
+
|
|
103
|
+
**Example**
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
107
|
+
const result = await g8.api.intent.keywordCompanies({
|
|
108
|
+
path: { keyword_id: "00000000-0000-0000-0000-000000000000" },
|
|
109
|
+
body: {},
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
<a id="op-keywordcontacts"></a>
|
|
116
|
+
|
|
117
|
+
### `g8.api.intent.keywordContacts(input)`
|
|
118
|
+
|
|
119
|
+
**Keyword Contacts**
|
|
120
|
+
|
|
121
|
+
- HTTP: `POST /api/v1/intent/keywords/{keyword_id}/contacts`
|
|
122
|
+
- operationId: `keyword_contacts_intent_keywords__keyword_id__contacts_post` (also callable as `g8.api.call("keyword_contacts_intent_keywords__keyword_id__contacts_post", input)`)
|
|
123
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
124
|
+
- API-key scope: `intent:run`
|
|
125
|
+
- ★ Hand-written: [`g8.intent.keywordContacts()`](../sdk-clients.md#g8-intent-keywordcontacts)
|
|
126
|
+
|
|
127
|
+
People resolved against a keyword's URL set (intent_resolved).
|
|
128
|
+
|
|
129
|
+
**Input**
|
|
130
|
+
|
|
131
|
+
| Field | Type | Required | Description |
|
|
132
|
+
|---|---|---|---|
|
|
133
|
+
| `path.keyword_id` | `string (uuid)` | yes | |
|
|
134
|
+
| `body` | `KeywordDetailRequest` | yes | Request body; fields below. |
|
|
135
|
+
|
|
136
|
+
Body fields (`KeywordDetailRequest`):
|
|
137
|
+
|
|
138
|
+
| Field | Type | Required | Description |
|
|
139
|
+
|---|---|---|---|
|
|
140
|
+
| `body.conditions` | `Array<Record<string, unknown>>` | no | Optional `[{field, operator, value}]` filter conditions. |
|
|
141
|
+
| `body.limit` | `integer` | no | default `100`, min 1, max 500 |
|
|
142
|
+
| `body.page` | `integer` | no | default `1`, min 1 |
|
|
143
|
+
|
|
144
|
+
**Returns** `unknown`.
|
|
145
|
+
|
|
146
|
+
**Example**
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
150
|
+
const result = await g8.api.intent.keywordContacts({
|
|
151
|
+
path: { keyword_id: "00000000-0000-0000-0000-000000000000" },
|
|
152
|
+
body: {},
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
<a id="op-keywordupdatefilters"></a>
|
|
159
|
+
|
|
160
|
+
### `g8.api.intent.keywordUpdateFilters(input)`
|
|
161
|
+
|
|
162
|
+
**Keyword Update Filters**
|
|
163
|
+
|
|
164
|
+
- HTTP: `POST /api/v1/intent/keywords/{keyword_id}/filters`
|
|
165
|
+
- operationId: `keyword_update_filters_intent_keywords__keyword_id__filters_post` (also callable as `g8.api.call("keyword_update_filters_intent_keywords__keyword_id__filters_post", input)`)
|
|
166
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
167
|
+
- API-key scope: `intent:run`
|
|
168
|
+
|
|
169
|
+
Replace a keyword's `search_filters` JSON.
|
|
170
|
+
|
|
171
|
+
**Input**
|
|
172
|
+
|
|
173
|
+
| Field | Type | Required | Description |
|
|
174
|
+
|---|---|---|---|
|
|
175
|
+
| `path.keyword_id` | `string (uuid)` | yes | |
|
|
176
|
+
| `body` | `KeywordFiltersUpdateRequest` | yes | Request body; fields below. |
|
|
177
|
+
|
|
178
|
+
Body fields (`KeywordFiltersUpdateRequest`):
|
|
179
|
+
|
|
180
|
+
| Field | Type | Required | Description |
|
|
181
|
+
|---|---|---|---|
|
|
182
|
+
| `body.search_filters` | `Record<string, unknown>` | yes | Full-replacement `search_filters` JSON. Typed fields in `intent.domain.models.keyword.KeywordSearchFilters`: audience, exclude_page_types, min_commercial_intent_level, max_urls_per_domain, llm_triage, exclude_domains. Extra keys allowed. |
|
|
183
|
+
|
|
184
|
+
**Returns** `unknown`.
|
|
185
|
+
|
|
186
|
+
**Example**
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
190
|
+
const result = await g8.api.intent.keywordUpdateFilters({
|
|
191
|
+
path: { keyword_id: "00000000-0000-0000-0000-000000000000" },
|
|
192
|
+
body: { search_filters: {} },
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
<a id="op-keywordurls"></a>
|
|
199
|
+
|
|
200
|
+
### `g8.api.intent.keywordUrls(input)`
|
|
201
|
+
|
|
202
|
+
**Keyword Urls**
|
|
203
|
+
|
|
204
|
+
- HTTP: `POST /api/v1/intent/keywords/{keyword_id}/urls`
|
|
205
|
+
- operationId: `keyword_urls_intent_keywords__keyword_id__urls_post` (also callable as `g8.api.call("keyword_urls_intent_keywords__keyword_id__urls_post", input)`)
|
|
206
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
207
|
+
- API-key scope: `intent:run`
|
|
208
|
+
- ★ Hand-written: [`g8.intent.keywordUrls()`](../sdk-clients.md#g8-intent-keywordurls)
|
|
209
|
+
|
|
210
|
+
URLs linked to a compete-tracking keyword (data4seo_task_results).
|
|
211
|
+
|
|
212
|
+
**Input**
|
|
213
|
+
|
|
214
|
+
| Field | Type | Required | Description |
|
|
215
|
+
|---|---|---|---|
|
|
216
|
+
| `path.keyword_id` | `string (uuid)` | yes | |
|
|
217
|
+
| `body` | `KeywordDetailRequest` | yes | Request body; fields below. |
|
|
218
|
+
|
|
219
|
+
Body fields (`KeywordDetailRequest`):
|
|
220
|
+
|
|
221
|
+
| Field | Type | Required | Description |
|
|
222
|
+
|---|---|---|---|
|
|
223
|
+
| `body.conditions` | `Array<Record<string, unknown>>` | no | Optional `[{field, operator, value}]` filter conditions. |
|
|
224
|
+
| `body.limit` | `integer` | no | default `100`, min 1, max 500 |
|
|
225
|
+
| `body.page` | `integer` | no | default `1`, min 1 |
|
|
226
|
+
|
|
227
|
+
**Returns** `unknown`.
|
|
228
|
+
|
|
229
|
+
**Example**
|
|
230
|
+
|
|
231
|
+
```ts
|
|
232
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
233
|
+
const result = await g8.api.intent.keywordUrls({
|
|
234
|
+
path: { keyword_id: "00000000-0000-0000-0000-000000000000" },
|
|
235
|
+
body: {},
|
|
236
|
+
});
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
<a id="op-keywordsadd"></a>
|
|
242
|
+
|
|
243
|
+
### `g8.api.intent.keywordsAdd(input)`
|
|
244
|
+
|
|
245
|
+
**Keywords Add**
|
|
246
|
+
|
|
247
|
+
- HTTP: `POST /api/v1/intent/keywords/add`
|
|
248
|
+
- operationId: `keywords_add_intent_keywords_add_post` (also callable as `g8.api.call("keywords_add_intent_keywords_add_post", input)`)
|
|
249
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
250
|
+
- API-key scope: `intent:run`
|
|
251
|
+
|
|
252
|
+
Bulk-add plain compete-tracking keyword rows (web-UI "Add keywords" parity).
|
|
253
|
+
|
|
254
|
+
Thin public proxy over the SAME handler the graph8 web UI's Buyer Intent >
|
|
255
|
+
Keywords bulk-add uses (``POST /intent/keywords/add-keywords`` internally).
|
|
256
|
+
One deliberate strictness on top of the UI path: entries are trimmed of
|
|
257
|
+
leading/trailing whitespace before saving (the UI screen saves them raw).
|
|
258
|
+
Everything else matches the UI path:
|
|
259
|
+
|
|
260
|
+
- Keywords are stored lowercased; the response carries the stored text.
|
|
261
|
+
- A keyword that already exists for this org + ``signal_type`` (and is not
|
|
262
|
+
soft-deleted) is skipped silently by the handler; this route reports it
|
|
263
|
+
as ``skipped`` with reason ``already_exists``. Soft-deleted keywords can
|
|
264
|
+
be re-added.
|
|
265
|
+
- For ``signal_type='intent'`` each NEWLY created keyword fires a
|
|
266
|
+
background SERP fetch that seeds its URL set asynchronously - URLs and
|
|
267
|
+
resolved contacts/companies appear later, not in this response.
|
|
268
|
+
- Unlike ``create-from-search`` this saves the plain phrase only (no
|
|
269
|
+
search seeding, no ``search_filters``); use
|
|
270
|
+
``/keywords/{id}/filters`` afterwards to set per-keyword filters.
|
|
271
|
+
|
|
272
|
+
**Input**
|
|
273
|
+
|
|
274
|
+
| Field | Type | Required | Description |
|
|
275
|
+
|---|---|---|---|
|
|
276
|
+
| `body` | `KeywordsAddRequest` | yes | Request body; fields below. |
|
|
277
|
+
|
|
278
|
+
Body fields (`KeywordsAddRequest`):
|
|
279
|
+
|
|
280
|
+
| Field | Type | Required | Description |
|
|
281
|
+
|---|---|---|---|
|
|
282
|
+
| `body.keywords` | `Array<string>` | yes | 1-50 keyword phrases to add as plain compete-tracking rows. Stored lowercased. Empty / whitespace-only entries and in-request duplicates (case-insensitive, trimmed) are skipped, not saved twice. min items 1, max items 50 |
|
|
283
|
+
| `body.signal_type` | `"intent" \| "jobs" \| "job_changes"` | no | Signal source discriminator, same vocabulary as the web UI: 'intent' (default, buyer-intent tracking), 'jobs', or 'job_changes'. default `"intent"` |
|
|
284
|
+
|
|
285
|
+
**Returns** `ApiResponse_KeywordsAddResponse_`: the envelope `{ data: KeywordsAddResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
286
|
+
|
|
287
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
288
|
+
|
|
289
|
+
`KeywordsAddResponse` fields:
|
|
290
|
+
|
|
291
|
+
| Field | Type | Required | Description |
|
|
292
|
+
|---|---|---|---|
|
|
293
|
+
| `created` | `Array<KeywordAddedItem>` | no | default `[]` |
|
|
294
|
+
| `created_count` | `integer` | no | default `0` |
|
|
295
|
+
| `skipped` | `Array<KeywordsAddSkippedItem>` | no | default `[]` |
|
|
296
|
+
| `skipped_count` | `integer` | no | default `0` |
|
|
297
|
+
|
|
298
|
+
**Example**
|
|
299
|
+
|
|
300
|
+
```ts
|
|
301
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
302
|
+
const result = await g8.api.intent.keywordsAdd({ body: { keywords: ["example"] } });
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
<a id="op-keywordscreatefromdomain"></a>
|
|
308
|
+
|
|
309
|
+
### `g8.api.intent.keywordsCreateFromDomain(input)`
|
|
310
|
+
|
|
311
|
+
**Keywords Create From Domain**
|
|
312
|
+
|
|
313
|
+
- HTTP: `POST /api/v1/intent/keywords/create-from-domain`
|
|
314
|
+
- operationId: `keywords_create_from_domain_intent_keywords_create_from_domain_post` (also callable as `g8.api.call("keywords_create_from_domain_intent_keywords_create_from_domain_post", input)`)
|
|
315
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
316
|
+
- API-key scope: `intent:run`
|
|
317
|
+
- ★ Hand-written: [`g8.intent.createFromDomain()`](../sdk-clients.md#g8-intent-createfromdomain)
|
|
318
|
+
|
|
319
|
+
One-shot compete-tracking keyword create.
|
|
320
|
+
|
|
321
|
+
Under the hood:
|
|
322
|
+
1. `pages-by-domain` -> on-domain / subdomain URLs only
|
|
323
|
+
2. `contacts` -> pre-resolved people across those URLs
|
|
324
|
+
3. `save-from-search` -> persists the keyword row with both
|
|
325
|
+
|
|
326
|
+
The off-domain guard is strict: every page returned from step 1 is
|
|
327
|
+
re-checked against `^(.+\.)?<domain>$` before save, so nothing that
|
|
328
|
+
isn't actually on the competitor's site can slip in.
|
|
329
|
+
|
|
330
|
+
**Input**
|
|
331
|
+
|
|
332
|
+
| Field | Type | Required | Description |
|
|
333
|
+
|---|---|---|---|
|
|
334
|
+
| `body` | `KeywordCreateFromDomainRequest` | yes | Request body; fields below. |
|
|
335
|
+
|
|
336
|
+
Body fields (`KeywordCreateFromDomainRequest`):
|
|
337
|
+
|
|
338
|
+
| Field | Type | Required | Description |
|
|
339
|
+
|---|---|---|---|
|
|
340
|
+
| `body.domain` | `string` | yes | Competitor domain to track, e.g. 'cognism.com'. min length 3, max length 253 |
|
|
341
|
+
| `body.contact_limit` | `integer` | no | Max contacts to pre-resolve. default `200`, min 1, max 500 |
|
|
342
|
+
| `body.page_limit` | `integer` | no | Max pages to seed from the domain. default `200`, min 1, max 500 |
|
|
343
|
+
|
|
344
|
+
**Returns** `ApiResponse_KeywordCreateFromDomainResponse_`: the envelope `{ data: KeywordCreateFromDomainResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
345
|
+
|
|
346
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
347
|
+
|
|
348
|
+
`KeywordCreateFromDomainResponse` fields:
|
|
349
|
+
|
|
350
|
+
| Field | Type | Required | Description |
|
|
351
|
+
|---|---|---|---|
|
|
352
|
+
| `keyword` | `string` | yes | |
|
|
353
|
+
| `companies_seeded` | `integer` | no | default `0` |
|
|
354
|
+
| `contacts_seeded` | `integer` | no | default `0` |
|
|
355
|
+
| `keyword_id` | `string \| null` | no | |
|
|
356
|
+
| `message` | `string` | no | default `""` |
|
|
357
|
+
| `off_domain_rejected` | `integer` | no | default `0` |
|
|
358
|
+
| `pages_seeded` | `integer` | no | default `0` |
|
|
359
|
+
|
|
360
|
+
**Example**
|
|
361
|
+
|
|
362
|
+
```ts
|
|
363
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
364
|
+
const result = await g8.api.intent.keywordsCreateFromDomain({ body: { domain: "acme.com" } });
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
<a id="op-keywordscreatefromsearch"></a>
|
|
370
|
+
|
|
371
|
+
### `g8.api.intent.keywordsCreateFromSearch(input)`
|
|
372
|
+
|
|
373
|
+
**Keywords Create From Search**
|
|
374
|
+
|
|
375
|
+
- HTTP: `POST /api/v1/intent/keywords/create-from-search`
|
|
376
|
+
- operationId: `keywords_create_from_search_intent_keywords_create_from_search_post` (also callable as `g8.api.call("keywords_create_from_search_intent_keywords_create_from_search_post", input)`)
|
|
377
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
378
|
+
- API-key scope: `intent:run`
|
|
379
|
+
|
|
380
|
+
Bulk-create compete-tracking keywords from free-text queries.
|
|
381
|
+
|
|
382
|
+
The array/free-text sibling of ``create-from-domain``. For EACH keyword
|
|
383
|
+
(max 10, processed sequentially) it runs:
|
|
384
|
+
|
|
385
|
+
1. ``pages/search`` - text/semantic search of the intent index
|
|
386
|
+
2. ``contacts_for_urls`` - resolve people who visited those pages
|
|
387
|
+
3. ``save_keyword_from_search``- persist the keyword + URLs + contacts
|
|
388
|
+
|
|
389
|
+
Each keyword is isolated: a failure on one yields ``status="error"`` for
|
|
390
|
+
that item and never fails the whole batch. Empty / whitespace-only entries
|
|
391
|
+
and in-request duplicates (case-insensitive, trimmed) are ``status="skipped"``
|
|
392
|
+
before any search/resolve work.
|
|
393
|
+
|
|
394
|
+
NOTE - not idempotent across requests: re-posting the same keyword text in a
|
|
395
|
+
LATER request replaces the prior saved row and returns a NEW ``keyword_id``
|
|
396
|
+
(the underlying save is replace-on-save for an exact keyword+filters match).
|
|
397
|
+
|
|
398
|
+
**Input**
|
|
399
|
+
|
|
400
|
+
| Field | Type | Required | Description |
|
|
401
|
+
|---|---|---|---|
|
|
402
|
+
| `body` | `KeywordsCreateFromSearchRequest` | yes | Request body; fields below. |
|
|
403
|
+
|
|
404
|
+
Body fields (`KeywordsCreateFromSearchRequest`):
|
|
405
|
+
|
|
406
|
+
| Field | Type | Required | Description |
|
|
407
|
+
|---|---|---|---|
|
|
408
|
+
| `body.keywords` | `Array<string>` | yes | 1-10 free-text keyword queries. Each is searched against the intent page index, contacts/companies are resolved, and a compete-tracking keyword row is saved. Duplicates within the request (case-insensitive, trimmed) are skipped, not re-saved. min items 1, max items 10 |
|
|
409
|
+
| `body.contact_limit` | `integer` | no | Max contacts to pre-resolve per keyword. default `50`, min 1, max 100 |
|
|
410
|
+
| `body.page_limit` | `integer` | no | Max pages to seed per keyword. Deliberately smaller than create-from-domain's 200 default since this runs once per keyword. default `20`, min 1, max 50 |
|
|
411
|
+
| `body.search_filters` | `Record<string, unknown> \| null` | no | Optional intent-search filters applied to EVERY keyword in the batch (audience, page_type, commercial_score_min, etc.). Stored verbatim on each saved keyword row so the daily resolver replays them. |
|
|
412
|
+
| `body.semantic_ratio` | `number` | no | 0 = text search (default, cheapest), 1 = semantic, between = hybrid. default `0`, min 0, max 1 |
|
|
413
|
+
|
|
414
|
+
**Returns** `ApiResponse_KeywordsCreateFromSearchResponse_`: the envelope `{ data: KeywordsCreateFromSearchResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
415
|
+
|
|
416
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
417
|
+
|
|
418
|
+
`KeywordsCreateFromSearchResponse` fields:
|
|
419
|
+
|
|
420
|
+
| Field | Type | Required | Description |
|
|
421
|
+
|---|---|---|---|
|
|
422
|
+
| `created_count` | `integer` | no | default `0` |
|
|
423
|
+
| `error_count` | `integer` | no | default `0` |
|
|
424
|
+
| `results` | `Array<KeywordCreateFromSearchItem>` | no | default `[]` |
|
|
425
|
+
| `skipped_count` | `integer` | no | default `0` |
|
|
426
|
+
|
|
427
|
+
**Example**
|
|
428
|
+
|
|
429
|
+
```ts
|
|
430
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
431
|
+
const result = await g8.api.intent.keywordsCreateFromSearch({ body: { keywords: ["example"] } });
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
<a id="op-keywordsdelete"></a>
|
|
437
|
+
|
|
438
|
+
### `g8.api.intent.keywordsDelete(input)`
|
|
439
|
+
|
|
440
|
+
**Keywords Delete**
|
|
441
|
+
|
|
442
|
+
- HTTP: `DELETE /api/v1/intent/keywords/{keyword_id}`
|
|
443
|
+
- operationId: `keywords_delete_intent_keywords__keyword_id__delete` (also callable as `g8.api.call("keywords_delete_intent_keywords__keyword_id__delete", input)`)
|
|
444
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
445
|
+
- API-key scope: `intent:delete`
|
|
446
|
+
- ★ Hand-written: [`g8.intent.deleteKeyword()`](../sdk-clients.md#g8-intent-deletekeyword)
|
|
447
|
+
|
|
448
|
+
Soft-delete a compete-tracking keyword row.
|
|
449
|
+
|
|
450
|
+
**Input**
|
|
451
|
+
|
|
452
|
+
| Field | Type | Required | Description |
|
|
453
|
+
|---|---|---|---|
|
|
454
|
+
| `path.keyword_id` | `string (uuid)` | yes | Keyword row UUID. |
|
|
455
|
+
|
|
456
|
+
**Returns** `unknown`.
|
|
457
|
+
|
|
458
|
+
**Example**
|
|
459
|
+
|
|
460
|
+
```ts
|
|
461
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
462
|
+
const result = await g8.api.intent.keywordsDelete({ path: { keyword_id: "00000000-0000-0000-0000-000000000000" } });
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
<a id="op-keywordslist"></a>
|
|
468
|
+
|
|
469
|
+
### `g8.api.intent.keywordsList(input)`
|
|
470
|
+
|
|
471
|
+
**Keywords List**
|
|
472
|
+
|
|
473
|
+
- HTTP: `POST /api/v1/intent/keywords/list`
|
|
474
|
+
- operationId: `keywords_list_intent_keywords_list_post` (also callable as `g8.api.call("keywords_list_intent_keywords_list_post", input)`)
|
|
475
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
476
|
+
- API-key scope: `intent:run`
|
|
477
|
+
- ★ Hand-written: [`g8.intent.listKeywords()`](../sdk-clients.md#g8-intent-listkeywords)
|
|
478
|
+
|
|
479
|
+
All compete-tracking keyword rows for the org.
|
|
480
|
+
|
|
481
|
+
Each row carries `total_resolved_contacts` and
|
|
482
|
+
`total_resolved_companies` so the caller can rank rows by actual
|
|
483
|
+
compete intelligence delivered.
|
|
484
|
+
|
|
485
|
+
**Input**
|
|
486
|
+
|
|
487
|
+
| Field | Type | Required | Description |
|
|
488
|
+
|---|---|---|---|
|
|
489
|
+
| `body` | `KeywordsListRequest` | yes | Request body; fields below. |
|
|
490
|
+
|
|
491
|
+
Body fields (`KeywordsListRequest`):
|
|
492
|
+
|
|
493
|
+
| Field | Type | Required | Description |
|
|
494
|
+
|---|---|---|---|
|
|
495
|
+
| `body.keyword_contains` | `string \| null` | no | Case-insensitive keyword substring filter. |
|
|
496
|
+
| `body.limit` | `integer` | no | default `100`, min 1, max 500 |
|
|
497
|
+
| `body.page` | `integer` | no | default `1`, min 1 |
|
|
498
|
+
|
|
499
|
+
**Returns** `unknown`.
|
|
500
|
+
|
|
501
|
+
**Example**
|
|
502
|
+
|
|
503
|
+
```ts
|
|
504
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
505
|
+
const result = await g8.api.intent.keywordsList({ body: {} });
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
<a id="op-pagesbydomain"></a>
|
|
511
|
+
|
|
512
|
+
### `g8.api.intent.pagesByDomain(input)`
|
|
513
|
+
|
|
514
|
+
**Pages By Domain**
|
|
515
|
+
|
|
516
|
+
- HTTP: `POST /api/v1/intent/pages-by-domain`
|
|
517
|
+
- operationId: `pages_by_domain_intent_pages_by_domain_post` (also callable as `g8.api.call("pages_by_domain_intent_pages_by_domain_post", input)`)
|
|
518
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
519
|
+
- API-key scope: `intent:run`
|
|
520
|
+
- ★ Hand-written: [`g8.intent.pagesByDomain()`](../sdk-clients.md#g8-intent-pagesbydomain)
|
|
521
|
+
|
|
522
|
+
Every indexed page on a competitor domain (and its subdomains).
|
|
523
|
+
|
|
524
|
+
Queries ClickHouse `intent.crawl_pages` directly via a
|
|
525
|
+
`domain_root = X OR domain_root LIKE '%.X'` filter. Orders by
|
|
526
|
+
`commercial_score DESC`. Primary consumer: compete-tracking keyword
|
|
527
|
+
setup - avoids polluting a keyword row with news articles that only
|
|
528
|
+
mention the competitor.
|
|
529
|
+
|
|
530
|
+
**Input**
|
|
531
|
+
|
|
532
|
+
| Field | Type | Required | Description |
|
|
533
|
+
|---|---|---|---|
|
|
534
|
+
| `body` | `PagesByDomainRequest` | yes | Request body; fields below. |
|
|
535
|
+
|
|
536
|
+
Body fields (`PagesByDomainRequest`):
|
|
537
|
+
|
|
538
|
+
| Field | Type | Required | Description |
|
|
539
|
+
|---|---|---|---|
|
|
540
|
+
| `body.domain` | `string` | yes | Competitor root domain. Subdomains auto-matched. min length 3, max length 253 |
|
|
541
|
+
| `body.limit` | `integer` | no | default `200`, min 1, max 500 |
|
|
542
|
+
| `body.offset` | `integer` | no | default `0`, min 0 |
|
|
543
|
+
|
|
544
|
+
**Returns** `ApiResponse_PagesByDomainResponse_`: the envelope `{ data: PagesByDomainResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
545
|
+
|
|
546
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
547
|
+
|
|
548
|
+
`PagesByDomainResponse` fields:
|
|
549
|
+
|
|
550
|
+
| Field | Type | Required | Description |
|
|
551
|
+
|---|---|---|---|
|
|
552
|
+
| `domain` | `string` | yes | |
|
|
553
|
+
| `pages` | `Array<IntentPageItem>` | no | default `[]` |
|
|
554
|
+
| `took_ms` | `integer` | no | default `0` |
|
|
555
|
+
| `total_hits` | `integer` | no | default `0` |
|
|
556
|
+
|
|
557
|
+
**Example**
|
|
558
|
+
|
|
559
|
+
```ts
|
|
560
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
561
|
+
const result = await g8.api.intent.pagesByDomain({ body: { domain: "acme.com" } });
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
<a id="op-pagescontacts"></a>
|
|
567
|
+
|
|
568
|
+
### `g8.api.intent.pagesContacts(input)`
|
|
569
|
+
|
|
570
|
+
**Pages Contacts**
|
|
571
|
+
|
|
572
|
+
- HTTP: `POST /api/v1/intent/pages/contacts`
|
|
573
|
+
- operationId: `pages_contacts_intent_pages_contacts_post` (also callable as `g8.api.call("pages_contacts_intent_pages_contacts_post", input)`)
|
|
574
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
575
|
+
- API-key scope: `intent:run`
|
|
576
|
+
- ★ Hand-written: [`g8.intent.pageContacts()`](../sdk-clients.md#g8-intent-pagecontacts)
|
|
577
|
+
|
|
578
|
+
Aggregated, deduplicated resolved contacts across a URL list.
|
|
579
|
+
|
|
580
|
+
One batched HEM pull, then the 4-path identity fan-out. Used to
|
|
581
|
+
pre-populate the `contacts` array on a save-from-search keyword so the
|
|
582
|
+
row shows contact counts immediately (not after the daily resolver).
|
|
583
|
+
|
|
584
|
+
**Input**
|
|
585
|
+
|
|
586
|
+
| Field | Type | Required | Description |
|
|
587
|
+
|---|---|---|---|
|
|
588
|
+
| `body` | `PagesContactsRequest` | yes | Request body; fields below. |
|
|
589
|
+
|
|
590
|
+
Body fields (`PagesContactsRequest`):
|
|
591
|
+
|
|
592
|
+
| Field | Type | Required | Description |
|
|
593
|
+
|---|---|---|---|
|
|
594
|
+
| `body.urls` | `Array<string>` | yes | min items 1, max items 200 |
|
|
595
|
+
| `body.limit` | `integer` | no | default `100`, min 1, max 500 |
|
|
596
|
+
| `body.mode` | `string` | no | default `"quick"` |
|
|
597
|
+
| `body.offset` | `integer` | no | default `0`, min 0 |
|
|
598
|
+
|
|
599
|
+
**Returns** `unknown`.
|
|
600
|
+
|
|
601
|
+
**Example**
|
|
602
|
+
|
|
603
|
+
```ts
|
|
604
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
605
|
+
const result = await g8.api.intent.pagesContacts({ body: { urls: ["https://example.com"] } });
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
<a id="op-pagessearch"></a>
|
|
611
|
+
|
|
612
|
+
### `g8.api.intent.pagesSearch(input)`
|
|
613
|
+
|
|
614
|
+
**Pages Search**
|
|
615
|
+
|
|
616
|
+
- HTTP: `POST /api/v1/intent/pages/search`
|
|
617
|
+
- operationId: `pages_search_intent_pages_search_post` (also callable as `g8.api.call("pages_search_intent_pages_search_post", input)`)
|
|
618
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
619
|
+
- API-key scope: `intent:run`
|
|
620
|
+
- ★ Hand-written: [`g8.intent.searchPages()`](../sdk-clients.md#g8-intent-searchpages)
|
|
621
|
+
|
|
622
|
+
Text / semantic / hybrid search across the intent-enriched page index.
|
|
623
|
+
|
|
624
|
+
Honors the same operator syntax the internal search box supports:
|
|
625
|
+
`site:<domain>`, `intitle:X`, `inurl:X`, `type:blog`, `audience:b2b`,
|
|
626
|
+
`-exclude`, or just a bare domain for domain-mode.
|
|
627
|
+
|
|
628
|
+
**Input**
|
|
629
|
+
|
|
630
|
+
| Field | Type | Required | Description |
|
|
631
|
+
|---|---|---|---|
|
|
632
|
+
| `body` | `PagesSearchRequest` | yes | Request body; fields below. |
|
|
633
|
+
|
|
634
|
+
Body fields (`PagesSearchRequest`):
|
|
635
|
+
|
|
636
|
+
| Field | Type | Required | Description |
|
|
637
|
+
|---|---|---|---|
|
|
638
|
+
| `body.query` | `string` | yes | min length 1, max length 500 |
|
|
639
|
+
| `body.filters` | `Record<string, unknown> \| null` | no | |
|
|
640
|
+
| `body.include_visitors` | `boolean` | no | default `true` |
|
|
641
|
+
| `body.limit` | `integer` | no | default `50`, min 1, max 500 |
|
|
642
|
+
| `body.offset` | `integer` | no | default `0`, min 0 |
|
|
643
|
+
| `body.semantic_ratio` | `number` | no | 0 = text, 1 = semantic, between = hybrid default `0`, min 0, max 1 |
|
|
644
|
+
| `body.sort` | `Array<string> \| null` | no | |
|
|
645
|
+
|
|
646
|
+
**Returns** `ApiResponse_PagesSearchResponse_`: the envelope `{ data: PagesSearchResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
647
|
+
|
|
648
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
649
|
+
|
|
650
|
+
`PagesSearchResponse` fields:
|
|
651
|
+
|
|
652
|
+
| Field | Type | Required | Description |
|
|
653
|
+
|---|---|---|---|
|
|
654
|
+
| `query` | `string` | yes | |
|
|
655
|
+
| `mode` | `string` | no | default `"text"` |
|
|
656
|
+
| `pages` | `Array<IntentPageItem>` | no | default `[]` |
|
|
657
|
+
| `took_ms` | `integer` | no | default `0` |
|
|
658
|
+
| `total_hits` | `integer` | no | default `0` |
|
|
659
|
+
|
|
660
|
+
**Example**
|
|
661
|
+
|
|
662
|
+
```ts
|
|
663
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
664
|
+
const result = await g8.api.intent.pagesSearch({ body: { query: "example" } });
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
---
|
|
668
|
+
|
|
669
|
+
<a id="op-pagesvisitorcounts"></a>
|
|
670
|
+
|
|
671
|
+
### `g8.api.intent.pagesVisitorCounts(input)`
|
|
672
|
+
|
|
673
|
+
**Pages Visitor Counts**
|
|
674
|
+
|
|
675
|
+
- HTTP: `POST /api/v1/intent/pages/visitor-counts`
|
|
676
|
+
- operationId: `pages_visitor_counts_intent_pages_visitor_counts_post` (also callable as `g8.api.call("pages_visitor_counts_intent_pages_visitor_counts_post", input)`)
|
|
677
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
678
|
+
- API-key scope: `intent:run`
|
|
679
|
+
- ★ Hand-written: [`g8.intent.pageVisitorCounts()`](../sdk-clients.md#g8-intent-pagevisitorcounts)
|
|
680
|
+
|
|
681
|
+
Batched unique-visitor count per page URL.
|
|
682
|
+
|
|
683
|
+
Reads the pre-aggregated `intent.url_visitor_counts` MV first; falls
|
|
684
|
+
back to the raw `intent.optimized_signals_v1` if the MV doesn't exist
|
|
685
|
+
yet. Fast enough to call with thousands of URLs.
|
|
686
|
+
|
|
687
|
+
**Input**
|
|
688
|
+
|
|
689
|
+
| Field | Type | Required | Description |
|
|
690
|
+
|---|---|---|---|
|
|
691
|
+
| `body` | `PagesVisitorCountsRequest` | yes | Request body; fields below. |
|
|
692
|
+
|
|
693
|
+
Body fields (`PagesVisitorCountsRequest`):
|
|
694
|
+
|
|
695
|
+
| Field | Type | Required | Description |
|
|
696
|
+
|---|---|---|---|
|
|
697
|
+
| `body.urls` | `Array<string>` | yes | min items 1, max items 15000 |
|
|
698
|
+
|
|
699
|
+
**Returns** `unknown`.
|
|
700
|
+
|
|
701
|
+
**Example**
|
|
702
|
+
|
|
703
|
+
```ts
|
|
704
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
705
|
+
const result = await g8.api.intent.pagesVisitorCounts({ body: { urls: ["https://example.com"] } });
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
<a id="op-pagesvisitors"></a>
|
|
711
|
+
|
|
712
|
+
### `g8.api.intent.pagesVisitors(input)`
|
|
713
|
+
|
|
714
|
+
**Pages Visitors**
|
|
715
|
+
|
|
716
|
+
- HTTP: `POST /api/v1/intent/pages/visitors`
|
|
717
|
+
- operationId: `pages_visitors_intent_pages_visitors_post` (also callable as `g8.api.call("pages_visitors_intent_pages_visitors_post", input)`)
|
|
718
|
+
- Tier: `billable`: spends credits; the SDK never blindly retries it; confirm cost before bulk use
|
|
719
|
+
- API-key scope: `intent:run`
|
|
720
|
+
- ★ Hand-written: [`g8.intent.pageVisitors()`](../sdk-clients.md#g8-intent-pagevisitors)
|
|
721
|
+
|
|
722
|
+
Resolve the people who visited a specific page URL.
|
|
723
|
+
|
|
724
|
+
Backed by the same S1 -> S2 chain the FE drill-down uses. Returns
|
|
725
|
+
HEM, profile fields (verified), and a `source` tier (verified / b2b /
|
|
726
|
+
b2c / company / anonymous) so the caller can filter confidence.
|
|
727
|
+
|
|
728
|
+
**Input**
|
|
729
|
+
|
|
730
|
+
| Field | Type | Required | Description |
|
|
731
|
+
|---|---|---|---|
|
|
732
|
+
| `body` | `PagesVisitorsRequest` | yes | Request body; fields below. |
|
|
733
|
+
|
|
734
|
+
Body fields (`PagesVisitorsRequest`):
|
|
735
|
+
|
|
736
|
+
| Field | Type | Required | Description |
|
|
737
|
+
|---|---|---|---|
|
|
738
|
+
| `body.url` | `string` | yes | Canonical PAGE_URL, e.g. 'cognism.com/pricing' (no scheme, no www). min length 1, max length 1024 |
|
|
739
|
+
| `body.limit` | `integer` | no | default `50`, min 1, max 500 |
|
|
740
|
+
| `body.mode` | `string` | no | 'quick' (~500ms) or 'full' (~2-3s, all paths). default `"quick"` |
|
|
741
|
+
| `body.offset` | `integer` | no | default `0`, min 0 |
|
|
742
|
+
|
|
743
|
+
**Returns** `unknown`.
|
|
744
|
+
|
|
745
|
+
**Example**
|
|
746
|
+
|
|
747
|
+
```ts
|
|
748
|
+
// billable: spends credits; the SDK never blindly retries it; confirm cost before bulk use.
|
|
749
|
+
const result = await g8.api.intent.pagesVisitors({ body: { url: "https://example.com" } });
|
|
750
|
+
```
|
|
751
|
+
|
|
752
|
+
---
|
|
753
|
+
|
|
754
|
+
<a id="op-urlcompanies"></a>
|
|
755
|
+
|
|
756
|
+
### `g8.api.intent.urlCompanies(input)`
|
|
757
|
+
|
|
758
|
+
**Url Companies**
|
|
759
|
+
|
|
760
|
+
- HTTP: `POST /api/v1/intent/url-companies`
|
|
761
|
+
- operationId: `url_companies_intent_url_companies_post` (also callable as `g8.api.call("url_companies_intent_url_companies_post", input)`)
|
|
762
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
763
|
+
- API-key scope: `intent:read`
|
|
764
|
+
- ★ Hand-written: [`g8.intent.urlCompanies()`](../sdk-clients.md#g8-intent-urlcompanies)
|
|
765
|
+
|
|
766
|
+
Companies whose people visited a single URL, with a B2B/B2C split.
|
|
767
|
+
|
|
768
|
+
Aggregated from `{org_id}.intent_resolved`. Contact-resolved companies
|
|
769
|
+
only - IP-only company resolution is a separate treatment and is not
|
|
770
|
+
included here.
|
|
771
|
+
|
|
772
|
+
The response shape is field-for-field identical to the main-app
|
|
773
|
+
`POST /intent-search/url-companies` that backs the FE drill-down; key
|
|
774
|
+
parity between the two is locked by
|
|
775
|
+
`developer_api/tests/test_intent_url_companies_api.py`.
|
|
776
|
+
|
|
777
|
+
Failure semantics deliberately differ from that main-app route: it
|
|
778
|
+
swallows lookup errors and returns an empty result, which over this
|
|
779
|
+
surface would be indistinguishable from "nobody visited". Consistent
|
|
780
|
+
with its `/intent/pages/*` siblings, this raises 503 instead so a caller
|
|
781
|
+
can tell a degraded backend from a genuine zero.
|
|
782
|
+
|
|
783
|
+
**Input**
|
|
784
|
+
|
|
785
|
+
| Field | Type | Required | Description |
|
|
786
|
+
|---|---|---|---|
|
|
787
|
+
| `body` | `UrlCompaniesRequest` | yes | Request body; fields below. |
|
|
788
|
+
|
|
789
|
+
Body fields (`UrlCompaniesRequest`):
|
|
790
|
+
|
|
791
|
+
| Field | Type | Required | Description |
|
|
792
|
+
|---|---|---|---|
|
|
793
|
+
| `body.url` | `string` | yes | Canonical page_url (no scheme, no www) |
|
|
794
|
+
| `body.days` | `integer` | no | default `90`, min 1, max 365 |
|
|
795
|
+
| `body.limit` | `integer` | no | default `200`, min 1, max 500 |
|
|
796
|
+
|
|
797
|
+
**Returns** `unknown`.
|
|
798
|
+
|
|
799
|
+
**Example**
|
|
800
|
+
|
|
801
|
+
```ts
|
|
802
|
+
const result = await g8.api.intent.urlCompanies({ body: { url: "https://example.com" } });
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
---
|
|
806
|
+
|
|
807
|
+
## Referenced types
|
|
808
|
+
|
|
809
|
+
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
810
|
+
|
|
811
|
+
<a id="type-intentpageitem"></a>
|
|
812
|
+
|
|
813
|
+
### `IntentPageItem`
|
|
814
|
+
|
|
815
|
+
| Field | Type | Required | Description |
|
|
816
|
+
|---|---|---|---|
|
|
817
|
+
| `audience` | `string \| null` | no | |
|
|
818
|
+
| `commercial_score` | `number \| null` | no | |
|
|
819
|
+
| `domain_root` | `string \| null` | no | |
|
|
820
|
+
| `mention_score` | `number \| null` | no | |
|
|
821
|
+
| `page_type` | `string \| null` | no | |
|
|
822
|
+
| `summary` | `string \| null` | no | |
|
|
823
|
+
| `title` | `string \| null` | no | |
|
|
824
|
+
| `url` | `string \| null` | no | |
|
|
825
|
+
|
|
826
|
+
<a id="type-keywordaddeditem"></a>
|
|
827
|
+
|
|
828
|
+
### `KeywordAddedItem`
|
|
829
|
+
|
|
830
|
+
| Field | Type | Required | Description |
|
|
831
|
+
|---|---|---|---|
|
|
832
|
+
| `id` | `string` | yes | |
|
|
833
|
+
| `keyword` | `string` | yes | Stored (lowercased) keyword text. |
|
|
834
|
+
| `signal_type` | `string` | yes | |
|
|
835
|
+
| `created_at` | `string (date-time) \| null` | no | |
|
|
836
|
+
|
|
837
|
+
<a id="type-keywordcreatefromsearchitem"></a>
|
|
838
|
+
|
|
839
|
+
### `KeywordCreateFromSearchItem`
|
|
840
|
+
|
|
841
|
+
| Field | Type | Required | Description |
|
|
842
|
+
|---|---|---|---|
|
|
843
|
+
| `keyword` | `string` | yes | |
|
|
844
|
+
| `status` | `string` | yes | 'created' \| 'skipped' \| 'error' |
|
|
845
|
+
| `companies_seeded` | `integer` | no | default `0` |
|
|
846
|
+
| `contacts_seeded` | `integer` | no | default `0` |
|
|
847
|
+
| `error` | `string \| null` | no | |
|
|
848
|
+
| `keyword_id` | `string \| null` | no | |
|
|
849
|
+
| `pages_seeded` | `integer` | no | default `0` |
|
|
850
|
+
|
|
851
|
+
<a id="type-keywordsaddskippeditem"></a>
|
|
852
|
+
|
|
853
|
+
### `KeywordsAddSkippedItem`
|
|
854
|
+
|
|
855
|
+
| Field | Type | Required | Description |
|
|
856
|
+
|---|---|---|---|
|
|
857
|
+
| `keyword` | `string` | yes | |
|
|
858
|
+
| `reason` | `string` | yes | 'empty' \| 'duplicate_in_request' \| 'already_exists' |
|