@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,277 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.usage` (Usage): 9 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"get_billing_product_billing_products__product_id__get">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: usage.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.usage.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface UsageMembers {
|
|
16
|
+
getBillingProduct: "get_billing_product_billing_products__product_id__get";
|
|
17
|
+
getCompanyBilling: "get_company_billing_companies__company_id__billing_get";
|
|
18
|
+
getCreditHolds: "get_credit_holds_usage_holds_get";
|
|
19
|
+
getDomainPricing: "get_domain_pricing_usage_pricing_domains__tld__get";
|
|
20
|
+
getLlmPricing: "get_llm_pricing_usage_pricing_llm_get";
|
|
21
|
+
getSubscriptionStatus: "get_subscription_status_usage_subscription_get";
|
|
22
|
+
getUsage: "get_usage_usage_get";
|
|
23
|
+
listBillingProducts: "list_billing_products_billing_products_get";
|
|
24
|
+
listUsageTransactions: "list_usage_transactions_usage_transactions_get";
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** Input and output of every `g8.api.usage` operation, keyed by operationId. */
|
|
28
|
+
export interface UsageOperations {
|
|
29
|
+
/**
|
|
30
|
+
* GET /billing/products/{product_id}
|
|
31
|
+
* Get Billing Product
|
|
32
|
+
* tier: read · scope: analytics:read
|
|
33
|
+
*/
|
|
34
|
+
get_billing_product_billing_products__product_id__get: {
|
|
35
|
+
input: {
|
|
36
|
+
path: {
|
|
37
|
+
/** Product id from `GET /billing/products`. */
|
|
38
|
+
product_id: string;
|
|
39
|
+
};
|
|
40
|
+
headers?: {
|
|
41
|
+
"X-Target-Org-Id"?: string | null;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
output: ApiResponse_ReportPayload_;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* GET /companies/{company_id}/billing
|
|
48
|
+
* Get Company Billing
|
|
49
|
+
* tier: read · scope: analytics:read
|
|
50
|
+
*/
|
|
51
|
+
get_company_billing_companies__company_id__billing_get: {
|
|
52
|
+
input: {
|
|
53
|
+
path: {
|
|
54
|
+
company_id: number;
|
|
55
|
+
};
|
|
56
|
+
query?: {
|
|
57
|
+
/** Invoices to return, newest first. 50 is a hard ceiling in the app, applied whatever is sent - declared honestly here so an over-large value is a 422 rather than a silently smaller answer. */
|
|
58
|
+
invoice_limit?: number;
|
|
59
|
+
};
|
|
60
|
+
headers?: {
|
|
61
|
+
"X-Target-Org-Id"?: string | null;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
output: ApiResponse_ReportPayload_;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* GET /usage/holds
|
|
68
|
+
* Get Credit Holds
|
|
69
|
+
* tier: read · scope: analytics:read
|
|
70
|
+
*/
|
|
71
|
+
get_credit_holds_usage_holds_get: {
|
|
72
|
+
input: {
|
|
73
|
+
headers?: {
|
|
74
|
+
"X-Target-Org-Id"?: string | null;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
output: ApiResponse_ReportPayload_;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* GET /usage/pricing/domains/{tld}
|
|
81
|
+
* Get Domain Pricing
|
|
82
|
+
* tier: read · scope: analytics:read
|
|
83
|
+
*/
|
|
84
|
+
get_domain_pricing_usage_pricing_domains__tld__get: {
|
|
85
|
+
input: {
|
|
86
|
+
path: {
|
|
87
|
+
/** Top-level domain, with or without the leading dot - `com` and `.com` both resolve. */
|
|
88
|
+
tld: string;
|
|
89
|
+
};
|
|
90
|
+
headers?: {
|
|
91
|
+
"X-Target-Org-Id"?: string | null;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
output: ApiResponse_ReportPayload_;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* GET /usage/pricing/llm
|
|
98
|
+
* Get Llm Pricing
|
|
99
|
+
* tier: read · scope: analytics:read
|
|
100
|
+
*/
|
|
101
|
+
get_llm_pricing_usage_pricing_llm_get: {
|
|
102
|
+
input: {
|
|
103
|
+
query: {
|
|
104
|
+
/** Pricing tier, e.g. `g8_t1`. The same value that appears in the `llm_tier` column of `GET /usage/transactions`, which is where to find the tier a given operation actually bills at. */
|
|
105
|
+
llm_tier: string;
|
|
106
|
+
/** Prompt tokens. */
|
|
107
|
+
input_tokens?: number;
|
|
108
|
+
/** Completion tokens. */
|
|
109
|
+
output_tokens?: number;
|
|
110
|
+
};
|
|
111
|
+
headers?: {
|
|
112
|
+
"X-Target-Org-Id"?: string | null;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
output: ApiResponse_ReportPayload_;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* GET /usage/subscription
|
|
119
|
+
* Get Subscription Status
|
|
120
|
+
* tier: read · scope: analytics:read
|
|
121
|
+
*/
|
|
122
|
+
get_subscription_status_usage_subscription_get: {
|
|
123
|
+
input: {
|
|
124
|
+
headers?: {
|
|
125
|
+
"X-Target-Org-Id"?: string | null;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
output: ApiResponse_ReportPayload_;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* GET /usage
|
|
132
|
+
* Get Usage
|
|
133
|
+
* tier: read · scope: usage:read
|
|
134
|
+
*/
|
|
135
|
+
get_usage_usage_get: {
|
|
136
|
+
input: {
|
|
137
|
+
headers?: {
|
|
138
|
+
"X-Target-Org-Id"?: string | null;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
output: ApiResponse_UsageBalanceResponse_;
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* GET /billing/products
|
|
145
|
+
* List Billing Products
|
|
146
|
+
* tier: read · scope: analytics:read
|
|
147
|
+
*/
|
|
148
|
+
list_billing_products_billing_products_get: {
|
|
149
|
+
input: {
|
|
150
|
+
query?: {
|
|
151
|
+
/** Only products currently on sale. */
|
|
152
|
+
active_only?: boolean;
|
|
153
|
+
};
|
|
154
|
+
headers?: {
|
|
155
|
+
"X-Target-Org-Id"?: string | null;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
output: ApiResponse_ReportListPayload_;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* GET /usage/transactions
|
|
162
|
+
* List Usage Transactions
|
|
163
|
+
* tier: read · scope: usage:read
|
|
164
|
+
*/
|
|
165
|
+
list_usage_transactions_usage_transactions_get: {
|
|
166
|
+
input: {
|
|
167
|
+
query?: {
|
|
168
|
+
/** Page number (ignored when `cursor` is supplied) */
|
|
169
|
+
page?: number;
|
|
170
|
+
/** Items per page */
|
|
171
|
+
limit?: number;
|
|
172
|
+
/** Opaque pagination cursor from a prior response's `next_cursor`. When supplied it takes precedence over `page`. */
|
|
173
|
+
cursor?: string | null;
|
|
174
|
+
};
|
|
175
|
+
headers?: {
|
|
176
|
+
"X-Target-Org-Id"?: string | null;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
output: ApiResponse_list_UsageTransactionResponse__;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// 9 schemas referenced above (the same as G8Contract.<Name>).
|
|
184
|
+
|
|
185
|
+
export interface ApiResponse_ReportListPayload_ {
|
|
186
|
+
data: ReportListPayload;
|
|
187
|
+
pagination?: PaginationMeta | null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface ApiResponse_ReportPayload_ {
|
|
191
|
+
data: ReportPayload;
|
|
192
|
+
pagination?: PaginationMeta | null;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export interface ApiResponse_UsageBalanceResponse_ {
|
|
196
|
+
data: UsageBalanceResponse;
|
|
197
|
+
pagination?: PaginationMeta | null;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export interface ApiResponse_list_UsageTransactionResponse__ {
|
|
201
|
+
data: Array<UsageTransactionResponse>;
|
|
202
|
+
pagination?: PaginationMeta | null;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export interface PaginationMeta {
|
|
206
|
+
/** Whether there are more pages */
|
|
207
|
+
has_next: boolean;
|
|
208
|
+
/** Items per page */
|
|
209
|
+
limit: number;
|
|
210
|
+
/** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
|
|
211
|
+
next_cursor?: string | null;
|
|
212
|
+
/** Current page number (1-indexed) */
|
|
213
|
+
page: number;
|
|
214
|
+
/** Total number of items */
|
|
215
|
+
total: number;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* An OPEN envelope for a report that answers with a bare LIST.
|
|
220
|
+
*
|
|
221
|
+
* A bare list is reachable as `items`; a named list (`{"counts": {...}}`)
|
|
222
|
+
* keeps its own key AND gains `items`, so a caller can read either shape
|
|
223
|
+
* without branching.
|
|
224
|
+
*/
|
|
225
|
+
export interface ReportListPayload {
|
|
226
|
+
items?: Array<unknown>;
|
|
227
|
+
[key: string]: unknown;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* An OPEN envelope around one report's answer.
|
|
232
|
+
*
|
|
233
|
+
* The app wraps every one of these reports in `{success, data, meta}`, where
|
|
234
|
+
* `meta` carries the cache state, the window and - on the agency reports -
|
|
235
|
+
* `failed_org_ids`, the orgs that contributed NOTHING to the totals above.
|
|
236
|
+
* That field is the difference between "this client sent no email" and "we
|
|
237
|
+
* could not query this client", so it is forwarded rather than flattened
|
|
238
|
+
* away.
|
|
239
|
+
*
|
|
240
|
+
* Open on purpose: `data` is `dict | list` in the app and its contents grow
|
|
241
|
+
* with the product. A closed model would turn every new metric into a
|
|
242
|
+
* silently dropped one.
|
|
243
|
+
*/
|
|
244
|
+
export type ReportPayload = Record<string, unknown>;
|
|
245
|
+
|
|
246
|
+
/** An org's current credit balance + lifetime totals. */
|
|
247
|
+
export interface UsageBalanceResponse {
|
|
248
|
+
/** Spendable credits (credits - held) */
|
|
249
|
+
available_credits: number;
|
|
250
|
+
/** Total credit balance */
|
|
251
|
+
credits: number;
|
|
252
|
+
/** Org / customer id the credits belong to */
|
|
253
|
+
customer_id: string;
|
|
254
|
+
/** Credits currently on hold */
|
|
255
|
+
held_credits: number;
|
|
256
|
+
/** Lifetime credits earned */
|
|
257
|
+
total_earned: number;
|
|
258
|
+
/** Lifetime credits used */
|
|
259
|
+
total_used: number;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/** A single credit-ledger transaction. */
|
|
263
|
+
export interface UsageTransactionResponse {
|
|
264
|
+
/** Credit delta (negative = spend) */
|
|
265
|
+
amount?: number;
|
|
266
|
+
created_at?: string | null;
|
|
267
|
+
description?: string | null;
|
|
268
|
+
/** Transaction id */
|
|
269
|
+
id?: string | null;
|
|
270
|
+
/** g8_t1 / g8_t2 / g8_t3 when an LLM charge */
|
|
271
|
+
llm_tier?: string | null;
|
|
272
|
+
quantity?: number | null;
|
|
273
|
+
/** Service the charge was for (e.g. 'ai_enrichment') */
|
|
274
|
+
service?: string | null;
|
|
275
|
+
/** Transaction type (e.g. 'usage', 'purchase') */
|
|
276
|
+
type?: string | null;
|
|
277
|
+
}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.usage`: Usage
|
|
4
|
+
|
|
5
|
+
9 operations (9 read).
|
|
6
|
+
|
|
7
|
+
No hand-written client covers this area. Call it through `g8.api.usage.*` 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: [usage.d.ts](usage.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`getBillingProduct`](#op-getbillingproduct) | `GET /api/v1/billing/products/{product_id}` | read | `analytics:read` | Get Billing Product |
|
|
26
|
+
| [`getCompanyBilling`](#op-getcompanybilling) | `GET /api/v1/companies/{company_id}/billing` | read | `analytics:read` | Get Company Billing |
|
|
27
|
+
| [`getCreditHolds`](#op-getcreditholds) | `GET /api/v1/usage/holds` | read | `analytics:read` | Get Credit Holds |
|
|
28
|
+
| [`getDomainPricing`](#op-getdomainpricing) | `GET /api/v1/usage/pricing/domains/{tld}` | read | `analytics:read` | Get Domain Pricing |
|
|
29
|
+
| [`getLlmPricing`](#op-getllmpricing) | `GET /api/v1/usage/pricing/llm` | read | `analytics:read` | Get Llm Pricing |
|
|
30
|
+
| [`getSubscriptionStatus`](#op-getsubscriptionstatus) | `GET /api/v1/usage/subscription` | read | `analytics:read` | Get Subscription Status |
|
|
31
|
+
| [`getUsage`](#op-getusage) | `GET /api/v1/usage` | read | `usage:read` | Get Usage |
|
|
32
|
+
| [`listBillingProducts`](#op-listbillingproducts) | `GET /api/v1/billing/products` | read | `analytics:read` | List Billing Products |
|
|
33
|
+
| [`listUsageTransactions`](#op-listusagetransactions) | `GET /api/v1/usage/transactions` | read | `usage:read` | List Usage Transactions |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
<a id="op-getbillingproduct"></a>
|
|
38
|
+
|
|
39
|
+
### `g8.api.usage.getBillingProduct(input)`
|
|
40
|
+
|
|
41
|
+
**Get Billing Product**
|
|
42
|
+
|
|
43
|
+
- HTTP: `GET /api/v1/billing/products/{product_id}`
|
|
44
|
+
- operationId: `get_billing_product_billing_products__product_id__get` (also callable as `g8.api.call("get_billing_product_billing_products__product_id__get", input)`)
|
|
45
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
46
|
+
- API-key scope: `analytics:read`
|
|
47
|
+
|
|
48
|
+
One plan or credit pack from the catalogue.
|
|
49
|
+
|
|
50
|
+
**Input**
|
|
51
|
+
|
|
52
|
+
| Field | Type | Required | Description |
|
|
53
|
+
|---|---|---|---|
|
|
54
|
+
| `path.product_id` | `string` | yes | Product id from `GET /billing/products`. |
|
|
55
|
+
|
|
56
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
57
|
+
|
|
58
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
59
|
+
|
|
60
|
+
**Example**
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
const result = await g8.api.usage.getBillingProduct({ path: { product_id: "id" } });
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
<a id="op-getcompanybilling"></a>
|
|
69
|
+
|
|
70
|
+
### `g8.api.usage.getCompanyBilling(input)`
|
|
71
|
+
|
|
72
|
+
**Get Company Billing**
|
|
73
|
+
|
|
74
|
+
- HTTP: `GET /api/v1/companies/{company_id}/billing`
|
|
75
|
+
- operationId: `get_company_billing_companies__company_id__billing_get` (also callable as `g8.api.call("get_company_billing_companies__company_id__billing_get", input)`)
|
|
76
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
77
|
+
- API-key scope: `analytics:read`
|
|
78
|
+
|
|
79
|
+
What ONE of your customers is paying you: subscription, invoices,
|
|
80
|
+
upcoming charge.
|
|
81
|
+
|
|
82
|
+
Read from the `stripe_*` tables that the per-org Stripe sync populates
|
|
83
|
+
from the customer's OWN connected account, so this is revenue the caller
|
|
84
|
+
receives - not what the caller owes graph8, which is `GET /usage`.
|
|
85
|
+
|
|
86
|
+
`payment_method` is null by design rather than by omission: card data is
|
|
87
|
+
not synced, and the hosted portal is the only place it exists.
|
|
88
|
+
|
|
89
|
+
A company in another org is a 404, not a 403 - the app's own choice, so
|
|
90
|
+
that the API cannot be used to test whether a company id exists somewhere
|
|
91
|
+
else.
|
|
92
|
+
|
|
93
|
+
**Input**
|
|
94
|
+
|
|
95
|
+
| Field | Type | Required | Description |
|
|
96
|
+
|---|---|---|---|
|
|
97
|
+
| `path.company_id` | `integer` | yes | |
|
|
98
|
+
| `query.invoice_limit` | `integer` | no | Invoices to return, newest first. 50 is a hard ceiling in the app, applied whatever is sent - declared honestly here so an over-large value is a 422 rather than a silently smaller answer. default `20` |
|
|
99
|
+
|
|
100
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
101
|
+
|
|
102
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
103
|
+
|
|
104
|
+
**Example**
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
const result = await g8.api.usage.getCompanyBilling({ path: { company_id: 123 } });
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
<a id="op-getcreditholds"></a>
|
|
113
|
+
|
|
114
|
+
### `g8.api.usage.getCreditHolds(input?)`
|
|
115
|
+
|
|
116
|
+
**Get Credit Holds**
|
|
117
|
+
|
|
118
|
+
- HTTP: `GET /api/v1/usage/holds`
|
|
119
|
+
- operationId: `get_credit_holds_usage_holds_get` (also callable as `g8.api.call("get_credit_holds_usage_holds_get", input)`)
|
|
120
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
121
|
+
- API-key scope: `analytics:read`
|
|
122
|
+
|
|
123
|
+
Credits currently RESERVED against work in flight.
|
|
124
|
+
|
|
125
|
+
This is the difference `GET /usage` reports but cannot explain: a hold
|
|
126
|
+
subtracts from `available_credits` without appearing in the transaction
|
|
127
|
+
ledger, because nothing has been spent yet. An operation that reserves
|
|
128
|
+
credits up front and settles later shows up here in between.
|
|
129
|
+
|
|
130
|
+
A balance that looks lower than the ledger says is almost always this.
|
|
131
|
+
|
|
132
|
+
The org is the authenticated key's own. There is no customer parameter on
|
|
133
|
+
this route.
|
|
134
|
+
|
|
135
|
+
**Input**: none.
|
|
136
|
+
|
|
137
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
138
|
+
|
|
139
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
140
|
+
|
|
141
|
+
**Example**
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
const result = await g8.api.usage.getCreditHolds();
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
<a id="op-getdomainpricing"></a>
|
|
150
|
+
|
|
151
|
+
### `g8.api.usage.getDomainPricing(input)`
|
|
152
|
+
|
|
153
|
+
**Get Domain Pricing**
|
|
154
|
+
|
|
155
|
+
- HTTP: `GET /api/v1/usage/pricing/domains/{tld}`
|
|
156
|
+
- operationId: `get_domain_pricing_usage_pricing_domains__tld__get` (also callable as `g8.api.call("get_domain_pricing_usage_pricing_domains__tld__get", input)`)
|
|
157
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
158
|
+
- API-key scope: `analytics:read`
|
|
159
|
+
|
|
160
|
+
What registering a domain on this TLD costs in credits.
|
|
161
|
+
|
|
162
|
+
The price `POST /channels/domains/purchase` will charge. A TLD with no
|
|
163
|
+
pricing row is a 404 rather than a zero - a missing price is not a free
|
|
164
|
+
domain.
|
|
165
|
+
|
|
166
|
+
**Input**
|
|
167
|
+
|
|
168
|
+
| Field | Type | Required | Description |
|
|
169
|
+
|---|---|---|---|
|
|
170
|
+
| `path.tld` | `string` | yes | Top-level domain, with or without the leading dot - `com` and `.com` both resolve. |
|
|
171
|
+
|
|
172
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
173
|
+
|
|
174
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
175
|
+
|
|
176
|
+
**Example**
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
const result = await g8.api.usage.getDomainPricing({ path: { tld: "example" } });
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
<a id="op-getllmpricing"></a>
|
|
185
|
+
|
|
186
|
+
### `g8.api.usage.getLlmPricing(input)`
|
|
187
|
+
|
|
188
|
+
**Get Llm Pricing**
|
|
189
|
+
|
|
190
|
+
- HTTP: `GET /api/v1/usage/pricing/llm`
|
|
191
|
+
- operationId: `get_llm_pricing_usage_pricing_llm_get` (also callable as `g8.api.call("get_llm_pricing_usage_pricing_llm_get", input)`)
|
|
192
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
193
|
+
- API-key scope: `analytics:read`
|
|
194
|
+
|
|
195
|
+
What an LLM operation of this size would cost. Charges nothing.
|
|
196
|
+
|
|
197
|
+
READ `capped` before reading `credits`. Several tiers have a per-operation
|
|
198
|
+
ceiling, and for typical prompt sizes the ceiling is what is actually paid
|
|
199
|
+
- so `credits` stops moving when the prompt grows, and
|
|
200
|
+
`uncapped_credits` is what the token arithmetic alone would have produced.
|
|
201
|
+
A caller that shows `credits` without `capped` gets asked why shortening
|
|
202
|
+
the prompt changed nothing.
|
|
203
|
+
|
|
204
|
+
`found` is false for a tier that does not exist or is not currently
|
|
205
|
+
active; `credits` is then 0, which is not a price.
|
|
206
|
+
|
|
207
|
+
**Input**
|
|
208
|
+
|
|
209
|
+
| Field | Type | Required | Description |
|
|
210
|
+
|---|---|---|---|
|
|
211
|
+
| `query.llm_tier` | `string` | yes | Pricing tier, e.g. `g8_t1`. The same value that appears in the `llm_tier` column of `GET /usage/transactions`, which is where to find the tier a given operation actually bills at. |
|
|
212
|
+
| `query.input_tokens` | `integer` | no | Prompt tokens. default `0` |
|
|
213
|
+
| `query.output_tokens` | `integer` | no | Completion tokens. default `0` |
|
|
214
|
+
|
|
215
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
216
|
+
|
|
217
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
218
|
+
|
|
219
|
+
**Example**
|
|
220
|
+
|
|
221
|
+
```ts
|
|
222
|
+
const result = await g8.api.usage.getLlmPricing({ query: { llm_tier: "example" } });
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
<a id="op-getsubscriptionstatus"></a>
|
|
228
|
+
|
|
229
|
+
### `g8.api.usage.getSubscriptionStatus(input?)`
|
|
230
|
+
|
|
231
|
+
**Get Subscription Status**
|
|
232
|
+
|
|
233
|
+
- HTTP: `GET /api/v1/usage/subscription`
|
|
234
|
+
- operationId: `get_subscription_status_usage_subscription_get` (also callable as `g8.api.call("get_subscription_status_usage_subscription_get", input)`)
|
|
235
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
236
|
+
- API-key scope: `analytics:read`
|
|
237
|
+
|
|
238
|
+
Whether this organisation's subscription is active.
|
|
239
|
+
|
|
240
|
+
Worth checking before anything that spends: a charge against an inactive
|
|
241
|
+
subscription is refused even when the balance is healthy, so "insufficient
|
|
242
|
+
credits" is not the only way spending fails.
|
|
243
|
+
|
|
244
|
+
`raise_on_unavailable` is set, which is the whole point of answering this
|
|
245
|
+
as its own route rather than as a boolean somewhere else: without it an
|
|
246
|
+
unreachable billing service and an authoritatively-inactive subscription
|
|
247
|
+
both answer `false`, and those two mean opposite things. Unreachable
|
|
248
|
+
becomes a 503 here; `false` means false.
|
|
249
|
+
|
|
250
|
+
**Input**: none.
|
|
251
|
+
|
|
252
|
+
**Returns** `ApiResponse_ReportPayload_`: the envelope `{ data: ReportPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
253
|
+
|
|
254
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
255
|
+
|
|
256
|
+
**Example**
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
const result = await g8.api.usage.getSubscriptionStatus();
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
<a id="op-getusage"></a>
|
|
265
|
+
|
|
266
|
+
### `g8.api.usage.getUsage(input?)`
|
|
267
|
+
|
|
268
|
+
**Get Usage**
|
|
269
|
+
|
|
270
|
+
- HTTP: `GET /api/v1/usage`
|
|
271
|
+
- operationId: `get_usage_usage_get` (also callable as `g8.api.call("get_usage_usage_get", input)`)
|
|
272
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
273
|
+
- API-key scope: `usage:read`
|
|
274
|
+
|
|
275
|
+
Current credit balance for the authenticated org — total, held, available, and lifetime totals.
|
|
276
|
+
|
|
277
|
+
**Input**: none.
|
|
278
|
+
|
|
279
|
+
**Returns** `ApiResponse_UsageBalanceResponse_`: the envelope `{ data: UsageBalanceResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
280
|
+
|
|
281
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
282
|
+
|
|
283
|
+
`UsageBalanceResponse` fields:
|
|
284
|
+
|
|
285
|
+
| Field | Type | Required | Description |
|
|
286
|
+
|---|---|---|---|
|
|
287
|
+
| `available_credits` | `number` | yes | Spendable credits (credits - held) |
|
|
288
|
+
| `credits` | `number` | yes | Total credit balance |
|
|
289
|
+
| `customer_id` | `string` | yes | Org / customer id the credits belong to |
|
|
290
|
+
| `held_credits` | `number` | yes | Credits currently on hold |
|
|
291
|
+
| `total_earned` | `number` | yes | Lifetime credits earned |
|
|
292
|
+
| `total_used` | `number` | yes | Lifetime credits used |
|
|
293
|
+
|
|
294
|
+
**Example**
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
const result = await g8.api.usage.getUsage();
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
<a id="op-listbillingproducts"></a>
|
|
303
|
+
|
|
304
|
+
### `g8.api.usage.listBillingProducts(input?)`
|
|
305
|
+
|
|
306
|
+
**List Billing Products**
|
|
307
|
+
|
|
308
|
+
- HTTP: `GET /api/v1/billing/products`
|
|
309
|
+
- operationId: `list_billing_products_billing_products_get` (also callable as `g8.api.call("list_billing_products_billing_products_get", input)`)
|
|
310
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
311
|
+
- API-key scope: `analytics:read`
|
|
312
|
+
|
|
313
|
+
The plans and credit packs graph8 sells, with their prices.
|
|
314
|
+
|
|
315
|
+
The same catalogue the Billing page renders. It is not per-organisation -
|
|
316
|
+
every caller sees the same list - which is why this is one of the very few
|
|
317
|
+
credit-server reads that can be published without a customer parameter.
|
|
318
|
+
|
|
319
|
+
**Input**
|
|
320
|
+
|
|
321
|
+
| Field | Type | Required | Description |
|
|
322
|
+
|---|---|---|---|
|
|
323
|
+
| `query.active_only` | `boolean` | no | Only products currently on sale. default `true` |
|
|
324
|
+
|
|
325
|
+
**Returns** `ApiResponse_ReportListPayload_`: the envelope `{ data: ReportListPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
326
|
+
|
|
327
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
328
|
+
|
|
329
|
+
`ReportListPayload` fields:
|
|
330
|
+
|
|
331
|
+
| Field | Type | Required | Description |
|
|
332
|
+
|---|---|---|---|
|
|
333
|
+
| `items` | `Array<unknown>` | no | |
|
|
334
|
+
|
|
335
|
+
**Example**
|
|
336
|
+
|
|
337
|
+
```ts
|
|
338
|
+
const result = await g8.api.usage.listBillingProducts();
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
<a id="op-listusagetransactions"></a>
|
|
344
|
+
|
|
345
|
+
### `g8.api.usage.listUsageTransactions(input?)`
|
|
346
|
+
|
|
347
|
+
**List Usage Transactions**
|
|
348
|
+
|
|
349
|
+
- HTTP: `GET /api/v1/usage/transactions`
|
|
350
|
+
- operationId: `list_usage_transactions_usage_transactions_get` (also callable as `g8.api.call("list_usage_transactions_usage_transactions_get", input)`)
|
|
351
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
352
|
+
- API-key scope: `usage:read`
|
|
353
|
+
|
|
354
|
+
Paginated credit-transaction ledger for the authenticated org (most recent first).
|
|
355
|
+
|
|
356
|
+
Supports both page-number pagination (`page`/`limit`) and opaque cursor
|
|
357
|
+
pagination (`cursor`). When `cursor` is supplied it wins; the response always
|
|
358
|
+
returns `next_cursor` for forward iteration.
|
|
359
|
+
|
|
360
|
+
**Input**
|
|
361
|
+
|
|
362
|
+
| Field | Type | Required | Description |
|
|
363
|
+
|---|---|---|---|
|
|
364
|
+
| `query.page` | `integer` | no | Page number (ignored when `cursor` is supplied) default `1` |
|
|
365
|
+
| `query.limit` | `integer` | no | Items per page default `50` |
|
|
366
|
+
| `query.cursor` | `string \| null` | no | Opaque pagination cursor from a prior response's `next_cursor`. When supplied it takes precedence over `page`. |
|
|
367
|
+
|
|
368
|
+
**Returns** `ApiResponse_list_UsageTransactionResponse__`: the envelope `{ data: Array<UsageTransactionResponse>, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
369
|
+
|
|
370
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
371
|
+
|
|
372
|
+
`UsageTransactionResponse` fields:
|
|
373
|
+
|
|
374
|
+
| Field | Type | Required | Description |
|
|
375
|
+
|---|---|---|---|
|
|
376
|
+
| `amount` | `number` | no | Credit delta (negative = spend) default `0` |
|
|
377
|
+
| `created_at` | `string \| null` | no | |
|
|
378
|
+
| `description` | `string \| null` | no | |
|
|
379
|
+
| `id` | `string \| null` | no | Transaction id |
|
|
380
|
+
| `llm_tier` | `string \| null` | no | g8_t1 / g8_t2 / g8_t3 when an LLM charge |
|
|
381
|
+
| `quantity` | `integer \| null` | no | |
|
|
382
|
+
| `service` | `string \| null` | no | Service the charge was for (e.g. 'ai_enrichment') |
|
|
383
|
+
| `type` | `string \| null` | no | Transaction type (e.g. 'usage', 'purchase') |
|
|
384
|
+
|
|
385
|
+
**Example**
|
|
386
|
+
|
|
387
|
+
```ts
|
|
388
|
+
const result = await g8.api.usage.listUsageTransactions();
|
|
389
|
+
```
|