@trillboards/api-client 3.1.15 → 3.2.1
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 +74 -3
- package/dist/chunk-JLSS2URG.mjs +18 -0
- package/dist/chunk-JLSS2URG.mjs.map +1 -0
- package/dist/generated.d.mts +625 -28
- package/dist/generated.d.ts +625 -28
- package/dist/generated.js +4 -4
- package/dist/generated.js.map +1 -1
- package/dist/generated.mjs +1 -1
- package/dist/index.d.mts +187 -10
- package/dist/index.d.ts +187 -10
- package/dist/index.js +219 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +216 -16
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -1
- package/dist/chunk-X2AIWEHJ.mjs +0 -18
- package/dist/chunk-X2AIWEHJ.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Official TypeScript SDK for the Trillboards DOOH Partner API.
|
|
|
8
8
|
npm install @trillboards/api-client
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Requires Node.js 18
|
|
11
|
+
Requires Node.js 18+. REST uses native `fetch`; media buying uses the official MCP client and streaming uses its shared SSE parser. Keep buying credentials in your server application.
|
|
12
12
|
|
|
13
13
|
## Quick Start
|
|
14
14
|
|
|
@@ -41,9 +41,80 @@ const { data: earnings } = await client.earnings.get({ period: 'month' });
|
|
|
41
41
|
| `client.webhooks` | `list`, `create`, `update`, `delete`, `test` |
|
|
42
42
|
| `client.fleet` | `pushCommand`, `listCommands` |
|
|
43
43
|
| `client.audience` | `getLive`, `getHeatmap`, `getStats` |
|
|
44
|
-
| `client.data` | `getVenueIntelligence`, `getUsage` |
|
|
44
|
+
| `client.data` | `getVenueIntelligence`, `getUsage`, `listScreens`, `getHistory`, `getAudience`, `query`, `stream` |
|
|
45
45
|
| `client.errors` | `list`, `get` |
|
|
46
|
-
| `client.billing` | `get`, `getStripeStatus`, `requestPayout` |
|
|
46
|
+
| `client.billing` | `setup`, `createCreditCheckout`, `purchaseCredits`, `getUsageSummary`, `get`, `getStripeStatus`, `requestPayout` |
|
|
47
|
+
| `client.mediaBuys` | `getProducts`, `discoverInventory`, `listAccounts`, `syncAccounts`, `create`, `list`, `update`, `syncCreatives`, `getDelivery`, `close` |
|
|
48
|
+
| `client.creativeExperiments` | `create`, `get`, `configureBrand`, `generate`, `importCreative`, `review`, `registerVariants`, `updatePolicy`, `getRewards`, `stop` |
|
|
49
|
+
|
|
50
|
+
## Fund and run a creative feedback loop
|
|
51
|
+
|
|
52
|
+
Use the [Creative AI Feedback Loop](https://api.trillboards.com/docs/guides/integrations/creative-feedback) for complete buying, creative review, serving and correction-aware reward examples. The same partner key works with REST and native MCP buying tools.
|
|
53
|
+
|
|
54
|
+
Create a credit checkout with a stable key for this exact purchase, then open the returned Stripe URL:
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
const checkout = await client.billing.createCreditCheckout(
|
|
58
|
+
{ tier: 'tier_500' },
|
|
59
|
+
{ idempotencyKey: 'my-first-credit-checkout-v1' },
|
|
60
|
+
);
|
|
61
|
+
console.log(checkout.checkout_url);
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
After completing payment, read the committed balance:
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
const balance = await client.billing.getUsageSummary();
|
|
68
|
+
console.log(balance.credit_balance_cents, balance.credit_reserved_cents);
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Balances and metered amounts retain their exact decimal strings. A saved payment method alone does not fund delivery. Media uses its accepted quote; API usage uses the published API tariff.
|
|
72
|
+
|
|
73
|
+
Direct `purchaseCredits` can return `requires_action: true` with a `client_secret`. Complete that payment's Stripe authentication, then read the committed balance; retain its `operation_id` and stable key. The SDK returns these fields unchanged. Stripe Checkout handles authentication in the returned browser flow.
|
|
74
|
+
|
|
75
|
+
Discover your account and the live product catalog before creating a buy:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
try {
|
|
79
|
+
const accounts = await client.mediaBuys.listAccounts();
|
|
80
|
+
const products = await client.mediaBuys.getProducts({
|
|
81
|
+
brief: 'Transit screens for a creative attention test',
|
|
82
|
+
pagination: { max_results: 10 },
|
|
83
|
+
});
|
|
84
|
+
console.log(accounts.accounts, products.products, products.pagination);
|
|
85
|
+
} finally {
|
|
86
|
+
await client.mediaBuys.close();
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
`client.mediaBuys.create` takes the native AdCP request, including the account, flight, product/pricing-option identifiers, budget and stable `idempotency_key`. `list` accepts `media_buy_ids` and pagination; `update` accepts the native revision. Preserve `media_buy_id` and `packages[].package_id` for `creativeExperiments.create`. The MCP task's `status` describes task execution; the returned media-buy lifecycle, funding and moderation describe delivery readiness. Always release the MCP connection with `mediaBuys.close()` when finished.
|
|
91
|
+
|
|
92
|
+
## Historical and live data
|
|
93
|
+
|
|
94
|
+
The Data API resources require the scopes declared by their endpoints: `read:live`, `read:historical` or `stream:live`. Screen-list pagination is returned unchanged as `has_more` and `next_offset`. Bounded history reads preserve unmeasured values as `null`.
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
const history = await client.data.getHistory('YOUR_SCREEN_ID', {
|
|
98
|
+
since: '2026-10-01T00:00:00Z',
|
|
99
|
+
until: '2026-10-02T00:00:00Z',
|
|
100
|
+
limit: 100,
|
|
101
|
+
});
|
|
102
|
+
console.log(history.metrics);
|
|
103
|
+
|
|
104
|
+
const controller = new AbortController();
|
|
105
|
+
try {
|
|
106
|
+
for await (const event of client.data.stream({}, { signal: controller.signal })) {
|
|
107
|
+
console.log(event.event, event.data);
|
|
108
|
+
if (event.event === 'audience') break;
|
|
109
|
+
}
|
|
110
|
+
} finally {
|
|
111
|
+
controller.abort();
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The stream forwards `connected`, `audience` and in-band `error` events. Breaking iteration or aborting closes the connection. It is a live tail: reconnect explicitly and use bounded history reads to recover historical data. Creative reward corrections use the guide's canonical-key/revision scan protocol.
|
|
116
|
+
|
|
117
|
+
MCP tool failures throw `McpToolError` with the exact `tool` and original `result`, including structured error codes and receipts. Protocol/HTTP errors from the official MCP transport remain intact. REST failures use `TrillboardsError`.
|
|
47
118
|
|
|
48
119
|
### Content fit
|
|
49
120
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
5
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
// src/generated/index.ts
|
|
9
|
+
var generatedTypes = {
|
|
10
|
+
schemaCount: 191,
|
|
11
|
+
operationCount: 237,
|
|
12
|
+
schemas: ["Ad", "AdSettings", "AdvertisingIdentity", "AnalyticsData", "AudienceAnalyticsResponse", "AudienceAttentionPrediction", "AudienceData", "AudienceExportResponse", "AudienceLoyaltyFeaturesRow", "AudienceMetricsResponse", "AudienceSegment", "AudienceSocialAttention", "BatchResult", "BillingInfo", "BleScanResultData", "CanonicalError", "ChangelogEntry", "ChangelogResponse", "CompletedImpressions", "ContentFitSettings", "ContentPreferencesInput", "ContentPreferencesResponse", "ContentPreset", "CreatePartnerSensingRouteRequest", "CreativeClassification", "CreativeRewardsReadyEvent", "DashboardResponse", "DataApi_AggregateResponse", "DataApi_Error", "DataApi_ErrorCode", "DataApi_ExampleHealthcheckResponse", "DataApi_FeedbackRewardQuery", "DataApi_LookalikeResponse", "DataApi_QueryDslBody", "DataApi_QueryDslResponse", "DataApi_QueryFilter", "DataApi_QueryOrderBy", "DataApi_ScreenAudienceResponse", "DataApi_ScreenHistoryResponse", "DataApi_ScreensListResponse", "DataApi_SemanticSearchResponse", "DataApi_StatsResponse", "DataApi_StreamResponse", "DataApi_UsageResponse", "DataExportSummaryResponse", "DemandPartners", "DemographicsResponse", "Device", "DeviceAuthRefusal", "DeviceCapabilityPayload", "DeviceSummary", "DisplaySettingsInput", "DisplaySettingsResponse", "EarnerScreens", "EarningsBreakdownResponse", "EarningsData", "EarningsResponse", "EarningsSources", "Error", "ErrorCode", "ErrorCodeResponse", "ErrorEntry", "ErrorEnvelope", "ErrorListItem", "ErrorListResponse", "ErrorType", "ExtendedIdentity", "FeedbackBrand", "FeedbackBrandRequest", "FeedbackBrandResponse", "FeedbackCreateRequest", "FeedbackCreativeReview", "FeedbackExperiment", "FeedbackExperimentDetail", "FeedbackExperimentDetailResponse", "FeedbackExperimentResponse", "FeedbackGenerateRequest", "FeedbackGenerateResponse", "FeedbackGeneratedCreative", "FeedbackImportRequest", "FeedbackPolicyRequest", "FeedbackRecoveredCreative", "FeedbackRegisterVariantsRequest", "FeedbackReviewRequest", "FeedbackReviewResponse", "FeedbackRewardQuery", "FeedbackRewardRow", "FeedbackRewards", "FeedbackRewardsResponse", "FeedbackStopRequest", "FeedbackVariant", "FleetCommand", "FleetCommandEvent", "HeaderBiddingSettings", "HttpProbeResult", "HybridError", "Impression", "LegacyCodedError", "LegacyError", "Mcp_create_media_buy_Args", "Mcp_discover_inventory_Args", "Mcp_get_media_buy_delivery_Args", "Mcp_get_media_buys_Args", "Mcp_get_products_Args", "Mcp_list_accounts_Args", "Mcp_sync_accounts_Args", "Mcp_sync_creatives_Args", "Mcp_update_media_buy_Args", "MdnsNetworkDevice", "MeasurementMethodology", "OpenrtbRevenueScreenHourly", "Pagination", "Partner", "PartnerAdDeliveryProfile", "PartnerCreativeWarnings", "PartnerDefaultStream", "PartnerDefaultStreamCreate", "PartnerDefaultStreamUpdate", "PartnerDeviceBatchRegistrationInput", "PartnerDeviceHeartbeatBody", "PartnerDevicePlay", "PartnerDeviceRegistrationInput", "PartnerHeartbeatCommand", "PartnerHeartbeatData", "PartnerHeartbeatMeasurementMetadata", "PartnerHeartbeatQueryData", "PartnerHeartbeatQueryResponse", "PartnerHeartbeatRequest", "PartnerHeartbeatResponse", "PartnerHeartbeatTelemetry", "PartnerInteraction", "PartnerLBarContent", "PartnerLBarDisplayPreferences", "PartnerLBarSettings", "PartnerLocationCapability", "PartnerLocationRail", "PartnerMonetizationRequirements", "PartnerNetworkConfig", "PartnerNetworkConfigUpdate", "PartnerPlay", "PartnerReconciliationReports", "PartnerRegistrationDisplaySettings", "PartnerRequirement", "PartnerSafeHeartbeatTelemetry", "PartnerSelfPromoAd", "PartnerSelfPromoCreate", "PartnerSelfPromoPlacement", "PartnerStats", "PartnerTripState", "PartnerVariants", "PartnerZoneCpmDaily", "PayoutResponse", "PlaygroundResult", "PlaygroundValidationError", "ProgrammaticSettingsInput", "ProgrammaticSettingsResponse", "RequestMetadataResponse", "ResolvedContentPolicy", "ResolvedSensingConfig", "RolePermissions", "SDKConfig", "Screen", "ScreenAnalyticsResponse", "ScreenGroup", "ScreenGroupContentPolicy", "ScreenGroupContentPolicyInput", "ScreenGroupEvent", "ScreenGroupSensingConfig", "ScreenGroupSensingConfigInput", "SensingPerformanceMode", "SensingRoute", "SensingRouteAction", "SensingRouteCondition", "SensingRouteReviewTimingMode", "SensingRouteReviewWaitSeconds", "SensingRouteScreenFocusRegion", "SensingSettingsResponse", "SensingThresholdCrossedEvent", "SsdpDeviceInfo", "TeamInviteResponse", "TeamMember", "Transaction", "TrillboardsError", "UpdatePartnerSensingRouteRequest", "VastWaterfall", "VastWaterfallSource", "Webhook", "WebhookDelivery", "WebhookEvent", "WifiEnvironmentSnapshot", "WifiScanResult"],
|
|
13
|
+
operations: ["queryChangelog", "dataApiAggregate", "dataApiLookalikeScreens", "dataApiQueryDsl", "dataApiListScreens", "dataApiScreenAudienceLive", "dataApiScreenAudienceHistory", "dataApiSemanticSearch", "dataApiStats", "dataApiStream", "dataApiUsage", "listErrorCodes", "getErrorCode", "exampleHealthcheck", "listPartnerSelfPromoAds", "createPartnerSelfPromoAd", "listPartnerSelfPromoPlacements", "schedulePartnerSelfPromo", "createPartnerSelfPromoUpload", "disableSelfPromoAd", "registerAgent", "getAnalytics", "getAudienceContinuity", "getAudienceProfile", "getBleSummary", "getContentPerformance", "searchCreativeCatalog", "getCreativeScenes", "getCrossScreenFlow", "getPartnerAnalyticsDashboard", "getDeviceSuiteSignature", "exportPartnerAnalytics", "exportPartnerAdsByDay", "getFleetHourly", "getHaloFunnel", "getLoyaltyClock", "getNetworkSummary", "getNetworkTrend", "getProximitySummary", "getRevenueAttentionCorrelation", "getSceneFeed", "getSceneIntelligence", "rotateApiKey", "getAudienceAnalytics", "exportAudienceData", "getAudienceHeatmap", "getLiveAudience", "getLookalikeScreens", "predictScreenAudience", "getResolvedHouseholdReach", "listAudienceSegments", "createAudienceSegment", "deleteAudienceSegment", "getAudienceSegment", "updateAudienceSegment", "matchAudienceSegment", "estimateSegmentReach", "generateSegmentVastTag", "getAudienceStats", "cancelBillingSubscription", "purchaseCredits", "createCreditCheckout", "listBillingPlans", "setupBilling", "createBillingSubscription", "getBillingSubscription", "getBillingUsage", "getBillingUsageSummary", "stripeWebhookCallback", "getConnectDashboard", "getConnectEarningsChart", "getConnectScreenHealth", "listContentPresets", "getContentPreset", "createCreativeFeedbackExperiment", "getCreativeFeedbackExperiment", "configureCreativeFeedbackBrand", "generateCreativeFeedbackCreative", "importCreativeFeedbackCreative", "reviewCreativeFeedbackCreative", "updateCreativeFeedbackPolicy", "getCreativeFeedbackRewards", "stopCreativeFeedbackExperiment", "registerCreativeFeedbackVariants", "submitPartnerCreative", "getPartnerCreative", "getDashboard", "exportProximityGraphEdges", "getDataExportSummary", "exportDataset", "getGeohashAudiencePanel", "getOutcomeAttribution", "registerDevice", "deleteDevice", "getDevice", "updateDevice", "getAdsForDevice", "ackDeviceCommand", "getDeviceHeartbeat", "heartbeat", "recordPartnerDeviceInteraction", "recordPartnerDevicePlay", "recordProgrammaticEvent", "recordPartnerDeviceTripState", "listDevices", "registerDeviceV2", "registerDevicesBatch", "batchUpdateDeviceOrientation", "reconcileDevices", "partnerDocsBrowser", "getEarnings", "getEarningsBreakdown", "requestPayout", "getTransactions", "getActiveSSEConnections", "subscribeToEvents", "getFleetCommand", "getFleetAnalytics", "pushFleetCommand", "getFleetOverview", "updateFleetSettings", "recordImpressionGet", "recordImpressionPost", "recordImpressionsBatch", "getPartnerInfo", "listIntentCategories", "getIntentCategory", "getIntentPricing", "getMeasurementMethodology", "getMeasurementMethodologyJson", "getNetworkConfig", "patchNetworkConfig", "updateNetworkConfig", "getNetworkTrends", "partnerPing", "partnerPingAuth", "recordPartnerPlay", "recordPartnerPlaysBatch", "getPricing", "recordProgrammaticEventLegacyAlias", "quickStart", "registerPartner", "generateSandboxEvent", "resetSandbox", "createSandboxScreen", "getSandboxStatus", "listScreenGroups", "createScreenGroup", "deleteScreenGroup", "getScreenGroup", "updateScreenGroup", "getScreenGroupAnalytics", "createScreenGroupCommand", "getScreenGroupContentPolicy", "updateScreenGroupContentPolicy", "removeScreenGroupMembers", "listScreenGroupMembers", "addScreenGroupMembers", "getScreenGroupSensingConfig", "updateScreenGroupSensingConfig", "getScreenAudienceSegments", "batchUpdateContentPreferences", "batchUpdateDisplaySettings", "batchUpdateProgrammaticSettings", "resolvePartnerScreen", "getScreenAnalytics", "getPartnerScreenAtmosphere", "getPartnerScreenIntelligence", "getPartnerScreenTasteProfile", "getPartnerScreenTraffic", "getPartnerScreenVAS", "applyContentPreset", "getAudienceMetrics", "getContentPreferences", "patchContentPreferences", "updateContentPreferences", "listPartnerDefaultStreams", "createPartnerDefaultStream", "createPartnerDefaultStreamImages", "reorderPartnerDefaultStreams", "createPartnerDefaultStreamUpload", "deletePartnerDefaultStream", "updatePartnerDefaultStream", "getScreenDemographics", "getDisplaySettings", "patchDisplaySettings", "updateDisplaySettings", "getPartnerLBarSettings", "updatePartnerLBarSettings", "updatePartnerLBarLiveUpdates", "getProgrammaticSettings", "patchProgrammaticSettings", "updateProgrammaticSettings", "getResolvedContentPolicy", "getResolvedSensingConfig", "getScreenSensingChips", "interpretScreenSensingIntent", "deployScreenSensingProfile", "getScreenSensingSettings", "updateScreenSensingSettings", "listPartnerSensingRoutes", "createPartnerSensingRoute", "deletePartnerSensingRoute", "getPartnerSensingRoute", "updatePartnerSensingRoute", "createStripeConnectAccount", "getStripeLoginLink", "getStripeOnboardingLink", "requestStripePayout", "getStripePayoutHistory", "getStripeAccountStatus", "handleStripeWebhook", "listTeamMembers", "acceptInvitation", "inviteTeamMember", "getInvitationByToken", "resendInvitation", "removeTeamMember", "changeTeamMemberRole", "getTrackingPublicKey", "recordTrackingBatch", "getUsageSummary", "getUsageDashboard", "getRateLimitStatus", "getVastConfig", "getVenuesNearby", "getVenueAtmosphere", "getVenueTraffic", "getVenueIntelligence", "listWebhooks", "createWebhook", "deleteWebhook", "updateWebhook", "getWebhookDeliveries", "testWebhook", "playgroundDryRun", "getRequestMetadata"]
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { __require, generatedTypes };
|
|
17
|
+
//# sourceMappingURL=chunk-JLSS2URG.mjs.map
|
|
18
|
+
//# sourceMappingURL=chunk-JLSS2URG.mjs.map
|