@lessly/sdk-app 83.3.0 → 83.4.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.
@@ -90532,378 +90532,6 @@ export interface OrganizationYoutubeInstallOutput {
90532
90532
  url: string
90533
90533
  }
90534
90534
 
90535
- export interface PlaygroundAnalyticsOverviewInput {
90536
- /**
90537
- * Max records per entity in recent[]; omit for the endpoint default
90538
- */
90539
- limit?: number
90540
- }
90541
-
90542
- export interface PlaygroundAnalyticsOverviewOutput {
90543
- ok: boolean
90544
- minted: boolean
90545
- overview?: unknown
90546
- http_status: number
90547
- }
90548
-
90549
- export interface PlaygroundBillingEntitlementsInput {
90550
-
90551
- }
90552
-
90553
- export interface PlaygroundBillingEntitlementsOutput {
90554
- ok: boolean
90555
- minted: boolean
90556
- http_status: number
90557
- entitlements?: unknown
90558
- }
90559
-
90560
- export interface PlaygroundBillingRecordUsageInput {
90561
- /**
90562
- * Quantity of events to record against playground-events (SUM); defaults to 1
90563
- */
90564
- value?: number
90565
- }
90566
-
90567
- export interface PlaygroundBillingRecordUsageOutput {
90568
- minted: boolean
90569
- accepted: (number | null)
90570
- recorded: boolean
90571
- duplicates: (number | null)
90572
- http_status: number
90573
- }
90574
-
90575
- export interface PlaygroundClickupCreateTaskInput {
90576
- /**
90577
- * Task title; defaults to a fixture label
90578
- */
90579
- name?: string
90580
- /**
90581
- * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
90582
- */
90583
- listId?: string
90584
- }
90585
-
90586
- export interface PlaygroundClickupCreateTaskOutput {
90587
- minted: boolean
90588
- task_id: (string | null)
90589
- list_status: number
90590
- vend_status: number
90591
- clickup_status: number
90592
- installation_count: number
90593
- }
90594
-
90595
- export interface PlaygroundClickupGetLastWebhookInput {
90596
-
90597
- }
90598
-
90599
- export type PlaygroundClickupGetLastWebhookOutput = ({
90600
- payload: string
90601
- event_id: string
90602
- provider: string
90603
- verified: boolean
90604
- product_id: string
90605
- occurred_at: string
90606
- connector_id: string
90607
- clickup_event: (string | null)
90608
- receipt_count: number
90609
- } | {
90610
- found: false
90611
- })
90612
-
90613
- export interface PlaygroundClickupGetOverviewInput {
90614
-
90615
- }
90616
-
90617
- export interface PlaygroundClickupGetOverviewOutput {
90618
- team: ({
90619
- teamId: string
90620
- teamName: string
90621
- } | null)
90622
- lists: PlaygroundClickupGetOverviewOutputItems[]
90623
- tasks: {
90624
- id: string
90625
- name: string
90626
- status: (string | null)
90627
- }[]
90628
- minted: boolean
90629
- spaces: PlaygroundClickupGetOverviewOutputItems[]
90630
- list_status: number
90631
- vend_status: number
90632
- lists_status: number
90633
- tasks_status: number
90634
- spaces_status: number
90635
- folders_status: number
90636
- installation_count: number
90637
- }
90638
- export interface PlaygroundClickupGetOverviewOutputItems {
90639
- id: string
90640
- name: string
90641
- }
90642
-
90643
- export interface PlaygroundEchoPingInput {
90644
- /**
90645
- * The text to echo back, 1–1024 characters
90646
- */
90647
- message: string
90648
- }
90649
-
90650
- export interface PlaygroundEchoPingOutput {
90651
- /**
90652
- * The message exactly as it was received
90653
- */
90654
- message: string
90655
- /**
90656
- * The product the call was resolved to
90657
- */
90658
- productId: string
90659
- /**
90660
- * ISO-8601 instant (UTC) at which the call reached the service
90661
- */
90662
- receivedAt: string
90663
- }
90664
-
90665
- export interface PlaygroundGdriveGetLastChangeInput {
90666
-
90667
- }
90668
-
90669
- export type PlaygroundGdriveGetLastChangeOutput = ({
90670
- file_id: string
90671
- removed: boolean
90672
- file_name: (string | null)
90673
- mime_type: (string | null)
90674
- product_id: string
90675
- occurred_at: string
90676
- connector_id: string
90677
- resource_state: string
90678
- } | {
90679
- found: false
90680
- })
90681
-
90682
- export interface PlaygroundGdriveReadFileInput {
90683
- /**
90684
- * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
90685
- */
90686
- fileId?: string
90687
- }
90688
-
90689
- export interface PlaygroundGdriveReadFileOutput {
90690
- minted: boolean
90691
- file_id: (string | null)
90692
- file_name: (string | null)
90693
- mime_type: (string | null)
90694
- file_count: number
90695
- get_status: number
90696
- list_status: number
90697
- vend_status: number
90698
- content_bytes: (number | null)
90699
- }
90700
-
90701
- export interface PlaygroundGoogleadsReadCustomerInput {
90702
-
90703
- }
90704
-
90705
- export interface PlaygroundGoogleadsReadCustomerOutput {
90706
- minted: boolean
90707
- vended: boolean
90708
- customer_id: (string | null)
90709
- vend_status: number
90710
- result_count: number
90711
- search_status: number
90712
- login_customer_id: (string | null)
90713
- }
90714
-
90715
- export interface PlaygroundLifecycleGetStateInput {
90716
-
90717
- }
90718
-
90719
- export interface PlaygroundLifecycleGetStateOutput {
90720
- blocked: boolean
90721
- archived: boolean
90722
- productId: string
90723
- lastBlockTransition: ({
90724
- eventId: string
90725
- eventName: string
90726
- productId: string
90727
- occurredAt: string
90728
- recordedAt: string
90729
- receiptCount: number
90730
- organizationId: string
90731
- cascadedFromOrg: boolean
90732
- } | null)
90733
- lastArchiveTransition: ({
90734
- eventId: string
90735
- eventName: string
90736
- productId: string
90737
- occurredAt: string
90738
- recordedAt: string
90739
- receiptCount: number
90740
- organizationId: string
90741
- cascadedFromOrg: boolean
90742
- } | null)
90743
- }
90744
-
90745
- export interface PlaygroundLifecycleListEventsInput {
90746
-
90747
- }
90748
-
90749
- export type PlaygroundLifecycleListEventsOutput = {
90750
- eventId: string
90751
- eventName: string
90752
- productId: string
90753
- occurredAt: string
90754
- recordedAt: string
90755
- receiptCount: number
90756
- organizationId: string
90757
- cascadedFromOrg: boolean
90758
- }[]
90759
-
90760
- export interface PlaygroundWebhookGetLastInput {
90761
-
90762
- }
90763
-
90764
- export type PlaygroundWebhookGetLastOutput = ({
90765
- payload?: unknown
90766
- event_id: string
90767
- provider: string
90768
- verified: boolean
90769
- product_id: string
90770
- occurred_at: string
90771
- connector_id: string
90772
- delivery_count: number
90773
- } | {
90774
- found: false
90775
- })
90776
-
90777
- export interface PlaygroundWorkflowEchoInput {
90778
- /**
90779
- * The text to store, 1–1024 characters
90780
- */
90781
- note: string
90782
- /**
90783
- * Optional labels stored alongside the note, at most 20
90784
- *
90785
- * @maxItems 20
90786
- */
90787
- tags?: []|[string]|[string, string]|[string, string, string]|[string, string, string, string]|[string, string, string, string, string]|[string, string, string, string, string, string]|[string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]|[string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string]
90788
- }
90789
-
90790
- export interface PlaygroundWorkflowEchoOutput {
90791
- /**
90792
- * Identifier of the stored echo
90793
- */
90794
- id: string
90795
- /**
90796
- * The note exactly as it was received
90797
- */
90798
- note: string
90799
- /**
90800
- * The tags exactly as they were received
90801
- */
90802
- tags: string[]
90803
- /**
90804
- * Correlation id for this echo. The playground/workflow.echoed event published about two seconds later repeats it, which is how a composer matches the completion back to this step.
90805
- */
90806
- echo_id: string
90807
- /**
90808
- * ISO-8601 instant (UTC) at which the echo was stored
90809
- */
90810
- received_at: string
90811
- }
90812
-
90813
- export interface PlaygroundWorkflowEchoListInput {
90814
-
90815
- }
90816
-
90817
- export type PlaygroundWorkflowEchoListOutput = {
90818
- /**
90819
- * Identifier of the stored echo
90820
- */
90821
- id: string
90822
- /**
90823
- * The note exactly as it was received
90824
- */
90825
- note: string
90826
- /**
90827
- * The tags exactly as they were received
90828
- */
90829
- tags: string[]
90830
- /**
90831
- * ISO-8601 instant (UTC) at which the echo was stored
90832
- */
90833
- received_at: string
90834
- }[]
90835
-
90836
- export interface PlaygroundWorkflowPingInput {
90837
- /**
90838
- * Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
90839
- */
90840
- kind?: string
90841
- }
90842
-
90843
- export interface PlaygroundWorkflowPingOutput {
90844
- /**
90845
- * Correlation id for this ping. The emitted playground/workflow.ping event repeats it, which is how a composer matches the event back to this step.
90846
- */
90847
- id: string
90848
- /**
90849
- * The name of the event that was published
90850
- */
90851
- event: string
90852
- }
90853
-
90854
- export interface PlaygroundWorkflowSubjectsListInput {
90855
- /**
90856
- * How many subjects to return, 1–100. Defaults to 25.
90857
- */
90858
- limit?: number
90859
- /**
90860
- * The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
90861
- */
90862
- cursor?: string
90863
- /**
90864
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR AFTER this — the opposite question, the recently active population. Omit for no lower bound.
90865
- */
90866
- last_activity_after?: string
90867
- /**
90868
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR BEFORE this — the "inactive for N days" question: pass now minus N days. Omit for no upper bound.
90869
- */
90870
- last_activity_before?: string
90871
- }
90872
-
90873
- export interface PlaygroundWorkflowSubjectsListOutput {
90874
- /**
90875
- * This page of subjects, most recently active first
90876
- */
90877
- items: {
90878
- /**
90879
- * Stable identifier for the subject. This is the field a batch trigger keys on, so a subject already served in an earlier run is skipped rather than served twice.
90880
- */
90881
- subject_key: string
90882
- /**
90883
- * Human-readable name of the subject
90884
- */
90885
- display_name: string
90886
- /**
90887
- * ISO-8601 instant (UTC) of the subject last activity
90888
- */
90889
- last_activity_at: string
90890
- }[]
90891
- /**
90892
- * Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
90893
- */
90894
- has_more: boolean
90895
- /**
90896
- * Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
90897
- */
90898
- next_cursor: (string | null)
90899
- }
90900
-
90901
- export interface PlaygroundWsEchoInput {
90902
-
90903
- }
90904
-
90905
- export type PlaygroundWsEchoOutput = unknown;
90906
-
90907
90535
  export interface RealtimeArchiveExportInput {
90908
90536
  /**
90909
90537
  * Only entries with ts <= to_ts (epoch ms)
@@ -112613,150 +112241,54 @@ secretPrefix: string
112613
112241
  }
112614
112242
 
112615
112243
  export interface TrackingDomainsCreateInput {
112616
- /**
112617
- * Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
112618
- */
112619
112244
  host?: string
112620
- /**
112621
- * DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
112622
- */
112623
112245
  records?: {
112624
- /**
112625
- * Time-to-live in seconds the record should be published with; the platform picks one when omitted
112626
- */
112627
112246
  ttl?: number
112628
- /**
112629
- * Fully-qualified host the record is published at; defaults to the claimed tracking host
112630
- */
112631
112247
  name?: string
112632
- /**
112633
- * Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
112634
- */
112635
112248
  target: string
112636
- /**
112637
- * DNS record type to publish, e.g. CNAME or TXT
112638
- */
112639
112249
  recordType: string
112640
112250
  }[]
112641
- /**
112642
- * Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
112643
- */
112644
112251
  domainId: string
112645
112252
  }
112646
112253
 
112647
112254
  export interface TrackingDomainsCreateOutput {
112648
- /**
112649
- * The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
112650
- */
112651
112255
  binding: {
112652
- /**
112653
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112654
- */
112655
112256
  host: string
112656
- /**
112657
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112658
- */
112659
112257
  status: ("pending" | "active" | "failed")
112660
- /**
112661
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112662
- */
112663
112258
  records: unknown[]
112664
- /**
112665
- * Product domain this tracking host sits under
112666
- */
112667
112259
  domainId: string
112668
- /**
112669
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112670
- */
112671
112260
  bindingId: string
112672
- /**
112673
- * When the binding was claimed
112674
- */
112675
112261
  createdAt: string
112676
- /**
112677
- * Product the binding belongs to
112678
- */
112679
112262
  productId: string
112680
- /**
112681
- * When the binding last changed status or records
112682
- */
112683
112263
  updatedAt: string
112684
- /**
112685
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112686
- */
112687
112264
  statusDetail: (string | null)
112688
- /**
112689
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112690
- */
112691
112265
  ownerExtension: string
112692
112266
  }
112693
- /**
112694
- * Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
112695
- */
112696
112267
  instructions: string[]
112697
112268
  }
112698
112269
 
112699
112270
  export interface TrackingDomainsDeleteInput {
112700
- /**
112701
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112702
- */
112703
112271
  bindingId: string
112704
112272
  }
112705
112273
 
112706
112274
  export interface TrackingDomainsDeleteOutput {
112707
- /**
112708
- * Always true — the release succeeded; a failure arrives as an error, not as false
112709
- */
112710
112275
  ok: true
112711
112276
  }
112712
112277
 
112713
112278
  export interface TrackingDomainsGetInput {
112714
- /**
112715
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112716
- */
112717
112279
  bindingId: string
112718
112280
  }
112719
112281
 
112720
112282
  export interface TrackingDomainsGetOutput {
112721
- /**
112722
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112723
- */
112724
112283
  host: string
112725
- /**
112726
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112727
- */
112728
112284
  status: ("pending" | "active" | "failed")
112729
- /**
112730
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112731
- */
112732
112285
  records: unknown[]
112733
- /**
112734
- * Product domain this tracking host sits under
112735
- */
112736
112286
  domainId: string
112737
- /**
112738
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112739
- */
112740
112287
  bindingId: string
112741
- /**
112742
- * When the binding was claimed
112743
- */
112744
112288
  createdAt: string
112745
- /**
112746
- * Product the binding belongs to
112747
- */
112748
112289
  productId: string
112749
- /**
112750
- * When the binding last changed status or records
112751
- */
112752
112290
  updatedAt: string
112753
- /**
112754
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112755
- */
112756
112291
  statusDetail: (string | null)
112757
- /**
112758
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112759
- */
112760
112292
  ownerExtension: string
112761
112293
  }
112762
112294
 
@@ -112765,125 +112297,41 @@ export interface TrackingDomainsListInput {
112765
112297
  }
112766
112298
 
112767
112299
  export interface TrackingDomainsListOutput {
112768
- /**
112769
- * The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
112770
- */
112771
112300
  domains: {
112772
- /**
112773
- * Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
112774
- */
112775
112301
  mode: ("external" | "managed")
112776
- /**
112777
- * Apex domain name the product owns, e.g. example.com
112778
- */
112779
112302
  domain: string
112780
- /**
112781
- * Stable platform id of the product domain, and what a claim takes as its `domainId`
112782
- */
112783
112303
  domainId: string
112784
- /**
112785
- * ISO-8601 timestamp of when the domain was added to the product
112786
- */
112787
112304
  createdAt: string
112788
- /**
112789
- * How many extensions currently hold a host binding under this domain
112790
- */
112791
112305
  extensionCount: number
112792
112306
  }[]
112793
- /**
112794
- * Tracking-host bindings this toolkit currently holds across those domains
112795
- */
112796
112307
  bindings: {
112797
- /**
112798
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112799
- */
112800
112308
  host: string
112801
- /**
112802
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112803
- */
112804
112309
  status: ("pending" | "active" | "failed")
112805
- /**
112806
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112807
- */
112808
112310
  records: unknown[]
112809
- /**
112810
- * Product domain this tracking host sits under
112811
- */
112812
112311
  domainId: string
112813
- /**
112814
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112815
- */
112816
112312
  bindingId: string
112817
- /**
112818
- * When the binding was claimed
112819
- */
112820
112313
  createdAt: string
112821
- /**
112822
- * Product the binding belongs to
112823
- */
112824
112314
  productId: string
112825
- /**
112826
- * When the binding last changed status or records
112827
- */
112828
112315
  updatedAt: string
112829
- /**
112830
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112831
- */
112832
112316
  statusDetail: (string | null)
112833
- /**
112834
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112835
- */
112836
112317
  ownerExtension: string
112837
112318
  }[]
112838
112319
  }
112839
112320
 
112840
112321
  export interface TrackingDomainsVerifyInput {
112841
- /**
112842
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112843
- */
112844
112322
  bindingId: string
112845
112323
  }
112846
112324
 
112847
112325
  export interface TrackingDomainsVerifyOutput {
112848
- /**
112849
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112850
- */
112851
112326
  host: string
112852
- /**
112853
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112854
- */
112855
112327
  status: ("pending" | "active" | "failed")
112856
- /**
112857
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112858
- */
112859
112328
  records: unknown[]
112860
- /**
112861
- * Product domain this tracking host sits under
112862
- */
112863
112329
  domainId: string
112864
- /**
112865
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112866
- */
112867
112330
  bindingId: string
112868
- /**
112869
- * When the binding was claimed
112870
- */
112871
112331
  createdAt: string
112872
- /**
112873
- * Product the binding belongs to
112874
- */
112875
112332
  productId: string
112876
- /**
112877
- * When the binding last changed status or records
112878
- */
112879
112333
  updatedAt: string
112880
- /**
112881
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112882
- */
112883
112334
  statusDetail: (string | null)
112884
- /**
112885
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112886
- */
112887
112335
  ownerExtension: string
112888
112336
  }
112889
112337
 
@@ -112895,13 +112343,7 @@ name: string
112895
112343
  }
112896
112344
 
112897
112345
  export interface TrackingEventNamesArchiveOutput {
112898
- /**
112899
- * Event name whose status was changed
112900
- */
112901
112346
  name: string
112902
- /**
112903
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
112904
- */
112905
112347
  status: ("active" | "archived")
112906
112348
  }
112907
112349
 
@@ -112925,37 +112367,13 @@ status?: ("active" | "archived")
112925
112367
  }
112926
112368
 
112927
112369
  export interface TrackingEventNamesListOutput {
112928
- /**
112929
- * The matching catalogue entries, ordered by the requested sort
112930
- */
112931
112370
  names: {
112932
- /**
112933
- * Event name exactly as the tracking script sends it — the string other tools take as their `event`
112934
- */
112935
112371
  name: string
112936
- /**
112937
- * How many events with this name have been received in total
112938
- */
112939
112372
  count: number
112940
- /**
112941
- * `active` for a name in use, `archived` for one hidden from pickers and reports
112942
- */
112943
112373
  status: string
112944
- /**
112945
- * ISO-8601 timestamp of the most recent event received under this name
112946
- */
112947
112374
  lastSeen: string
112948
- /**
112949
- * ISO-8601 timestamp of the first event ever received under this name
112950
- */
112951
112375
  firstSeen: string
112952
- /**
112953
- * Property keys sampled from recent events with this name, so you can see what the payload carries
112954
- */
112955
112376
  propsKeys: string[]
112956
- /**
112957
- * Whether this name is marked a conversion, which is what makes it available as a workflow trigger
112958
- */
112959
112377
  isConversion: boolean
112960
112378
  }[]
112961
112379
  }
@@ -112972,13 +112390,7 @@ isConversion: boolean
112972
112390
  }
112973
112391
 
112974
112392
  export interface TrackingEventNamesSetConversionOutput {
112975
- /**
112976
- * Event name the conversion flag was applied to
112977
- */
112978
112393
  name: string
112979
- /**
112980
- * The flag as it now stands after the change
112981
- */
112982
112394
  isConversion: boolean
112983
112395
  }
112984
112396
 
@@ -112990,13 +112402,7 @@ name: string
112990
112402
  }
112991
112403
 
112992
112404
  export interface TrackingEventNamesUnarchiveOutput {
112993
- /**
112994
- * Event name whose status was changed
112995
- */
112996
112405
  name: string
112997
- /**
112998
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
112999
- */
113000
112406
  status: ("active" | "archived")
113001
112407
  }
113002
112408
 
@@ -113005,32 +112411,14 @@ export interface TrackingGoogleadsConnectionStatusInput {
113005
112411
  }
113006
112412
 
113007
112413
  export type TrackingGoogleadsConnectionStatusOutput = ({
113008
- /**
113009
- * Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
113010
- */
113011
112414
  state: "connected"
113012
- /**
113013
- * The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
113014
- */
113015
112415
  customerId: string
113016
- /**
113017
- * The manager account the connection authenticates through, as a Google customer id. Same as customerId when the account is not managed. Only present while connected.
113018
- */
113019
112416
  loginCustomerId: string
113020
112417
  } | {
113021
- /**
113022
- * Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
113023
- */
113024
112418
  state: "pending_account_selection"
113025
112419
  } | {
113026
- /**
113027
- * The Google authorisation expired or was revoked and has to be granted again before anything can run.
113028
- */
113029
112420
  state: "reauth_required"
113030
112421
  } | {
113031
- /**
113032
- * No Google Ads connection has been set up for this product at all.
113033
- */
113034
112422
  state: "not_connected"
113035
112423
  })
113036
112424
 
@@ -113051,77 +112439,26 @@ export interface TrackingGoogleadsFeedbackConfigGetInput {
113051
112439
  }
113052
112440
 
113053
112441
  export interface TrackingGoogleadsFeedbackConfigGetOutput {
113054
- /**
113055
- * How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions, so send only to actions the tag does not already cover; fresh_pixel means these uploads are the only source.
113056
- */
113057
112442
  mode: ("existing_pixel" | "fresh_pixel")
113058
- /**
113059
- * Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
113060
- */
113061
112443
  rules: {
113062
- /**
113063
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
113064
- */
113065
112444
  event: string
113066
- /**
113067
- * What monetary value is reported to Google for each conversion this rule uploads
113068
- */
113069
112445
  value: ({
113070
- /**
113071
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113072
- */
113073
112446
  source: "revenue"
113074
112447
  } | {
113075
- /**
113076
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113077
- */
113078
112448
  source: "dynamic"
113079
112449
  } | {
113080
- /**
113081
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113082
- */
113083
112450
  source: "fixed"
113084
- /**
113085
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
113086
- */
113087
112451
  currency: string
113088
- /**
113089
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
113090
- */
113091
112452
  amountMinor: number
113092
112453
  })
113093
- /**
113094
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
113095
- */
113096
112454
  enabled: boolean
113097
- /**
113098
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
113099
- */
113100
112455
  conversionAction: string
113101
112456
  }[]
113102
- /**
113103
- * Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
113104
- */
113105
112457
  enabled: boolean
113106
- /**
113107
- * The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
113108
- */
113109
112458
  productId: string
113110
- /**
113111
- * How many days back each pass looks for conversions to send, and how far back a click may be matched. Google rejects clicks older than about 90 days.
113112
- */
113113
112459
  lookbackDays: number
113114
- /**
113115
- * Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
113116
- */
113117
112460
  accountCurrency: (string | null)
113118
- /**
113119
- * The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
113120
- */
113121
112461
  dynamicValueEvents: string[]
113122
- /**
113123
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
113124
- */
113125
112462
  enhancedConversions: boolean
113126
112463
  }
113127
112464
 
@@ -113138,23 +112475,11 @@ rules?: {
113138
112475
  * Any tracked event-name for this product (validated against the event-name catalog)
113139
112476
  */
113140
112477
  event: string
113141
- /**
113142
- * What monetary value to report to Google for each conversion this rule uploads
113143
- */
113144
112478
  value: ({
113145
- /**
113146
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113147
- */
113148
112479
  source: "revenue"
113149
112480
  } | {
113150
- /**
113151
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113152
- */
113153
112481
  source: "dynamic"
113154
112482
  } | {
113155
- /**
113156
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113157
- */
113158
112483
  source: "fixed"
113159
112484
  /**
113160
112485
  * ISO-4217 currency code, e.g. USD
@@ -113165,9 +112490,6 @@ currency: string
113165
112490
  */
113166
112491
  amountMinor?: number
113167
112492
  })
113168
- /**
113169
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
113170
- */
113171
112493
  enabled: boolean
113172
112494
  /**
113173
112495
  * Google conversion action resource: customers/<cid>/conversionActions/<id>
@@ -113189,82 +112511,28 @@ enhancedConversions?: boolean
113189
112511
  }
113190
112512
 
113191
112513
  export interface TrackingGoogleadsFeedbackConfigSetOutput {
113192
- /**
113193
- * The config as it now stands after the write, with server-side normalisation applied
113194
- */
113195
112514
  config: {
113196
- /**
113197
- * How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
113198
- */
113199
112515
  mode: ("existing_pixel" | "fresh_pixel")
113200
- /**
113201
- * The event-to-conversion-action mappings, each with its own value source
113202
- */
113203
112516
  rules: {
113204
- /**
113205
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
113206
- */
113207
112517
  event: string
113208
- /**
113209
- * What monetary value is reported to Google for each conversion this rule uploads
113210
- */
113211
112518
  value: ({
113212
- /**
113213
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113214
- */
113215
112519
  source: "revenue"
113216
112520
  } | {
113217
- /**
113218
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113219
- */
113220
112521
  source: "dynamic"
113221
112522
  } | {
113222
- /**
113223
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
113224
- */
113225
112523
  source: "fixed"
113226
- /**
113227
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
113228
- */
113229
112524
  currency: string
113230
- /**
113231
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
113232
- */
113233
112525
  amountMinor: number
113234
112526
  })
113235
- /**
113236
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
113237
- */
113238
112527
  enabled: boolean
113239
- /**
113240
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
113241
- */
113242
112528
  conversionAction: string
113243
112529
  }[]
113244
- /**
113245
- * Master switch: with it off no rule uploads anything, however the individual rules are set
113246
- */
113247
112530
  enabled: boolean
113248
- /**
113249
- * Product this conversion-feedback config belongs to
113250
- */
113251
112531
  productId: string
113252
- /**
113253
- * How many days back a click may have happened and still be matched to a conversion (max 90)
113254
- */
113255
112532
  lookbackDays: number
113256
- /**
113257
- * The connected Google Ads account's currency, best-effort; null or absent when it could not be read
113258
- */
113259
112533
  accountCurrency?: (string | null)
113260
- /**
113261
- * Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
113262
- */
113263
112534
  enhancedConversions: boolean
113264
112535
  }
113265
- /**
113266
- * Plain-language safety notes about what this combination of mode and match keys will do to the connected account
113267
- */
113268
112536
  guidance: string[]
113269
112537
  }
113270
112538
 
@@ -113273,48 +112541,15 @@ export interface TrackingGoogleadsFeedbackRunInput {
113273
112541
  }
113274
112542
 
113275
112543
  export interface TrackingGoogleadsFeedbackRunOutput {
113276
- /**
113277
- * This one upload pass. Match the completion event back to this step on it, not on productId: the daily cron pass and a manual run on the same day are two passes of the same product.
113278
- */
113279
- runId: string
113280
- /**
113281
- * Rows Google rejected in this pass.
113282
- */
113283
112544
  failed: number
113284
- /**
113285
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
113286
- */
113287
112545
  matched: number
113288
- /**
113289
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
113290
- */
113291
112546
  noGclid: number
113292
- /**
113293
- * Present only when the pass did no work, and says why: feedback is switched off, no rule is enabled, or no Google Ads account is connected. Absent on a pass that ran.
113294
- */
113295
112547
  skipped?: ("disabled" | "no_rules" | "not_connected")
113296
- /**
113297
- * Conversions in the lookback window that an enabled rule applied to.
113298
- */
113299
112548
  selected: number
113300
- /**
113301
- * Rows Google accepted in this pass.
113302
- */
113303
112549
  uploaded: number
113304
- /**
113305
- * The tenant whose conversions this pass uploaded.
113306
- */
113307
112550
  productId: string
113308
- /**
113309
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
113310
- */
113311
112551
  zeroValue: number
113312
- /**
113313
- * Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
113314
- */
113315
- partialFailureError?: {
113316
- [k: string]: unknown
113317
- }
112552
+ partialFailureError?: unknown
113318
112553
  }
113319
112554
 
113320
112555
  export interface TrackingGoogleadsFeedbackStatusInput {
@@ -113322,82 +112557,25 @@ export interface TrackingGoogleadsFeedbackStatusInput {
113322
112557
  }
113323
112558
 
113324
112559
  export interface TrackingGoogleadsFeedbackStatusOutput {
113325
- /**
113326
- * How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions; fresh_pixel means these uploads are the only source.
113327
- */
113328
112560
  mode: ("existing_pixel" | "fresh_pixel")
113329
- /**
113330
- * Rows Google has rejected since this product was connected, across every pass.
113331
- */
113332
112561
  failed: number
113333
- /**
113334
- * Whether conversions are being sent to Google Ads at all.
113335
- */
113336
112562
  enabled: boolean
113337
- /**
113338
- * Coverage of the most recent pass. Null when no pass has run for this product yet.
113339
- */
113340
112563
  lastRun: ({
113341
- /**
113342
- * When the last pass finished. Null when the stored summary predates this field.
113343
- */
113344
112564
  ranAt: (string | null)
113345
- /**
113346
- * Rows Google rejected. Anything above zero is what makes the status partial.
113347
- */
113348
112565
  failed: number
113349
- /**
113350
- * How the pass ended: ok is a clean pass, partial means Google rejected some rows and accepted others, not_connected means no Google Ads account was reachable and nothing was sent.
113351
- */
113352
112566
  status: ("ok" | "partial" | "not_connected")
113353
- /**
113354
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
113355
- */
113356
112567
  matched: number
113357
- /**
113358
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
113359
- */
113360
112568
  noGclid: number
113361
- /**
113362
- * Conversions in the lookback window that an enabled rule applied to.
113363
- */
113364
112569
  selected: number
113365
- /**
113366
- * Rows Google accepted.
113367
- */
113368
112570
  uploaded: number
113369
- /**
113370
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
113371
- */
113372
112571
  zeroValue: number
113373
112572
  } | null)
113374
- /**
113375
- * Plain-language warnings about the current setup, such as double counting when the Google tag already records the same conversion. Empty when nothing needs saying.
113376
- */
113377
112573
  guidance: string[]
113378
- /**
113379
- * Rows Google has accepted since this product was connected, across every pass.
113380
- */
113381
112574
  uploaded: number
113382
- /**
113383
- * How many event-to-conversion-action rules are configured, enabled or not.
113384
- */
113385
112575
  ruleCount: number
113386
- /**
113387
- * How many days back each pass looks for conversions to send, and how far back a click may be matched.
113388
- */
113389
112576
  lookbackDays: number
113390
- /**
113391
- * Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
113392
- */
113393
112577
  accountCurrency: (string | null)
113394
- /**
113395
- * The event names that may use the Dynamic value source, because revenue is known for them.
113396
- */
113397
112578
  dynamicValueEvents: string[]
113398
- /**
113399
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
113400
- */
113401
112579
  enhancedConversions: boolean
113402
112580
  }
113403
112581
 
@@ -113419,228 +112597,65 @@ conversionDatetime: string
113419
112597
  }[]
113420
112598
 
113421
112599
  export interface TrackingGoogleadsRoasReportInput {
113422
- /**
113423
- * End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
113424
- */
113425
- to?: string
113426
- /**
113427
- * Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
113428
- */
113429
- from?: string
113430
- /**
113431
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
113432
- */
112600
+ to: string
112601
+ from: string
113433
112602
  model?: ("last_click" | "first_click")
113434
- /**
113435
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
113436
- */
113437
112603
  domain?: string
113438
- /**
113439
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
113440
- */
113441
112604
  customerId?: string
113442
- /**
113443
- * How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
113444
- */
113445
112605
  lookbackDays?: number
113446
112606
  }
113447
112607
 
113448
112608
  export interface TrackingGoogleadsRoasReportOutput {
113449
- /**
113450
- * End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
113451
- */
113452
112609
  to: string
113453
- /**
113454
- * Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
113455
- */
113456
112610
  from: string
113457
- /**
113458
- * Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
113459
- */
113460
112611
  model: ("last_click" | "first_click")
113461
- /**
113462
- * True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
113463
- */
113464
- stale: boolean
113465
- /**
113466
- * The installed site this report was restricted to; null when it covers every domain of the product.
113467
- */
113468
112612
  domain: (string | null)
113469
- /**
113470
- * One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
113471
- */
113472
112613
  accounts: {
113473
- /**
113474
- * True when this account's cost is older than the freshness threshold, or was never pulled — the ROAS below is then built on outdated spend.
113475
- */
113476
112614
  stale: boolean
113477
- /**
113478
- * ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
113479
- */
113480
112615
  currency: string
113481
- /**
113482
- * This account's campaigns, each with its ad groups and ads nested underneath.
113483
- */
113484
112616
  campaigns: TrackingGoogleadsRoasReportOutputItems[]
113485
- /**
113486
- * Google Ads account these campaigns belong to, by customer id without dashes.
113487
- */
113488
112617
  customerId: string
113489
- /**
113490
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
113491
- */
113492
112618
  costLastSyncedAt: (string | null)
113493
112619
  }[]
113494
- /**
113495
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
113496
- */
113497
- currency: (string | null)
113498
- /**
113499
- * When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
113500
- */
113501
112620
  computedAt: string
113502
- /**
113503
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
113504
- */
113505
- customerId: (string | null)
113506
- /**
113507
- * How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
113508
- */
113509
112621
  lookbackDays: number
113510
- /**
113511
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
113512
- */
113513
- costLastSyncedAt: (string | null)
113514
- /**
113515
- * Revenue we tracked but could not tie to any Google Ads campaign, grouped by the utm_campaign we saw. A long list here means the ad tagging needs fixing, not that the ads failed.
113516
- */
113517
112622
  unmatchedAttributed: {
113518
- /**
113519
- * Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
113520
- */
113521
112623
  revenue: TrackingGoogleadsRoasReportOutputItems1[]
113522
- /**
113523
- * How many distinct customers paid but could not be traced to any Google Ads campaign.
113524
- */
113525
112624
  conversions: number
113526
- /**
113527
- * The utm_campaign value we saw on the visit, which matched no Google Ads campaign; null when the visit carried none. This is the diagnostic: fix the tagging and the revenue moves into a campaign.
113528
- */
113529
112625
  utmCampaign: (string | null)
113530
112626
  }[]
113531
112627
  }
113532
112628
  export interface TrackingGoogleadsRoasReportOutputItems {
113533
- /**
113534
- * What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
113535
- */
113536
112629
  cpa: (number | null)
113537
- /**
113538
- * Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
113539
- */
113540
112630
  adId: (string | null)
113541
- /**
113542
- * What Google charged and what Google itself counted for this node over the window.
113543
- */
113544
112631
  cost: {
113545
- /**
113546
- * How many times someone clicked through from Google over the window.
113547
- */
113548
112632
  clicks: number
113549
- /**
113550
- * ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
113551
- */
113552
112633
  currency: string
113553
- /**
113554
- * What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
113555
- */
113556
112634
  costMinor: number
113557
- /**
113558
- * How many times Google showed this ad over the window.
113559
- */
113560
112635
  impressions: number
113561
- /**
113562
- * Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
113563
- */
113564
112636
  platformConversions: number
113565
- /**
113566
- * Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
113567
- */
113568
112637
  platformConversionsValueMinor: number
113569
112638
  }
113570
- /**
113571
- * What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
113572
- */
113573
112639
  name: (string | null)
113574
- /**
113575
- * Return on ad spend: our net attributed revenue divided by cost, both in the account currency. A plain ratio, not a percentage — 2.4 means 2.40 back per 1.00 spent. null when cost is 0 or nothing was attributed.
113576
- */
113577
112640
  roas: (number | null)
113578
- /**
113579
- * How deep in the Google Ads hierarchy this node sits. Attributed revenue, ROAS and CPA exist at campaign level only; cost exists at all three.
113580
- */
113581
112641
  level: ("campaign" | "ad_group" | "ad")
113582
- /**
113583
- * Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
113584
- */
113585
112642
  status?: string
113586
- /**
113587
- * The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
113588
- */
113589
112643
  children: TrackingGoogleadsRoasReportOutputItems[]
113590
- /**
113591
- * Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
113592
- */
113593
112644
  adGroupId: (string | null)
113594
- /**
113595
- * What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
113596
- */
113597
112645
  attributed: ({
113598
- /**
113599
- * What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
113600
- */
113601
112646
  revenue: TrackingGoogleadsRoasReportOutputItems1[]
113602
- /**
113603
- * Which key actually joined this revenue to the Google campaign, strongest first: lt_campaign_id (the id our own tracking template stamps on the landing URL), campaign_id (the id inside utm_campaign), campaign_name (the campaign name inside utm_campaign, a guess), gclid (the click id). null means the join key is unknown; treat campaign_name as the weakest evidence.
113604
- */
113605
- matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null)
113606
- /**
113607
- * How many distinct customers we traced back to this campaign over the window. Whole numbers: we give a conversion to one campaign, we never split it.
113608
- */
112647
+ matchedBy: (("campaign_id" | "campaign_name" | "gclid") | null)
113609
112648
  conversions: number
113610
- /**
113611
- * Our net attributed revenue in the account currency alone, in minor units. 0 when nobody paid in that currency. This is the ROAS numerator, and the single-value answer beside the revenue list.
113612
- */
113613
112649
  accountCurrencyNetMinor: number
113614
112650
  } | null)
113615
- /**
113616
- * Google Ads campaign this node belongs to, by its numeric id. Set at every level.
113617
- */
113618
112651
  campaignId: string
113619
- /**
113620
- * Google Ads account this node belongs to, by customer id without dashes.
113621
- */
113622
112652
  customerId: string
113623
- /**
113624
- * Where Google ran the campaign, passed through raw: SEARCH, DISPLAY, VIDEO, PERFORMANCE_MAX and so on. Present on campaign nodes only, and may be null there.
113625
- */
113626
112653
  channelType?: (string | null)
113627
112654
  }
113628
112655
  export interface TrackingGoogleadsRoasReportOutputItems1 {
113629
- /**
113630
- * ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
113631
- */
113632
112656
  currency: string
113633
- /**
113634
- * Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
113635
- */
113636
112657
  netMinor: number
113637
- /**
113638
- * Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
113639
- */
113640
112658
  grossMinor: number
113641
- /**
113642
- * Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
113643
- */
113644
112659
  refundedMinor: number
113645
112660
  }
113646
112661
 
@@ -113649,67 +112664,21 @@ export interface TrackingGoogleadsSyncNowInput {
113649
112664
  }
113650
112665
 
113651
112666
  export interface TrackingGoogleadsSyncNowOutput {
113652
- /**
113653
- * How much this sweep wrote, split by what it wrote. Re-running the same window updates rows in place rather than adding, so these are rows touched, not rows gained. All zero when the status is skipped.
113654
- */
113655
112667
  rows: {
113656
- /**
113657
- * Ads written.
113658
- */
113659
112668
  ads: number
113660
- /**
113661
- * Day-by-day ad spend and metric rows written.
113662
- */
113663
112669
  adDaily: number
113664
- /**
113665
- * Ad groups written.
113666
- */
113667
112670
  adGroups: number
113668
- /**
113669
- * Campaigns written, names and status included.
113670
- */
113671
112671
  campaigns: number
113672
- /**
113673
- * Day-by-day ad-group spend and metric rows written.
113674
- */
113675
112672
  adGroupDaily: number
113676
- /**
113677
- * Day-by-day campaign spend and metric rows written.
113678
- */
113679
112673
  campaignDaily: number
113680
112674
  }
113681
- /**
113682
- * This one sync run. Match the completion event back to this step on it, not on productId: a product syncs many times, and the daily cron run and a manual one are different runs.
113683
- */
113684
- runId: string
113685
- /**
113686
- * Why nothing was written, when the status is skipped: the account is not chosen yet, the authorisation expired, or Google was unavailable. Absent on a sweep that ran.
113687
- */
113688
112675
  reason?: string
113689
- /**
113690
- * Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
113691
- */
113692
112676
  status: ("ok" | "skipped")
113693
- /**
113694
- * The range of days this sweep read spend and metrics for.
113695
- */
113696
112677
  window: {
113697
- /**
113698
- * Last day covered, inclusive, as YYYY-MM-DD.
113699
- */
113700
112678
  end: string
113701
- /**
113702
- * First day covered, inclusive, as YYYY-MM-DD.
113703
- */
113704
112679
  start: string
113705
112680
  }
113706
- /**
113707
- * The tenant whose Google Ads account was swept.
113708
- */
113709
112681
  productId: string
113710
- /**
113711
- * When the sweep finished. Null when nothing was written.
113712
- */
113713
112682
  lastSyncedAt: (string | null)
113714
112683
  }
113715
112684
 
@@ -113725,187 +112694,54 @@ from?: string
113725
112694
  }
113726
112695
 
113727
112696
  export interface TrackingGoogleadsTrackingHealthOutput {
113728
- /**
113729
- * End of the range these figures cover, as an instant.
113730
- */
113731
112697
  to: string
113732
- /**
113733
- * Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
113734
- */
113735
112698
  from: string
113736
- /**
113737
- * Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
113738
- */
113739
112699
  installed: boolean
113740
- /**
113741
- * Whether the sample above was cut short. True means more untagged URLs exist than are listed.
113742
- */
113743
112700
  truncated: boolean
113744
- /**
113745
- * Google paid clicks that arrived on the site in this range. The denominator for everything below.
113746
- */
113747
112701
  paidClicks: number
113748
- /**
113749
- * How complete the figures above are. Holds no metric of its own — it exists so the breakage rate is not read as one uniform population.
113750
- */
113751
112702
  dataQuality: {
113752
- /**
113753
- * Paid clicks from visitors who declined consent. Counted inside paidClicks, never added to it — a cookieless click is a real click. Clicks from sites running no consent banner are not counted here: nobody was asked, which is not the same as being told no.
113754
- */
113755
112703
  cookielessPaidClicks: number
113756
112704
  }
113757
- /**
113758
- * Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
113759
- */
113760
112705
  breakageRate: number
113761
- /**
113762
- * Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
113763
- */
113764
112706
  taggedClicks: number
113765
- /**
113766
- * When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
113767
- */
113768
112707
  lastUntaggedAt: (string | null)
113769
- /**
113770
- * Of those, the ones that arrived without our parameters, so the money spent on them cannot be attributed. This is what the tracking template being missing or broken looks like.
113771
- */
113772
112708
  untaggedClicks: number
113773
- /**
113774
- * When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
113775
- */
113776
112709
  firstUntaggedAt: (string | null)
113777
- /**
113778
- * A handful of the actual landing URLs that arrived untagged, to paste into a browser while fixing the template. Real customer URLs, query strings included.
113779
- */
113780
112710
  sampleUntaggedUrls: string[]
113781
112711
  }
113782
112712
 
113783
112713
  export interface TrackingGoogleadsUsVsPlatformInput {
113784
- /**
113785
- * End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
113786
- */
113787
- to?: string
113788
- /**
113789
- * Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
113790
- */
113791
- from?: string
113792
- /**
113793
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
113794
- */
112714
+ to: string
112715
+ from: string
113795
112716
  model?: ("last_click" | "first_click")
113796
- /**
113797
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
113798
- */
113799
112717
  domain?: string
113800
- /**
113801
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
113802
- */
113803
112718
  customerId?: string
113804
- /**
113805
- * How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
113806
- */
113807
112719
  lookbackDays?: number
113808
112720
  }
113809
112721
 
113810
112722
  export interface TrackingGoogleadsUsVsPlatformOutput {
113811
- /**
113812
- * End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
113813
- */
113814
112723
  to: string
113815
- /**
113816
- * Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
113817
- */
113818
112724
  from: string
113819
- /**
113820
- * Which touchpoint earned the credit on OUR side of the comparison: the last paid click before the conversion, or the first. Google always uses its own model.
113821
- */
113822
112725
  model: ("last_click" | "first_click")
113823
- /**
113824
- * True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
113825
- */
113826
- stale: boolean
113827
- /**
113828
- * The installed site this comparison was restricted to; null when it covers every domain of the product.
113829
- */
113830
112726
  domain: (string | null)
113831
- /**
113832
- * One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
113833
- */
113834
112727
  accounts: {
113835
- /**
113836
- * One row per campaign in this account, ours beside Google's.
113837
- */
113838
112728
  rows: {
113839
- /**
113840
- * What this campaign is called in Google Ads; null when the name has not been synced.
113841
- */
113842
112729
  name: (string | null)
113843
- /**
113844
- * ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
113845
- */
113846
112730
  currency: string
113847
- /**
113848
- * The Google Ads campaign this row compares, by its numeric id.
113849
- */
113850
112731
  campaignId: string
113851
- /**
113852
- * Google Ads account this campaign belongs to, by customer id without dashes.
113853
- */
113854
112732
  customerId: string
113855
- /**
113856
- * How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
113857
- */
113858
112733
  ourConversions: number
113859
- /**
113860
- * Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
113861
- */
113862
112734
  ourRevenueNetMinor: number
113863
- /**
113864
- * Conversions GOOGLE counted for the same campaign. May be fractional, because Google splits credit across touchpoints — which is the usual reason the two sides disagree.
113865
- */
113866
112735
  platformConversions: number
113867
- /**
113868
- * Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
113869
- */
113870
112736
  platformConversionsValueMinor: number
113871
112737
  }[]
113872
- /**
113873
- * True when this account's Google-side numbers are older than the freshness threshold, or were never pulled — the comparison is then unfair to one side.
113874
- */
113875
112738
  stale: boolean
113876
- /**
113877
- * ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
113878
- */
113879
112739
  currency: string
113880
- /**
113881
- * Google Ads account these comparison rows belong to, by customer id without dashes.
113882
- */
113883
112740
  customerId: string
113884
- /**
113885
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
113886
- */
113887
112741
  costLastSyncedAt: (string | null)
113888
112742
  }[]
113889
- /**
113890
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
113891
- */
113892
- currency: (string | null)
113893
- /**
113894
- * When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
113895
- */
113896
112743
  computedAt: string
113897
- /**
113898
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
113899
- */
113900
- customerId: (string | null)
113901
- /**
113902
- * How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
113903
- */
113904
112744
  lookbackDays: number
113905
- /**
113906
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
113907
- */
113908
- costLastSyncedAt: (string | null)
113909
112745
  }
113910
112746
 
113911
112747
  export interface TrackingIdentityHealthInput {
@@ -113913,29 +112749,11 @@ export interface TrackingIdentityHealthInput {
113913
112749
  }
113914
112750
 
113915
112751
  export interface TrackingIdentityHealthOutput {
113916
- /**
113917
- * When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
113918
- */
113919
112752
  computedAt: string
113920
- /**
113921
- * How many people the product holds in total, anonymous ones included. The denominator of both rates below.
113922
- */
113923
112753
  totalProfiles: number
113924
- /**
113925
- * Identified people as a share of the total, normally 0 to 1 (0.42 is 42%). A drop here usually means a broken identify() call, not fewer visitors.
113926
- */
113927
112754
  identifiedRate: number
113928
- /**
113929
- * People with an ad touchpoint as a share of the total, normally 0 to 1. It counts click-id identifiers, so an identifier outliving its profile can push it just above 1 — read it as an indicator, not as a proportion to assert on.
113930
- */
113931
112755
  adTouchpointRate: number
113932
- /**
113933
- * How many of them an email or phone is known for — the people a message can actually be sent to.
113934
- */
113935
112756
  identifiedProfiles: number
113936
- /**
113937
- * How many people arrived carrying an ad click id. A proxy for paid reach: it counts anyone with at least one click id on record.
113938
- */
113939
112757
  adTouchpointProfiles: number
113940
112758
  }
113941
112759
 
@@ -113947,9 +112765,6 @@ domain: string
113947
112765
  }
113948
112766
 
113949
112767
  export interface TrackingInstallDomainsCreateOutput {
113950
- /**
113951
- * The domain as stored after normalisation, which may differ from what was submitted
113952
- */
113953
112768
  domain: string
113954
112769
  }
113955
112770
 
@@ -113961,9 +112776,6 @@ domain: string
113961
112776
  }
113962
112777
 
113963
112778
  export interface TrackingInstallDomainsDeleteOutput {
113964
- /**
113965
- * Always true — the domain was removed; a failure arrives as an error, not as false
113966
- */
113967
112779
  ok: true
113968
112780
  }
113969
112781
 
@@ -113972,35 +112784,14 @@ export interface TrackingInstallDomainsListInput {
113972
112784
  }
113973
112785
 
113974
112786
  export interface TrackingInstallDomainsListOutput {
113975
- /**
113976
- * Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
113977
- */
113978
112787
  discovered: TrackingInstallDomainsListOutputItems[]
113979
- /**
113980
- * Domains deliberately put on the install checklist, each with whether its script has been seen
113981
- */
113982
112788
  registered: TrackingInstallDomainsListOutputItems[]
113983
- /**
113984
- * Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
113985
- */
113986
112789
  windowDays: number
113987
112790
  }
113988
112791
  export interface TrackingInstallDomainsListOutputItems {
113989
- /**
113990
- * Whether the tracking script actually sent an event from this domain inside the lookback window
113991
- */
113992
112792
  seen: boolean
113993
- /**
113994
- * Normalised domain name the status is reported for
113995
- */
113996
112793
  domain: string
113997
- /**
113998
- * ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
113999
- */
114000
112794
  lastSeen: (string | null)
114001
- /**
114002
- * Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
114003
- */
114004
112795
  registered: boolean
114005
112796
  }
114006
112797
 
@@ -114012,9 +112803,6 @@ domain: string
114012
112803
  }
114013
112804
 
114014
112805
  export interface TrackingLinkDomainsCreateOutput {
114015
- /**
114016
- * The domain as stored after normalisation, which may differ from what was submitted
114017
- */
114018
112806
  domain: string
114019
112807
  }
114020
112808
 
@@ -114026,9 +112814,6 @@ domain: string
114026
112814
  }
114027
112815
 
114028
112816
  export interface TrackingLinkDomainsDeleteOutput {
114029
- /**
114030
- * Always true — the domain left the linking group; a failure arrives as an error, not as false
114031
- */
114032
112817
  ok: true
114033
112818
  }
114034
112819
 
@@ -114037,9 +112822,6 @@ export interface TrackingLinkDomainsListInput {
114037
112822
  }
114038
112823
 
114039
112824
  export interface TrackingLinkDomainsListOutput {
114040
- /**
114041
- * Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
114042
- */
114043
112825
  domains: string[]
114044
112826
  }
114045
112827
 
@@ -114059,70 +112841,22 @@ domain?: string
114059
112841
  }
114060
112842
 
114061
112843
  export interface TrackingLiveEventsListOutput {
114062
- /**
114063
- * Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
114064
- */
114065
112844
  cursor: (string | null)
114066
- /**
114067
- * The page of events, newest first.
114068
- */
114069
112845
  events: {
114070
- /**
114071
- * Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
114072
- */
114073
112846
  id: string
114074
- /**
114075
- * When the event happened, as reported by the tracker (ISO 8601, UTC).
114076
- */
114077
112847
  ts: string
114078
- /**
114079
- * Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
114080
- */
114081
112848
  url: (string | null)
114082
- /**
114083
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
114084
- */
114085
112849
  name: string
114086
- /**
114087
- * Document title of that page at the time. Free text from the customer site, so it can carry personal data.
114088
- */
114089
112850
  title: (string | null)
114090
- /**
114091
- * Site the event came from; null when the tracker could not determine one.
114092
- */
114093
112851
  domain: (string | null)
114094
- /**
114095
- * Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
114096
- */
114097
112852
  source: {
114098
- /**
114099
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
114100
- */
114101
112853
  referrer: (string | null)
114102
- /**
114103
- * utm_medium of the landing URL, e.g. cpc; null when absent.
114104
- */
114105
112854
  utmMedium: (string | null)
114106
- /**
114107
- * utm_source of the landing URL, e.g. newsletter; null when absent.
114108
- */
114109
112855
  utmSource: (string | null)
114110
- /**
114111
- * Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
114112
- */
114113
112856
  clickIdType: (string | null)
114114
- /**
114115
- * utm_campaign of the landing URL; null when absent.
114116
- */
114117
112857
  utmCampaign: (string | null)
114118
112858
  }
114119
- /**
114120
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
114121
- */
114122
112859
  country: (string | null)
114123
- /**
114124
- * Pseudonymous visitor id the person graph joins on. Null for a visitor who declined statistics consent or was never asked — those events arrive cookieless and carry no identifier at all.
114125
- */
114126
112860
  anonymousId: (string | null)
114127
112861
  }[]
114128
112862
  }
@@ -114135,52 +112869,18 @@ profileId: string
114135
112869
  }
114136
112870
 
114137
112871
  export interface TrackingProfilesDeleteOutput {
114138
- /**
114139
- * Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
114140
- */
114141
112872
  ok: true
114142
- /**
114143
- * What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
114144
- */
114145
112873
  archive: {
114146
- /**
114147
- * Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
114148
- */
114149
112874
  note: string
114150
- /**
114151
- * Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
114152
- */
114153
112875
  status: "gap_flagged"
114154
112876
  }
114155
- /**
114156
- * How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
114157
- */
114158
112877
  deleted: {
114159
- /**
114160
- * Tracked events removed, found through the anonymous ids this person browsed under.
114161
- */
114162
112878
  events: number
114163
- /**
114164
- * Merge records removed — the history of this person having been joined with another.
114165
- */
114166
112879
  merges: number
114167
- /**
114168
- * Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
114169
- */
114170
112880
  profile: number
114171
- /**
114172
- * Emails, phones, anonymous ids and click ids removed for this person.
114173
- */
114174
112881
  identifiers: number
114175
112882
  }
114176
- /**
114177
- * The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
114178
- */
114179
112883
  profileId: string
114180
- /**
114181
- * This erasure attempt. The completion event carries the same value under the same name, so a step recognises its own completion even when another workflow is erasing the same person at the same moment.
114182
- */
114183
- requestId: string
114184
112884
  }
114185
112885
 
114186
112886
  export interface TrackingProfilesExportInput {
@@ -114191,172 +112891,52 @@ profileId: string
114191
112891
  }
114192
112892
 
114193
112893
  export interface TrackingProfilesExportOutput {
114194
- /**
114195
- * The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
114196
- */
114197
112894
  journey: {
114198
- /**
114199
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
114200
- */
114201
112895
  ts: string
114202
- /**
114203
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
114204
- */
114205
112896
  ref: string
114206
- /**
114207
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
114208
- */
114209
112897
  url: (string | null)
114210
- /**
114211
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
114212
- */
114213
112898
  name: string
114214
- /**
114215
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
114216
- */
114217
112899
  props: {
114218
112900
  [k: string]: unknown
114219
112901
  }
114220
- /**
114221
- * Title of the page as the browser reported it. Null off-page.
114222
- */
114223
112902
  title: (string | null)
114224
- /**
114225
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
114226
- */
114227
112903
  domain: (string | null)
114228
- /**
114229
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
114230
- */
114231
112904
  source: {
114232
- /**
114233
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
114234
- */
114235
112905
  clickId: (string | null)
114236
- /**
114237
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
114238
- */
114239
112906
  utmTerm: (string | null)
114240
- /**
114241
- * utm_medium on the URL of this event.
114242
- */
114243
112907
  utmMedium: (string | null)
114244
- /**
114245
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
114246
- */
114247
112908
  utmSource: (string | null)
114248
- /**
114249
- * utm_content on the URL of this event — which creative or link variant was clicked.
114250
- */
114251
112909
  utmContent: (string | null)
114252
- /**
114253
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
114254
- */
114255
112910
  clickIdType: (string | null)
114256
- /**
114257
- * utm_campaign on the URL of this event.
114258
- */
114259
112911
  utmCampaign: (string | null)
114260
112912
  }
114261
- /**
114262
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
114263
- */
114264
112913
  country: (string | null)
114265
- /**
114266
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
114267
- */
114268
112914
  referrer: (string | null)
114269
- /**
114270
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
114271
- */
114272
112915
  sessionId: (string | null)
114273
112916
  }[]
114274
- /**
114275
- * The person themselves: their handle, how far they have come, and when they were seen.
114276
- */
114277
112917
  profile: {
114278
- /**
114279
- * How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
114280
- */
114281
112918
  status: ("anonymous" | "identified" | "customer")
114282
- /**
114283
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
114284
- */
114285
112919
  createdAt: string
114286
- /**
114287
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
114288
- */
114289
112920
  profileId: string
114290
- /**
114291
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
114292
- */
114293
112921
  lastSeenAt: string
114294
- /**
114295
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
114296
- */
114297
112922
  firstSeenAt: string
114298
112923
  }
114299
- /**
114300
- * Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
114301
- */
114302
112924
  signals: {
114303
- /**
114304
- * Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
114305
- */
114306
112925
  emails: string[]
114307
- /**
114308
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
114309
- */
114310
112926
  phones: string[]
114311
- /**
114312
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
114313
- */
114314
112927
  domains: string[]
114315
- /**
114316
- * Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
114317
- */
114318
112928
  clickIds: {
114319
- /**
114320
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
114321
- */
114322
112929
  type: string
114323
- /**
114324
- * The click identifier itself, raw, as the network stamped it on the landing URL.
114325
- */
114326
112930
  value: string
114327
112931
  }[]
114328
112932
  }
114329
- /**
114330
- * True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
114331
- */
114332
112933
  truncated: boolean
114333
- /**
114334
- * When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
114335
- */
114336
112934
  exportedAt: string
114337
- /**
114338
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
114339
- */
114340
112935
  acquisition: ({
114341
- /**
114342
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
114343
- */
114344
112936
  utmMedium: (string | null)
114345
- /**
114346
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
114347
- */
114348
112937
  utmSource: (string | null)
114349
- /**
114350
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
114351
- */
114352
112938
  clickIdType: (string | null)
114353
- /**
114354
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114355
- */
114356
112939
  firstSeenAt: string
114357
- /**
114358
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114359
- */
114360
112940
  utmCampaign: (string | null)
114361
112941
  } | null)
114362
112942
  }
@@ -114371,228 +112951,78 @@ profileId: string
114371
112951
  */
114372
112952
  journeyLimit?: number
114373
112953
  /**
114374
- * Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
112954
+ * Opaque cursor to page further back through the journey
114375
112955
  */
114376
112956
  journeyCursor?: string
114377
112957
  }
114378
112958
 
114379
112959
  export interface TrackingProfilesGetOutput {
114380
- /**
114381
- * Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
114382
- */
114383
112960
  ltv: ({
114384
- /**
114385
- * One row per currency this person has paid in. Empty for someone who never paid; there is no cross-currency total, because converting would need a rate this toolkit does not hold.
114386
- */
114387
112961
  entries: {
114388
- /**
114389
- * ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
114390
- */
114391
112962
  currency: string
114392
- /**
114393
- * What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
114394
- */
114395
112963
  netMinor: number
114396
- /**
114397
- * Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
114398
- */
114399
112964
  grossMinor: number
114400
- /**
114401
- * Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
114402
- */
114403
112965
  lastPaymentAt: (string | null)
114404
- /**
114405
- * How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
114406
- */
114407
112966
  refundedMinor: number
114408
- /**
114409
- * When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
114410
- */
114411
112967
  firstPaymentAt: (string | null)
114412
112968
  }[]
114413
- /**
114414
- * The person these totals belong to — the same handle as profile.profileId.
114415
- */
114416
112969
  profileId: string
114417
- /**
114418
- * When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
114419
- */
114420
112970
  computedAt: (string | null)
114421
112971
  } | null)
114422
- /**
114423
- * What this person did, newest first, one page at a time. Use the export step instead when the whole history is wanted in one go.
114424
- */
114425
112972
  journey: {
114426
- /**
114427
- * Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
114428
- */
114429
112973
  cursor: (string | null)
114430
- /**
114431
- * This page of the journey, newest event first.
114432
- */
114433
112974
  events: {
114434
- /**
114435
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
114436
- */
114437
112975
  ts: string
114438
- /**
114439
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
114440
- */
114441
112976
  ref: string
114442
- /**
114443
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
114444
- */
114445
112977
  url: (string | null)
114446
- /**
114447
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
114448
- */
114449
112978
  name: string
114450
- /**
114451
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
114452
- */
114453
112979
  props: {
114454
112980
  [k: string]: unknown
114455
112981
  }
114456
- /**
114457
- * Title of the page as the browser reported it. Null off-page.
114458
- */
114459
112982
  title: (string | null)
114460
- /**
114461
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
114462
- */
114463
112983
  domain: (string | null)
114464
- /**
114465
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
114466
- */
114467
112984
  source: {
114468
- /**
114469
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
114470
- */
114471
112985
  clickId: (string | null)
114472
- /**
114473
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
114474
- */
114475
112986
  utmTerm: (string | null)
114476
- /**
114477
- * utm_medium on the URL of this event.
114478
- */
114479
112987
  utmMedium: (string | null)
114480
- /**
114481
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
114482
- */
114483
112988
  utmSource: (string | null)
114484
- /**
114485
- * utm_content on the URL of this event — which creative or link variant was clicked.
114486
- */
114487
112989
  utmContent: (string | null)
114488
- /**
114489
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
114490
- */
114491
112990
  clickIdType: (string | null)
114492
- /**
114493
- * utm_campaign on the URL of this event.
114494
- */
114495
112991
  utmCampaign: (string | null)
114496
112992
  }
114497
- /**
114498
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
114499
- */
114500
112993
  country: (string | null)
114501
- /**
114502
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
114503
- */
114504
112994
  referrer: (string | null)
114505
- /**
114506
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
114507
- */
114508
112995
  sessionId: (string | null)
114509
112996
  }[]
114510
112997
  }
114511
- /**
114512
- * The person themselves: their handle, how far they have come, and when they were seen.
114513
- */
114514
112998
  profile: {
114515
- /**
114516
- * How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
114517
- */
114518
112999
  status: ("anonymous" | "identified" | "customer")
114519
- /**
114520
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
114521
- */
114522
113000
  createdAt: string
114523
- /**
114524
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
114525
- */
114526
113001
  profileId: string
114527
- /**
114528
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
114529
- */
114530
113002
  lastSeenAt: string
114531
- /**
114532
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
114533
- */
114534
113003
  firstSeenAt: string
114535
113004
  }
114536
- /**
114537
- * Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
114538
- */
114539
113005
  signals: {
114540
- /**
114541
- * Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
114542
- */
114543
113006
  emails: string[]
114544
- /**
114545
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
114546
- */
114547
113007
  phones: string[]
114548
- /**
114549
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
114550
- */
114551
113008
  domains: string[]
114552
- /**
114553
- * Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
114554
- */
114555
113009
  clickIds: {
114556
- /**
114557
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
114558
- */
114559
113010
  type: string
114560
- /**
114561
- * The click identifier itself, raw, as the network stamped it on the landing URL.
114562
- */
114563
113011
  value: string
114564
113012
  }[]
114565
113013
  }
114566
- /**
114567
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
114568
- */
114569
113014
  acquisition: ({
114570
- /**
114571
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
114572
- */
114573
113015
  utmMedium: (string | null)
114574
- /**
114575
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
114576
- */
114577
113016
  utmSource: (string | null)
114578
- /**
114579
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
114580
- */
114581
113017
  clickIdType: (string | null)
114582
- /**
114583
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114584
- */
114585
113018
  firstSeenAt: string
114586
- /**
114587
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114588
- */
114589
113019
  utmCampaign: (string | null)
114590
113020
  } | null)
114591
113021
  }
114592
113022
 
114593
113023
  export interface TrackingProfilesListInput {
114594
113024
  /**
114595
- * Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
113025
+ * Exact email to find (case-insensitive), or a prefix when emailMatch=prefix
114596
113026
  */
114597
113027
  email?: string
114598
113028
  /**
@@ -114600,363 +113030,132 @@ email?: string
114600
113030
  */
114601
113031
  limit?: number
114602
113032
  /**
114603
- * Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
113033
+ * Opaque pagination cursor from a previous response
114604
113034
  */
114605
113035
  cursor?: string
114606
113036
  /**
114607
- * Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
113037
+ * Filter by profile status
114608
113038
  */
114609
113039
  status?: ("anonymous" | "identified" | "customer")
114610
113040
  /**
114611
- * How the email filter is matched: exact (default) compares the whole address case-insensitively, prefix matches everyone whose address starts with what you typed.
113041
+ * How to match the email filter
114612
113042
  */
114613
113043
  emailMatch?: ("exact" | "prefix")
114614
113044
  }
114615
113045
 
114616
113046
  export interface TrackingProfilesListOutput {
114617
- /**
114618
- * Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
114619
- */
114620
113047
  cursor: (string | null)
114621
- /**
114622
- * The page of people, most recently seen first. Shorter than the requested limit on the last page.
114623
- */
114624
113048
  profiles: {
114625
- /**
114626
- * Every email this person has been identified by. Stably ordered for display, with no primary among them — position 0 is not the address to contact.
114627
- */
114628
113049
  emails: string[]
114629
- /**
114630
- * How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
114631
- */
114632
113050
  status: ("anonymous" | "identified" | "customer")
114633
- /**
114634
- * Stable handle for this person. Feed it to a get, export or erase step.
114635
- */
114636
113051
  profileId: string
114637
- /**
114638
- * Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
114639
- */
114640
113052
  lastSeenAt: string
114641
- /**
114642
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
114643
- */
114644
113053
  acquisition: ({
114645
- /**
114646
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
114647
- */
114648
113054
  utmMedium: (string | null)
114649
- /**
114650
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
114651
- */
114652
113055
  utmSource: (string | null)
114653
- /**
114654
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
114655
- */
114656
113056
  clickIdType: (string | null)
114657
- /**
114658
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114659
- */
114660
113057
  firstSeenAt: string
114661
- /**
114662
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114663
- */
114664
113058
  utmCampaign: (string | null)
114665
113059
  } | null)
114666
- /**
114667
- * Timestamp of their earliest event, ISO 8601 UTC.
114668
- */
114669
113060
  firstSeenAt: string
114670
113061
  }[]
114671
113062
  }
114672
113063
 
114673
113064
  export interface TrackingReportsAttributedJourneyInput {
114674
- /**
114675
- * Show only journey events at or before this instant (ISO). Omit for the whole history.
114676
- */
114677
113065
  to?: string
114678
- /**
114679
- * Show only journey events at or after this instant (ISO). Omit for the whole history.
114680
- */
114681
113066
  from?: string
114682
- /**
114683
- * Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
114684
- */
114685
113067
  model?: ("last_click" | "first_click")
114686
113068
  /**
114687
113069
  * The profile id (uuid)
114688
113070
  */
114689
113071
  profileId: string
114690
- /**
114691
- * How far back before the conversion a touchpoint may be credited, in days (default 30).
114692
- */
114693
113072
  lookbackDays?: number
114694
113073
  }
114695
113074
 
114696
113075
  export interface TrackingReportsAttributedJourneyOutput {
114697
- /**
114698
- * What this person actually did, in order.
114699
- */
114700
113076
  journey: {
114701
- /**
114702
- * Every tracked event for this person inside the requested window, oldest first.
114703
- */
114704
113077
  events: {
114705
- /**
114706
- * When the event happened (ISO 8601, UTC). Events are ordered oldest first.
114707
- */
114708
113078
  ts: string
114709
- /**
114710
- * Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
114711
- */
114712
113079
  ref: string
114713
- /**
114714
- * Page address the event fired on. Free text from the customer site, so it can carry personal data.
114715
- */
114716
113080
  url: (string | null)
114717
- /**
114718
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
114719
- */
114720
113081
  name: string
114721
- /**
114722
- * Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
114723
- */
114724
113082
  props: {
114725
113083
  [k: string]: unknown
114726
113084
  }
114727
- /**
114728
- * Document title of that page. Free text from the customer site, so it can carry personal data.
114729
- */
114730
113085
  title: (string | null)
114731
- /**
114732
- * Site the event came from; null when the tracker could not determine one.
114733
- */
114734
113086
  domain: (string | null)
114735
- /**
114736
- * Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
114737
- */
114738
113087
  source: {
114739
- /**
114740
- * The click id value itself. Identifies one ad click by this person, so treat it as personal data.
114741
- */
114742
113088
  clickId: (string | null)
114743
- /**
114744
- * utm_term of the landing URL, the paid keyword; null when absent.
114745
- */
114746
113089
  utmTerm: (string | null)
114747
- /**
114748
- * utm_medium of the landing URL; null when absent.
114749
- */
114750
113090
  utmMedium: (string | null)
114751
- /**
114752
- * utm_source of the landing URL; null when absent.
114753
- */
114754
113091
  utmSource: (string | null)
114755
- /**
114756
- * utm_content of the landing URL, the creative variant; null when absent.
114757
- */
114758
113092
  utmContent: (string | null)
114759
- /**
114760
- * Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
114761
- */
114762
113093
  clickIdType: (string | null)
114763
- /**
114764
- * utm_campaign of the landing URL; null when absent.
114765
- */
114766
113094
  utmCampaign: (string | null)
114767
113095
  }
114768
- /**
114769
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
114770
- */
114771
113096
  country: (string | null)
114772
- /**
114773
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
114774
- */
114775
113097
  referrer: (string | null)
114776
- /**
114777
- * Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
114778
- */
114779
113098
  sessionId: (string | null)
114780
113099
  }[]
114781
113100
  }
114782
- /**
114783
- * Holds at most one entry: the decision for this person's originating conversion, present only when that conversion falls inside the requested window. Kept as a list for callers that already read it; `originatingDecision` is the same value at a bindable path.
114784
- */
114785
- decisions: TrackingReportsAttributedJourneyOutputItems[]
114786
- /**
114787
- * The person this journey belongs to, echoed back from the request.
114788
- */
114789
- profileId: string
114790
- /**
114791
- * The attribution decision for this person's originating conversion — the same value as `decisions[0]`, at a path a workflow can bind. Null means the decision is not in THIS window, not that the person never converted: a conversion before `from` or after `to` is excluded here while still being their originating one. Widen the window to see it.
114792
- */
114793
- originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null)
114794
- }
114795
- export interface TrackingReportsAttributedJourneyOutputItems {
114796
- /**
114797
- * Attribution model the winner was picked under, echoed back from the request.
114798
- */
113101
+ decisions: {
114799
113102
  model: ("last_click" | "first_click")
114800
- /**
114801
- * Why this touchpoint won, or why nothing did, in a sentence a person can read.
114802
- */
114803
113103
  reason: string
114804
- /**
114805
- * Revenue of that conversion, one row per currency.
114806
- */
114807
113104
  revenue: {
114808
- /**
114809
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
114810
- */
114811
113105
  currency: string
114812
- /**
114813
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
114814
- */
114815
113106
  netMinor: number
114816
- /**
114817
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
114818
- */
114819
113107
  grossMinor: number
114820
- /**
114821
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
114822
- */
114823
113108
  refundedMinor: number
114824
113109
  }[]
114825
- /**
114826
- * `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
114827
- */
114828
113110
  winnerRef: (string | null)
114829
- /**
114830
- * When the conversion this decision explains happened (ISO 8601, UTC).
114831
- */
114832
113111
  conversionTs: string
114833
- /**
114834
- * How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
114835
- */
114836
113112
  lookbackDays: number
114837
- /**
114838
- * The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
114839
- */
114840
113113
  winningTouchpoint: ({
114841
- /**
114842
- * When the winning touchpoint happened (ISO 8601, UTC).
114843
- */
114844
113114
  ts: string
114845
- /**
114846
- * Channel the winning touchpoint belongs to.
114847
- */
114848
113115
  channel: ("paid" | "organic" | "direct" | "email")
114849
- /**
114850
- * utm_medium of the winning touchpoint; null when it carried none.
114851
- */
114852
113116
  utmMedium: (string | null)
114853
- /**
114854
- * utm_source of the winning touchpoint; null when it carried none.
114855
- */
114856
113117
  utmSource: (string | null)
114857
- /**
114858
- * Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
114859
- */
114860
- ltCampaign?: (string | null)
114861
- /**
114862
- * Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
114863
- */
114864
113118
  clickIdType: (string | null)
114865
- /**
114866
- * utm_campaign of the winning touchpoint; null when it carried none.
114867
- */
114868
113119
  utmCampaign: (string | null)
114869
113120
  } | null)
113121
+ }[]
113122
+ profileId: string
114870
113123
  }
114871
113124
 
114872
113125
  export interface TrackingReportsEventVolumeInput {
114873
- /**
114874
- * End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
114875
- */
114876
- to?: string
114877
- /**
114878
- * Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
114879
- */
114880
- from?: string
114881
- /**
114882
- * Count only this site. Omit to count every site the product sends from.
114883
- */
113126
+ to: string
113127
+ from: string
114884
113128
  domain?: string
114885
113129
  }
114886
113130
 
114887
113131
  export interface TrackingReportsEventVolumeOutput {
114888
- /**
114889
- * End of the range the figures cover, echoed back (ISO 8601, UTC).
114890
- */
114891
113132
  to: string
114892
- /**
114893
- * Start of the range the figures cover, echoed back (ISO 8601, UTC).
114894
- */
114895
113133
  from: string
114896
- /**
114897
- * Site the figures were restricted to; null when every site of the product is included.
114898
- */
114899
113134
  domain: (string | null)
114900
- /**
114901
- * When this report was computed (ISO 8601, UTC).
114902
- */
114903
113135
  computedAt: string
114904
- /**
114905
- * How COMPLETE the two headline figures above are. Contains no metric of its own — never present a field of it as a headline number and never add it to anything. consentGrantedEvents + cookielessEvents + noBannerEvents = totalEvents.
114906
- */
114907
113136
  dataQuality: {
114908
- /**
114909
- * Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
114910
- */
114911
113137
  noBannerShare: number
114912
- /**
114913
- * Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
114914
- */
114915
113138
  noBannerEvents: number
114916
- /**
114917
- * How many UTC days the range spans; each one re-counts a returning declining visitor.
114918
- */
114919
113139
  utcDaysInRange: number
114920
- /**
114921
- * Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
114922
- */
114923
113140
  cookielessShare: number
114924
- /**
114925
- * Events from visitors who declined; no cookie was written and no identifier sent.
114926
- */
114927
113141
  cookielessEvents: number
114928
- /**
114929
- * Events carrying an anonymous id. A different cut that overlaps the three consent buckets — it is not the complement of `cookielessEvents` and must never be added to it.
114930
- */
114931
113142
  identifiedEvents: number
114932
- /**
114933
- * True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
114934
- */
114935
113143
  visitorsOverstated: boolean
114936
- /**
114937
- * Events from visitors who granted statistics consent.
114938
- */
114939
113144
  consentGrantedEvents: number
114940
113145
  }
114941
- /**
114942
- * How many events arrived in the range, across every consent state.
114943
- */
114944
113146
  totalEvents: number
114945
- /**
114946
- * How many PEOPLE those events came from: one COUNT DISTINCT over consenting visitors (by anonymous id) and declining visitors (by a daily key destroyed each UTC midnight) at once. Over a range longer than one UTC day this is an OVER-count of the declining half — read `dataQuality.visitorsOverstated` before reporting it.
114947
- */
114948
113147
  visitorsDeduplicatedPerUtcDay: number
114949
113148
  }
114950
113149
 
114951
113150
  export interface TrackingReportsRevenueBySourceInput {
114952
113151
  /**
114953
- * Cohort window end (ISO). Optional — defaults to the moment of the call.
113152
+ * Cohort window end (ISO)
114954
113153
  */
114955
- to?: string
113154
+ to: string
114956
113155
  /**
114957
- * Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
113156
+ * Cohort window start (ISO); selects conversions by subscription start
114958
113157
  */
114959
- from?: string
113158
+ from: string
114960
113159
  /**
114961
113160
  * Attribution model
114962
113161
  */
@@ -114972,150 +113171,54 @@ lookbackDays?: number
114972
113171
  }
114973
113172
 
114974
113173
  export interface TrackingReportsRevenueBySourceOutput {
114975
- /**
114976
- * End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
114977
- */
114978
113174
  to: string
114979
- /**
114980
- * Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
114981
- */
114982
113175
  from: string
114983
- /**
114984
- * Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
114985
- */
114986
113176
  model: ("last_click" | "first_click")
114987
- /**
114988
- * Site touchpoints were restricted to; null when every site of the product was considered.
114989
- */
114990
113177
  domain: (string | null)
114991
- /**
114992
- * Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
114993
- */
114994
113178
  totals: {
114995
- /**
114996
- * Revenue over every channel plus `unattributed`, one row per currency.
114997
- */
114998
113179
  revenue: TrackingReportsRevenueBySourceOutputItems[]
114999
- /**
115000
- * Distinct paying people over every channel plus `unattributed`.
115001
- */
115002
113180
  customers: number
115003
113181
  }
115004
- /**
115005
- * One row per channel that earned revenue in the window. Channels with none are omitted.
115006
- */
115007
113182
  channels: {
115008
- /**
115009
- * Which acquisition channel this row aggregates.
115010
- */
115011
113183
  channel: ("paid" | "organic" | "direct" | "email")
115012
- /**
115013
- * Revenue credited to this channel, one row per currency, ordered by currency code. Currencies are never summed, so there is no single figure here: a product trading in two currencies has two rows and both must be reported.
115014
- */
115015
113184
  revenue: TrackingReportsRevenueBySourceOutputItems[]
115016
- /**
115017
- * Distinct paying people credited to this channel.
115018
- */
115019
113185
  customers: number
115020
- /**
115021
- * The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
115022
- */
115023
113186
  utmBreakdown: {
115024
- /**
115025
- * Revenue credited to this UTM combination, one row per currency.
115026
- */
115027
113187
  revenue: TrackingReportsRevenueBySourceOutputItems[]
115028
- /**
115029
- * Distinct paying people credited to this UTM combination.
115030
- */
115031
113188
  customers: number
115032
- /**
115033
- * utm_medium of this row; null when the visit carried none.
115034
- */
115035
113189
  utmMedium: (string | null)
115036
- /**
115037
- * utm_source of this row; null when the visit carried none.
115038
- */
115039
113190
  utmSource: (string | null)
115040
- /**
115041
- * Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
115042
- */
115043
113191
  clickIdType: (string | null)
115044
- /**
115045
- * utm_campaign of this row; null when the visit carried none.
115046
- */
115047
113192
  utmCampaign: (string | null)
115048
113193
  }[]
115049
113194
  }[]
115050
- /**
115051
- * Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
115052
- */
115053
113195
  matchRate: number
115054
- /**
115055
- * When this report was computed (ISO 8601, UTC).
115056
- */
115057
113196
  computedAt: string
115058
- /**
115059
- * How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
115060
- */
115061
113197
  lookbackDays: number
115062
- /**
115063
- * Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
115064
- */
115065
113198
  unattributed: {
115066
- /**
115067
- * Revenue no touchpoint could be credited for, one row per currency.
115068
- */
115069
113199
  revenue: TrackingReportsRevenueBySourceOutputItems[]
115070
- /**
115071
- * Distinct paying people no touchpoint could be credited for.
115072
- */
115073
113200
  customers: number
115074
113201
  }
115075
113202
  }
115076
113203
  export interface TrackingReportsRevenueBySourceOutputItems {
115077
- /**
115078
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
115079
- */
115080
113204
  currency: string
115081
- /**
115082
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
115083
- */
115084
113205
  netMinor: number
115085
- /**
115086
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
115087
- */
115088
113206
  grossMinor: number
115089
- /**
115090
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
115091
- */
115092
113207
  refundedMinor: number
115093
113208
  }
115094
113209
 
115095
113210
  export interface TrackingReportsSourcePeopleInput {
115096
- /**
115097
- * Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
115098
- */
115099
- to?: string
115100
- /**
115101
- * Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
115102
- */
115103
- from?: string
113211
+ to: string
113212
+ from: string
115104
113213
  /**
115105
113214
  * People per page (default 50, max 200)
115106
113215
  */
115107
113216
  limit?: number
115108
- /**
115109
- * Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
115110
- */
115111
113217
  model?: ("last_click" | "first_click")
115112
113218
  /**
115113
113219
  * Opaque keyset cursor from a previous page
115114
113220
  */
115115
113221
  cursor?: string
115116
- /**
115117
- * Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
115118
- */
115119
113222
  domain?: string
115120
113223
  /**
115121
113224
  * Channel to drill into
@@ -115125,72 +113228,27 @@ channel: ("paid" | "organic" | "direct" | "email")
115125
113228
  * Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
115126
113229
  */
115127
113230
  utmNulls?: string
115128
- /**
115129
- * utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
115130
- */
115131
113231
  utmMedium?: string
115132
- /**
115133
- * utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
115134
- */
115135
113232
  utmSource?: string
115136
113233
  /**
115137
113234
  * Native click-id type of the breakdown row to drill into (e.g. 'gclid'). Tri-state: omit for no filter (all click ids), pass a value to match it, or list 'clickIdType' in utmNulls to match the IS-NULL row.
115138
113235
  */
115139
113236
  clickIdType?: string
115140
- /**
115141
- * utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
115142
- */
115143
113237
  utmCampaign?: string
115144
- /**
115145
- * How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
115146
- */
115147
113238
  lookbackDays?: number
115148
113239
  }
115149
113240
 
115150
113241
  export interface TrackingReportsSourcePeopleOutput {
115151
- /**
115152
- * Pass back as `cursor` for the next page. Null on the last page.
115153
- */
115154
113242
  cursor: (string | null)
115155
- /**
115156
- * The page of people behind the requested row, ordered by the keyset the cursor walks.
115157
- */
115158
113243
  people: {
115159
- /**
115160
- * Where this person stands in their subscription lifecycle, e.g. active or churned.
115161
- */
115162
113244
  status: string
115163
- /**
115164
- * Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
115165
- */
115166
113245
  profileId: string
115167
- /**
115168
- * Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
115169
- */
115170
113246
  lastSeenAt: (string | null)
115171
- /**
115172
- * Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
115173
- */
115174
113247
  firstSeenAt: (string | null)
115175
- /**
115176
- * Lifetime revenue credited to this person under the requested model, one row per currency.
115177
- */
115178
113248
  attributedRevenue: {
115179
- /**
115180
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
115181
- */
115182
113249
  currency: string
115183
- /**
115184
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
115185
- */
115186
113250
  netMinor: number
115187
- /**
115188
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
115189
- */
115190
113251
  grossMinor: number
115191
- /**
115192
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
115193
- */
115194
113252
  refundedMinor: number
115195
113253
  }[]
115196
113254
  }[]
@@ -115201,21 +113259,9 @@ export interface TrackingSnippetsGetInput {
115201
113259
  }
115202
113260
 
115203
113261
  export interface TrackingSnippetsGetOutput {
115204
- /**
115205
- * Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
115206
- */
115207
113262
  host: string
115208
- /**
115209
- * The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
115210
- */
115211
113263
  snippet: string
115212
- /**
115213
- * Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
115214
- */
115215
113264
  scriptUrl: string
115216
- /**
115217
- * The same tag stripped to the bare script element, for tag managers and CMS fields that reject anything else. Behaves identically; use it only when the full snippet will not fit.
115218
- */
115219
113265
  minimalSnippet: string
115220
113266
  }
115221
113267
 
@@ -115231,75 +113277,13 @@ type: ("server" | "publishable")
115231
113277
  }
115232
113278
 
115233
113279
  export interface UsersApikeysCreateOutput {
115234
- /**
115235
- * Id of the key. Pass it to users_apikeys_revoke.
115236
- */
115237
113280
  id: string
115238
- /**
115239
- * The full secret key, shown ONCE. Store it now — it is never returned again, and a lost key is replaced by minting a new one.
115240
- */
115241
113281
  key: string
115242
- /**
115243
- * The label a human gave this key — which backend or environment holds it.
115244
- */
115245
- name: string
115246
- /**
115247
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115248
- */
115249
- type: ("server" | "publishable")
115250
- /**
115251
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115252
- */
115253
- value: (string | null)
115254
- /**
115255
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115256
- */
115257
- prefix: string
115258
- /**
115259
- * When the key was issued (ISO 8601).
115260
- */
115261
- createdAt: string
115262
- /**
115263
- * When the key was revoked (ISO 8601). Null while it still works.
115264
- */
115265
- revokedAt: (string | null)
115266
- }
115267
-
115268
- export interface UsersApikeysGetInput {
115269
- /**
115270
- * Id of the key to read — the `id` from users_apikeys_list.
115271
- */
115272
- id: string
115273
- }
115274
-
115275
- export interface UsersApikeysGetOutput {
115276
- /**
115277
- * Id of the key. Pass it to users_apikeys_revoke.
115278
- */
115279
- id: string
115280
- /**
115281
- * The label a human gave this key — which backend or environment holds it.
115282
- */
115283
113282
  name: string
115284
- /**
115285
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115286
- */
115287
113283
  type: ("server" | "publishable")
115288
- /**
115289
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115290
- */
115291
113284
  value: (string | null)
115292
- /**
115293
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115294
- */
115295
113285
  prefix: string
115296
- /**
115297
- * When the key was issued (ISO 8601).
115298
- */
115299
113286
  createdAt: string
115300
- /**
115301
- * When the key was revoked (ISO 8601). Null while it still works.
115302
- */
115303
113287
  revokedAt: (string | null)
115304
113288
  }
115305
113289
 
@@ -115309,33 +113293,12 @@ export interface UsersApikeysListInput {
115309
113293
 
115310
113294
  export interface UsersApikeysListOutput {
115311
113295
  keys: {
115312
- /**
115313
- * Id of the key. Pass it to users_apikeys_revoke.
115314
- */
115315
113296
  id: string
115316
- /**
115317
- * The label a human gave this key — which backend or environment holds it.
115318
- */
115319
113297
  name: string
115320
- /**
115321
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
115322
- */
115323
113298
  type: ("server" | "publishable")
115324
- /**
115325
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
115326
- */
115327
113299
  value: (string | null)
115328
- /**
115329
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
115330
- */
115331
113300
  prefix: string
115332
- /**
115333
- * When the key was issued (ISO 8601).
115334
- */
115335
113301
  createdAt: string
115336
- /**
115337
- * When the key was revoked (ISO 8601). Null while it still works.
115338
- */
115339
113302
  revokedAt: (string | null)
115340
113303
  }[]
115341
113304
  }
@@ -115348,13 +113311,7 @@ id: string
115348
113311
  }
115349
113312
 
115350
113313
  export interface UsersApikeysRevokeOutput {
115351
- /**
115352
- * Id of the key that was revoked.
115353
- */
115354
113314
  id: string
115355
- /**
115356
- * Always true — revocation is immediate and final.
115357
- */
115358
113315
  revoked: true
115359
113316
  }
115360
113317
 
@@ -115390,60 +113347,21 @@ targetType?: string
115390
113347
  }
115391
113348
 
115392
113349
  export interface UsersAuditListOutput {
115393
- /**
115394
- * The page of audit events, newest first.
115395
- */
115396
113350
  events: {
115397
- /**
115398
- * Id of this audit row.
115399
- */
115400
113351
  id: string
115401
- /**
115402
- * IP the action came from. Null when it was not an HTTP action.
115403
- */
115404
113352
  ip: (string | null)
115405
- /**
115406
- * What happened, as a dotted name — `user.created`, `passkey.deleted`, `email_change.override_applied`.
115407
- */
115408
113353
  action: string
115409
- /**
115410
- * Id of the actor. Null for a system action.
115411
- */
115412
113354
  actorId: (string | null)
115413
- /**
115414
- * Action-specific detail — the reason text, counts, whatever the action recorded.
115415
- */
115416
113355
  metadata: {
115417
113356
  [k: string]: unknown
115418
113357
  }
115419
- /**
115420
- * Id of the row the action was about. Null when there was none.
115421
- */
115422
113358
  targetId: (string | null)
115423
- /**
115424
- * Who acted: `operator` (a human or agent on the management plane), `end_user`, or `system`.
115425
- */
115426
113359
  actorType: ("operator" | "system" | "end_user")
115427
- /**
115428
- * When the action happened (ISO 8601).
115429
- */
115430
113360
  createdAt: string
115431
- /**
115432
- * Product the audited action happened in.
115433
- */
115434
113361
  productId: string
115435
- /**
115436
- * User agent the action came from. Null when none was sent.
115437
- */
115438
113362
  userAgent: (string | null)
115439
- /**
115440
- * What kind of row the action was about — `user` or `product`. Null when it was about nothing in particular.
115441
- */
115442
113363
  targetType: (string | null)
115443
113364
  }[]
115444
- /**
115445
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
115446
- */
115447
113365
  nextCursor: (string | null)
115448
113366
  }
115449
113367
 
@@ -116426,33 +114344,12 @@ userId: string
116426
114344
  }
116427
114345
 
116428
114346
  export interface UsersFactorsListOutput {
116429
- /**
116430
- * Every second factor this user has — types and status only, never material.
116431
- */
116432
114347
  factors: {
116433
- /**
116434
- * Kind of second factor: `totp` or `backup_codes`. No key material is ever returned.
116435
- */
116436
114348
  type: ("totp" | "backup_codes" | "webauthn")
116437
- /**
116438
- * Whether this factor is enrolled and usable, or still pending verification.
116439
- */
116440
114349
  status: ("unverified" | "verified")
116441
- /**
116442
- * When the factor was enrolled (ISO 8601).
116443
- */
116444
114350
  createdAt: string
116445
- /**
116446
- * `backup_codes` only: how many of the batch are still unspent. Null for any other factor type.
116447
- */
116448
114351
  remaining: (number | null)
116449
- /**
116450
- * When the factor was last used to sign in (ISO 8601). Null if it never was.
116451
- */
116452
114352
  lastUsedAt: (string | null)
116453
- /**
116454
- * When the user first proved the factor works (ISO 8601). Null while it is unverified.
116455
- */
116456
114353
  verifiedAt: (string | null)
116457
114354
  }[]
116458
114355
  }
@@ -116469,13 +114366,7 @@ userId: string
116469
114366
  }
116470
114367
 
116471
114368
  export interface UsersFactorsResetOutput {
116472
- /**
116473
- * Id of the scheduled reset. The same value arrives on `users/mfa.reset-settled`, which is what finishes this step.
116474
- */
116475
114369
  requestId: string
116476
- /**
116477
- * When the removal happens, if nobody aborts it first (ISO 8601). The delay is this product's, not a fixed one.
116478
- */
116479
114370
  scheduledFor: string
116480
114371
  }
116481
114372
 
@@ -116771,52 +114662,6 @@ signInFailureBaseline: (number | null)
116771
114662
  }
116772
114663
  }
116773
114664
 
116774
- export interface UsersPasskeysGetInput {
116775
- /**
116776
- * The end user the credential belongs to.
116777
- */
116778
- userId: string
116779
- /**
116780
- * Which credential to read — the `id` from `users_passkeys_list`.
116781
- */
116782
- passkeyId: string
116783
- }
116784
-
116785
- export interface UsersPasskeysGetOutput {
116786
- /**
116787
- * Id of the credential. Pass it to users_passkeys_revoke.
116788
- */
116789
- id: string
116790
- /**
116791
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
116792
- */
116793
- name: (string | null)
116794
- /**
116795
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
116796
- */
116797
- aaguid: (string | null)
116798
- /**
116799
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
116800
- */
116801
- backedUp: boolean
116802
- /**
116803
- * When the credential was registered (ISO 8601).
116804
- */
116805
- createdAt: string
116806
- /**
116807
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
116808
- */
116809
- signCount: number
116810
- /**
116811
- * When it last signed in (ISO 8601). Null when it never has.
116812
- */
116813
- lastUsedAt: (string | null)
116814
- /**
116815
- * How this authenticator can be reached. Empty when the browser reported nothing — the vocabulary is the platform’s and grows, so it is not an enum.
116816
- */
116817
- transports: string[]
116818
- }
116819
-
116820
114665
  export interface UsersPasskeysListInput {
116821
114666
  /**
116822
114667
  * The end user whose passkeys to list.
@@ -116825,41 +114670,14 @@ userId: string
116825
114670
  }
116826
114671
 
116827
114672
  export interface UsersPasskeysListOutput {
116828
- /**
116829
- * The credentials this user has registered, newest first. Empty when they have none.
116830
- */
116831
114673
  passkeys: {
116832
- /**
116833
- * Id of the credential. Pass it to users_passkeys_revoke.
116834
- */
116835
114674
  id: string
116836
- /**
116837
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
116838
- */
116839
114675
  name: (string | null)
116840
- /**
116841
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
116842
- */
116843
114676
  aaguid: (string | null)
116844
- /**
116845
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
116846
- */
116847
114677
  backedUp: boolean
116848
- /**
116849
- * When the credential was registered (ISO 8601).
116850
- */
116851
114678
  createdAt: string
116852
- /**
116853
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
116854
- */
116855
114679
  signCount: number
116856
- /**
116857
- * When it last signed in (ISO 8601). Null when it never has.
116858
- */
116859
114680
  lastUsedAt: (string | null)
116860
- /**
116861
- * How this authenticator can be reached. Empty when the browser reported nothing — the vocabulary is the platform’s and grows, so it is not an enum.
116862
- */
116863
114681
  transports: string[]
116864
114682
  }[]
116865
114683
  }
@@ -116884,18 +114702,9 @@ export interface UsersPasskeysRevokeOutput {
116884
114702
  * Present when the revoke was refused — today, only because it was the last way in.
116885
114703
  */
116886
114704
  error: ({
116887
- /**
116888
- * Why it was refused. Today only `passkey_last_way_in`.
116889
- */
116890
114705
  code: string
116891
- /**
116892
- * The refusal in a sentence, safe to show a human.
116893
- */
116894
114706
  message: string
116895
114707
  } | null)
116896
- /**
116897
- * `deleted` when the credential is gone, `failed` when the revoke was refused.
116898
- */
116899
114708
  status: ("deleted" | "failed")
116900
114709
  }
116901
114710
 
@@ -116907,13 +114716,7 @@ sessionId: string
116907
114716
  }
116908
114717
 
116909
114718
  export interface UsersSessionsGetOutput {
116910
- /**
116911
- * Id of this session. Pass it to users_sessions_revoke.
116912
- */
116913
114719
  id: string
116914
- /**
116915
- * IP the session was opened from. Null when it was not recorded.
116916
- */
116917
114720
  ip: (string | null)
116918
114721
  /**
116919
114722
  * `aal2` only if a verified second factor completed.
@@ -116923,45 +114726,18 @@ aal: ("aal1" | "aal2")
116923
114726
  * The factors this session was established with.
116924
114727
  */
116925
114728
  amr: string[]
116926
- /**
116927
- * Whether the session is still usable, expired, or revoked.
116928
- */
116929
114729
  status: ("active" | "revoked")
116930
- /**
116931
- * The end user this session belongs to.
116932
- */
116933
114730
  userId: string
116934
- /**
116935
- * When the session was opened (ISO 8601).
116936
- */
116937
114731
  createdAt: string
116938
- /**
116939
- * When the current token stops working unless refreshed (ISO 8601).
116940
- */
116941
114732
  expiresAt: string
116942
- /**
116943
- * When the session was revoked (ISO 8601). Null while it is live.
116944
- */
116945
114733
  revokedAt: (string | null)
116946
- /**
116947
- * User agent the session was opened from. Null when none was sent.
116948
- */
116949
114734
  userAgent: (string | null)
116950
- /**
116951
- * Why the session ended, when it was revoked — e.g. `signout`, `ban`, `mfa_reset`. Null while it is live. The vocabulary is additive, so it is not an enum.
116952
- */
116953
114735
  revokedReason: (string | null)
116954
114736
  /**
116955
114737
  * The operator behind an impersonated session, or null for an ordinary one.
116956
114738
  */
116957
114739
  impersonatedBy: (string | null)
116958
- /**
116959
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
116960
- */
116961
114740
  lastRefreshedAt: (string | null)
116962
- /**
116963
- * When the session ends no matter how often it refreshes (ISO 8601).
116964
- */
116965
114741
  absoluteExpiresAt: string
116966
114742
  }
116967
114743
 
@@ -117001,49 +114777,16 @@ userId: string
117001
114777
  }
117002
114778
 
117003
114779
  export interface UsersSessionsListOutput {
117004
- /**
117005
- * The sessions matching the filter, newest first.
117006
- */
117007
114780
  sessions: {
117008
- /**
117009
- * Id of this session. Pass it to users_sessions_revoke.
117010
- */
117011
114781
  id: string
117012
- /**
117013
- * IP the session was opened from. Null when it was not recorded.
117014
- */
117015
114782
  ip: (string | null)
117016
- /**
117017
- * Whether the session is still usable, expired, or revoked.
117018
- */
117019
114783
  status: ("active" | "revoked")
117020
- /**
117021
- * The end user this session belongs to.
117022
- */
117023
114784
  userId: string
117024
- /**
117025
- * When the session was opened (ISO 8601).
117026
- */
117027
114785
  createdAt: string
117028
- /**
117029
- * When the current token stops working unless refreshed (ISO 8601).
117030
- */
117031
114786
  expiresAt: string
117032
- /**
117033
- * When the session was revoked (ISO 8601). Null while it is live.
117034
- */
117035
114787
  revokedAt: (string | null)
117036
- /**
117037
- * User agent the session was opened from. Null when none was sent.
117038
- */
117039
114788
  userAgent: (string | null)
117040
- /**
117041
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
117042
- */
117043
114789
  lastRefreshedAt: (string | null)
117044
- /**
117045
- * When the session ends no matter how often it refreshes (ISO 8601).
117046
- */
117047
114790
  absoluteExpiresAt: string
117048
114791
  }[]
117049
114792
  }
@@ -117060,9 +114803,6 @@ sessionId?: string
117060
114803
  }
117061
114804
 
117062
114805
  export interface UsersSessionsRevokeOutput {
117063
- /**
117064
- * How many sessions were revoked. Zero when there was nothing live to revoke.
117065
- */
117066
114806
  revoked: number
117067
114807
  }
117068
114808
 
@@ -117189,126 +114929,37 @@ userId: string
117189
114929
  }
117190
114930
 
117191
114931
  export interface UsersUsersBanOutput {
117192
- /**
117193
- * Id of this end user. Pass it to any users_users_* tool.
117194
- */
117195
114932
  id: string
117196
- /**
117197
- * The user's display name. Null when nobody set one.
117198
- */
117199
114933
  name: (string | null)
117200
- /**
117201
- * When the user was banned (ISO 8601). Null while they are not banned.
117202
- */
117203
114934
  bannedAt: (string | null)
117204
- /**
117205
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117206
- */
117207
114935
  erasedAt: (string | null)
117208
- /**
117209
- * URL of the user's avatar. Null when there is none.
117210
- */
117211
114936
  imageUrl: (string | null)
117212
- /**
117213
- * Whether this is a test fixture — excluded from metering and from the default listing.
117214
- */
117215
114937
  testUser: boolean
117216
- /**
117217
- * When the user was created (ISO 8601).
117218
- */
117219
114938
  createdAt: string
117220
- /**
117221
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117222
- */
117223
114939
  deletedAt: (string | null)
117224
- /**
117225
- * Product this user belongs to. Never an input — it comes from the calling identity.
117226
- */
117227
114940
  productId: string
117228
- /**
117229
- * When the user was last changed (ISO 8601).
117230
- */
117231
114941
  updatedAt: string
117232
- /**
117233
- * Whether this user is still on the waitlist and cannot sign in yet.
117234
- */
117235
114942
  waitlisted: boolean
117236
- /**
117237
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
117238
- */
117239
114943
  identifiers: {
117240
- /**
117241
- * Id of this identifier row.
117242
- */
117243
114944
  id: string
117244
- /**
117245
- * What kind of identifier this is. Today always `email`.
117246
- */
117247
114945
  type: "email"
117248
- /**
117249
- * The address as the user typed it, for display.
117250
- */
117251
114946
  value: string
117252
- /**
117253
- * Whether this is the identifier the user signs in with and is contacted at.
117254
- */
117255
114947
  isPrimary: boolean
117256
- /**
117257
- * When this address was verified (ISO 8601). Null while it never was.
117258
- */
117259
114948
  verifiedAt: (string | null)
117260
- /**
117261
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117262
- */
117263
114949
  valueCanonical: string
117264
- /**
117265
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117266
- */
117267
114950
  verificationStatus: ("unverified" | "verified" | "expired")
117268
114951
  }[]
117269
- /**
117270
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117271
- */
117272
114952
  lockedUntil: (string | null)
117273
- /**
117274
- * When the user last signed in (ISO 8601). Null if they never have.
117275
- */
117276
114953
  lastSignInAt: (string | null)
117277
- /**
117278
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117279
- */
117280
- primaryEmail: (string | null)
117281
- /**
117282
- * Whether the user must set a new password at their next sign-in.
117283
- */
117284
114954
  requiresReset: boolean
117285
- /**
117286
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117287
- */
117288
- publicMetadata: {
117289
- [k: string]: unknown
117290
- }
117291
- /**
117292
- * Metadata the end user may write themselves. Treat it as untrusted.
117293
- */
117294
- unsafeMetadata: {
117295
- [k: string]: unknown
114955
+ publicMetadata: UsersUsersBanOutputPublicMetadata
114956
+ unsafeMetadata: UsersUsersBanOutputPublicMetadata
114957
+ privateMetadata: UsersUsersBanOutputPublicMetadata
114958
+ emailChangeLockedUntil: (string | null)
117296
114959
  }
117297
- /**
117298
- * Metadata for the management plane only. Never reaches the end user or a token.
117299
- */
117300
- privateMetadata: {
114960
+ export interface UsersUsersBanOutputPublicMetadata {
117301
114961
  [k: string]: unknown
117302
114962
  }
117303
- /**
117304
- * Id of the primary identifier row. Null when there is no primary identifier.
117305
- */
117306
- primaryIdentifierId: (string | null)
117307
- /**
117308
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
117309
- */
117310
- emailChangeLockedUntil: (string | null)
117311
- }
117312
114963
 
117313
114964
  export interface UsersUsersCreateInput {
117314
114965
  /**
@@ -117411,126 +115062,37 @@ export interface UsersUsersCreateInputPublicMetadata1 {
117411
115062
  }
117412
115063
 
117413
115064
  export interface UsersUsersCreateOutput {
117414
- /**
117415
- * Id of this end user. Pass it to any users_users_* tool.
117416
- */
117417
115065
  id: string
117418
- /**
117419
- * The user's display name. Null when nobody set one.
117420
- */
117421
115066
  name: (string | null)
117422
- /**
117423
- * When the user was banned (ISO 8601). Null while they are not banned.
117424
- */
117425
115067
  bannedAt: (string | null)
117426
- /**
117427
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117428
- */
117429
115068
  erasedAt: (string | null)
117430
- /**
117431
- * URL of the user's avatar. Null when there is none.
117432
- */
117433
115069
  imageUrl: (string | null)
117434
- /**
117435
- * Whether this is a test fixture — excluded from metering and from the default listing.
117436
- */
117437
115070
  testUser: boolean
117438
- /**
117439
- * When the user was created (ISO 8601).
117440
- */
117441
115071
  createdAt: string
117442
- /**
117443
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117444
- */
117445
115072
  deletedAt: (string | null)
117446
- /**
117447
- * Product this user belongs to. Never an input — it comes from the calling identity.
117448
- */
117449
115073
  productId: string
117450
- /**
117451
- * When the user was last changed (ISO 8601).
117452
- */
117453
115074
  updatedAt: string
117454
- /**
117455
- * Whether this user is still on the waitlist and cannot sign in yet.
117456
- */
117457
115075
  waitlisted: boolean
117458
- /**
117459
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
117460
- */
117461
115076
  identifiers: {
117462
- /**
117463
- * Id of this identifier row.
117464
- */
117465
115077
  id: string
117466
- /**
117467
- * What kind of identifier this is. Today always `email`.
117468
- */
117469
115078
  type: "email"
117470
- /**
117471
- * The address as the user typed it, for display.
117472
- */
117473
115079
  value: string
117474
- /**
117475
- * Whether this is the identifier the user signs in with and is contacted at.
117476
- */
117477
115080
  isPrimary: boolean
117478
- /**
117479
- * When this address was verified (ISO 8601). Null while it never was.
117480
- */
117481
115081
  verifiedAt: (string | null)
117482
- /**
117483
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117484
- */
117485
115082
  valueCanonical: string
117486
- /**
117487
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117488
- */
117489
115083
  verificationStatus: ("unverified" | "verified" | "expired")
117490
115084
  }[]
117491
- /**
117492
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117493
- */
117494
115085
  lockedUntil: (string | null)
117495
- /**
117496
- * When the user last signed in (ISO 8601). Null if they never have.
117497
- */
117498
115086
  lastSignInAt: (string | null)
117499
- /**
117500
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117501
- */
117502
- primaryEmail: (string | null)
117503
- /**
117504
- * Whether the user must set a new password at their next sign-in.
117505
- */
117506
115087
  requiresReset: boolean
117507
- /**
117508
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117509
- */
117510
- publicMetadata: {
117511
- [k: string]: unknown
117512
- }
117513
- /**
117514
- * Metadata the end user may write themselves. Treat it as untrusted.
117515
- */
117516
- unsafeMetadata: {
117517
- [k: string]: unknown
117518
- }
117519
- /**
117520
- * Metadata for the management plane only. Never reaches the end user or a token.
117521
- */
117522
- privateMetadata: {
117523
- [k: string]: unknown
117524
- }
117525
- /**
117526
- * Id of the primary identifier row. Null when there is no primary identifier.
117527
- */
117528
- primaryIdentifierId: (string | null)
117529
- /**
117530
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
117531
- */
115088
+ publicMetadata: UsersUsersCreateOutputPublicMetadata
115089
+ unsafeMetadata: UsersUsersCreateOutputPublicMetadata
115090
+ privateMetadata: UsersUsersCreateOutputPublicMetadata
117532
115091
  emailChangeLockedUntil: (string | null)
117533
115092
  }
115093
+ export interface UsersUsersCreateOutputPublicMetadata {
115094
+ [k: string]: unknown
115095
+ }
117534
115096
 
117535
115097
  export interface UsersUsersDeleteInput {
117536
115098
  /**
@@ -117540,126 +115102,37 @@ userId: string
117540
115102
  }
117541
115103
 
117542
115104
  export interface UsersUsersDeleteOutput {
117543
- /**
117544
- * Id of this end user. Pass it to any users_users_* tool.
117545
- */
117546
115105
  id: string
117547
- /**
117548
- * The user's display name. Null when nobody set one.
117549
- */
117550
115106
  name: (string | null)
117551
- /**
117552
- * When the user was banned (ISO 8601). Null while they are not banned.
117553
- */
117554
115107
  bannedAt: (string | null)
117555
- /**
117556
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117557
- */
117558
115108
  erasedAt: (string | null)
117559
- /**
117560
- * URL of the user's avatar. Null when there is none.
117561
- */
117562
115109
  imageUrl: (string | null)
117563
- /**
117564
- * Whether this is a test fixture — excluded from metering and from the default listing.
117565
- */
117566
115110
  testUser: boolean
117567
- /**
117568
- * When the user was created (ISO 8601).
117569
- */
117570
115111
  createdAt: string
117571
- /**
117572
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117573
- */
117574
115112
  deletedAt: (string | null)
117575
- /**
117576
- * Product this user belongs to. Never an input — it comes from the calling identity.
117577
- */
117578
115113
  productId: string
117579
- /**
117580
- * When the user was last changed (ISO 8601).
117581
- */
117582
115114
  updatedAt: string
117583
- /**
117584
- * Whether this user is still on the waitlist and cannot sign in yet.
117585
- */
117586
115115
  waitlisted: boolean
117587
- /**
117588
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
117589
- */
117590
115116
  identifiers: {
117591
- /**
117592
- * Id of this identifier row.
117593
- */
117594
115117
  id: string
117595
- /**
117596
- * What kind of identifier this is. Today always `email`.
117597
- */
117598
115118
  type: "email"
117599
- /**
117600
- * The address as the user typed it, for display.
117601
- */
117602
115119
  value: string
117603
- /**
117604
- * Whether this is the identifier the user signs in with and is contacted at.
117605
- */
117606
115120
  isPrimary: boolean
117607
- /**
117608
- * When this address was verified (ISO 8601). Null while it never was.
117609
- */
117610
115121
  verifiedAt: (string | null)
117611
- /**
117612
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117613
- */
117614
115122
  valueCanonical: string
117615
- /**
117616
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117617
- */
117618
115123
  verificationStatus: ("unverified" | "verified" | "expired")
117619
115124
  }[]
117620
- /**
117621
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117622
- */
117623
115125
  lockedUntil: (string | null)
117624
- /**
117625
- * When the user last signed in (ISO 8601). Null if they never have.
117626
- */
117627
115126
  lastSignInAt: (string | null)
117628
- /**
117629
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117630
- */
117631
- primaryEmail: (string | null)
117632
- /**
117633
- * Whether the user must set a new password at their next sign-in.
117634
- */
117635
115127
  requiresReset: boolean
117636
- /**
117637
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117638
- */
117639
- publicMetadata: {
117640
- [k: string]: unknown
117641
- }
117642
- /**
117643
- * Metadata the end user may write themselves. Treat it as untrusted.
117644
- */
117645
- unsafeMetadata: {
117646
- [k: string]: unknown
115128
+ publicMetadata: UsersUsersDeleteOutputPublicMetadata
115129
+ unsafeMetadata: UsersUsersDeleteOutputPublicMetadata
115130
+ privateMetadata: UsersUsersDeleteOutputPublicMetadata
115131
+ emailChangeLockedUntil: (string | null)
117647
115132
  }
117648
- /**
117649
- * Metadata for the management plane only. Never reaches the end user or a token.
117650
- */
117651
- privateMetadata: {
115133
+ export interface UsersUsersDeleteOutputPublicMetadata {
117652
115134
  [k: string]: unknown
117653
115135
  }
117654
- /**
117655
- * Id of the primary identifier row. Null when there is no primary identifier.
117656
- */
117657
- primaryIdentifierId: (string | null)
117658
- /**
117659
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
117660
- */
117661
- emailChangeLockedUntil: (string | null)
117662
- }
117663
115136
 
117664
115137
  export interface UsersUsersExportInput {
117665
115138
  /**
@@ -117687,129 +115160,40 @@ includeDeleted?: boolean
117687
115160
  export interface UsersUsersExportOutput {
117688
115161
  count: number
117689
115162
  users: {
117690
- /**
117691
- * Id of this end user. Pass it to any users_users_* tool.
117692
- */
117693
115163
  id: string
117694
- /**
117695
- * The user's display name. Null when nobody set one.
117696
- */
117697
115164
  name: (string | null)
117698
- /**
117699
- * When the user was banned (ISO 8601). Null while they are not banned.
117700
- */
117701
115165
  bannedAt: (string | null)
117702
- /**
117703
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117704
- */
117705
115166
  erasedAt: (string | null)
117706
- /**
117707
- * URL of the user's avatar. Null when there is none.
117708
- */
117709
115167
  imageUrl: (string | null)
117710
- /**
117711
- * Whether this is a test fixture — excluded from metering and from the default listing.
117712
- */
117713
115168
  testUser: boolean
117714
- /**
117715
- * When the user was created (ISO 8601).
117716
- */
117717
115169
  createdAt: string
117718
- /**
117719
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117720
- */
117721
115170
  deletedAt: (string | null)
117722
- /**
117723
- * Product this user belongs to. Never an input — it comes from the calling identity.
117724
- */
117725
115171
  productId: string
117726
- /**
117727
- * When the user was last changed (ISO 8601).
117728
- */
117729
115172
  updatedAt: string
117730
- /**
117731
- * Whether this user is still on the waitlist and cannot sign in yet.
117732
- */
117733
115173
  waitlisted: boolean
117734
- /**
117735
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
117736
- */
117737
115174
  identifiers: {
117738
- /**
117739
- * Id of this identifier row.
117740
- */
117741
115175
  id: string
117742
- /**
117743
- * What kind of identifier this is. Today always `email`.
117744
- */
117745
115176
  type: "email"
117746
- /**
117747
- * The address as the user typed it, for display.
117748
- */
117749
115177
  value: string
117750
- /**
117751
- * Whether this is the identifier the user signs in with and is contacted at.
117752
- */
117753
115178
  isPrimary: boolean
117754
- /**
117755
- * When this address was verified (ISO 8601). Null while it never was.
117756
- */
117757
115179
  verifiedAt: (string | null)
117758
- /**
117759
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117760
- */
117761
115180
  valueCanonical: string
117762
- /**
117763
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117764
- */
117765
115181
  verificationStatus: ("unverified" | "verified" | "expired")
117766
115182
  }[]
117767
- /**
117768
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117769
- */
117770
115183
  lockedUntil: (string | null)
117771
- /**
117772
- * When the user last signed in (ISO 8601). Null if they never have.
117773
- */
117774
115184
  lastSignInAt: (string | null)
117775
- /**
117776
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117777
- */
117778
- primaryEmail: (string | null)
117779
- /**
117780
- * Whether the user must set a new password at their next sign-in.
117781
- */
117782
115185
  requiresReset: boolean
117783
- /**
117784
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117785
- */
117786
- publicMetadata: {
117787
- [k: string]: unknown
117788
- }
117789
- /**
117790
- * Metadata the end user may write themselves. Treat it as untrusted.
117791
- */
117792
- unsafeMetadata: {
117793
- [k: string]: unknown
117794
- }
117795
- /**
117796
- * Metadata for the management plane only. Never reaches the end user or a token.
117797
- */
117798
- privateMetadata: {
117799
- [k: string]: unknown
117800
- }
117801
- /**
117802
- * Id of the primary identifier row. Null when there is no primary identifier.
117803
- */
117804
- primaryIdentifierId: (string | null)
117805
- /**
117806
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
117807
- */
115186
+ publicMetadata: UsersUsersExportOutputPublicMetadata
115187
+ unsafeMetadata: UsersUsersExportOutputPublicMetadata
115188
+ privateMetadata: UsersUsersExportOutputPublicMetadata
117808
115189
  emailChangeLockedUntil: (string | null)
117809
115190
  }[]
117810
115191
  exportedAt: string
117811
115192
  nextCursor: (string | null)
117812
115193
  }
115194
+ export interface UsersUsersExportOutputPublicMetadata {
115195
+ [k: string]: unknown
115196
+ }
117813
115197
 
117814
115198
  export interface UsersUsersGetInput {
117815
115199
  /**
@@ -117819,126 +115203,37 @@ userId: string
117819
115203
  }
117820
115204
 
117821
115205
  export interface UsersUsersGetOutput {
117822
- /**
117823
- * Id of this end user. Pass it to any users_users_* tool.
117824
- */
117825
115206
  id: string
117826
- /**
117827
- * The user's display name. Null when nobody set one.
117828
- */
117829
115207
  name: (string | null)
117830
- /**
117831
- * When the user was banned (ISO 8601). Null while they are not banned.
117832
- */
117833
115208
  bannedAt: (string | null)
117834
- /**
117835
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117836
- */
117837
115209
  erasedAt: (string | null)
117838
- /**
117839
- * URL of the user's avatar. Null when there is none.
117840
- */
117841
115210
  imageUrl: (string | null)
117842
- /**
117843
- * Whether this is a test fixture — excluded from metering and from the default listing.
117844
- */
117845
115211
  testUser: boolean
117846
- /**
117847
- * When the user was created (ISO 8601).
117848
- */
117849
115212
  createdAt: string
117850
- /**
117851
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117852
- */
117853
115213
  deletedAt: (string | null)
117854
- /**
117855
- * Product this user belongs to. Never an input — it comes from the calling identity.
117856
- */
117857
115214
  productId: string
117858
- /**
117859
- * When the user was last changed (ISO 8601).
117860
- */
117861
115215
  updatedAt: string
117862
- /**
117863
- * Whether this user is still on the waitlist and cannot sign in yet.
117864
- */
117865
115216
  waitlisted: boolean
117866
- /**
117867
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
117868
- */
117869
115217
  identifiers: {
117870
- /**
117871
- * Id of this identifier row.
117872
- */
117873
115218
  id: string
117874
- /**
117875
- * What kind of identifier this is. Today always `email`.
117876
- */
117877
115219
  type: "email"
117878
- /**
117879
- * The address as the user typed it, for display.
117880
- */
117881
115220
  value: string
117882
- /**
117883
- * Whether this is the identifier the user signs in with and is contacted at.
117884
- */
117885
115221
  isPrimary: boolean
117886
- /**
117887
- * When this address was verified (ISO 8601). Null while it never was.
117888
- */
117889
115222
  verifiedAt: (string | null)
117890
- /**
117891
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117892
- */
117893
115223
  valueCanonical: string
117894
- /**
117895
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117896
- */
117897
115224
  verificationStatus: ("unverified" | "verified" | "expired")
117898
115225
  }[]
117899
- /**
117900
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117901
- */
117902
115226
  lockedUntil: (string | null)
117903
- /**
117904
- * When the user last signed in (ISO 8601). Null if they never have.
117905
- */
117906
115227
  lastSignInAt: (string | null)
117907
- /**
117908
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117909
- */
117910
- primaryEmail: (string | null)
117911
- /**
117912
- * Whether the user must set a new password at their next sign-in.
117913
- */
117914
115228
  requiresReset: boolean
117915
- /**
117916
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117917
- */
117918
- publicMetadata: {
117919
- [k: string]: unknown
117920
- }
117921
- /**
117922
- * Metadata the end user may write themselves. Treat it as untrusted.
117923
- */
117924
- unsafeMetadata: {
117925
- [k: string]: unknown
115229
+ publicMetadata: UsersUsersGetOutputPublicMetadata
115230
+ unsafeMetadata: UsersUsersGetOutputPublicMetadata
115231
+ privateMetadata: UsersUsersGetOutputPublicMetadata
115232
+ emailChangeLockedUntil: (string | null)
117926
115233
  }
117927
- /**
117928
- * Metadata for the management plane only. Never reaches the end user or a token.
117929
- */
117930
- privateMetadata: {
115234
+ export interface UsersUsersGetOutputPublicMetadata {
117931
115235
  [k: string]: unknown
117932
115236
  }
117933
- /**
117934
- * Id of the primary identifier row. Null when there is no primary identifier.
117935
- */
117936
- primaryIdentifierId: (string | null)
117937
- /**
117938
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
117939
- */
117940
- emailChangeLockedUntil: (string | null)
117941
- }
117942
115237
 
117943
115238
  export interface UsersUsersImportInput {
117944
115239
  /**
@@ -117951,42 +115246,15 @@ users: [unknown, ...(unknown)[]]
117951
115246
  }
117952
115247
 
117953
115248
  export interface UsersUsersImportOutput {
117954
- /**
117955
- * How many rows could not be imported at all.
117956
- */
117957
115249
  failed: number
117958
- /**
117959
- * How many users were created.
117960
- */
117961
115250
  created: number
117962
- /**
117963
- * One row per submitted row, in the order you sent them.
117964
- */
117965
115251
  results: {
117966
- /**
117967
- * Zero-based index of the row in the `users` array you sent.
117968
- */
117969
115252
  row: number
117970
- /**
117971
- * Why it was skipped, or what went wrong. Null for a created row.
117972
- */
117973
115253
  reason: (string | null)
117974
- /**
117975
- * What happened to this row.
117976
- */
117977
115254
  status: ("created" | "skipped" | "failed")
117978
- /**
117979
- * The created user's id. Null for skipped and failed rows.
117980
- */
117981
115255
  userId: (string | null)
117982
115256
  }[]
117983
- /**
117984
- * How many rows were passed over — an address already in the directory, typically.
117985
- */
117986
115257
  skipped: number
117987
- /**
117988
- * How many rows you submitted.
117989
- */
117990
115258
  requested: number
117991
115259
  }
117992
115260
 
@@ -118014,21 +115282,9 @@ privateMetadata?: {
118014
115282
  }
118015
115283
 
118016
115284
  export interface UsersUsersInviteOutput {
118017
- /**
118018
- * False when the re-invite cooldown or the mail toolkit refused the send. The invite is still live.
118019
- */
118020
115285
  mailed: boolean
118021
- /**
118022
- * The invited user, created immediately and listed straight away — they simply cannot sign in until they accept.
118023
- */
118024
115286
  userId: string
118025
- /**
118026
- * False when this address had already been invited; the same user is returned.
118027
- */
118028
115287
  created: boolean
118029
- /**
118030
- * When the invite link stops working (ISO 8601).
118031
- */
118032
115288
  expiresAt: string
118033
115289
  }
118034
115290
 
@@ -118064,135 +115320,40 @@ includeWaitlisted?: boolean
118064
115320
  }
118065
115321
 
118066
115322
  export interface UsersUsersListOutput {
118067
- /**
118068
- * The page of users, newest first.
118069
- */
118070
115323
  users: {
118071
- /**
118072
- * Id of this end user. Pass it to any users_users_* tool.
118073
- */
118074
115324
  id: string
118075
- /**
118076
- * The user's display name. Null when nobody set one.
118077
- */
118078
115325
  name: (string | null)
118079
- /**
118080
- * When the user was banned (ISO 8601). Null while they are not banned.
118081
- */
118082
115326
  bannedAt: (string | null)
118083
- /**
118084
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
118085
- */
118086
115327
  erasedAt: (string | null)
118087
- /**
118088
- * URL of the user's avatar. Null when there is none.
118089
- */
118090
115328
  imageUrl: (string | null)
118091
- /**
118092
- * Whether this is a test fixture — excluded from metering and from the default listing.
118093
- */
118094
115329
  testUser: boolean
118095
- /**
118096
- * When the user was created (ISO 8601).
118097
- */
118098
115330
  createdAt: string
118099
- /**
118100
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
118101
- */
118102
115331
  deletedAt: (string | null)
118103
- /**
118104
- * Product this user belongs to. Never an input — it comes from the calling identity.
118105
- */
118106
115332
  productId: string
118107
- /**
118108
- * When the user was last changed (ISO 8601).
118109
- */
118110
115333
  updatedAt: string
118111
- /**
118112
- * Whether this user is still on the waitlist and cannot sign in yet.
118113
- */
118114
115334
  waitlisted: boolean
118115
- /**
118116
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
118117
- */
118118
115335
  identifiers: {
118119
- /**
118120
- * Id of this identifier row.
118121
- */
118122
115336
  id: string
118123
- /**
118124
- * What kind of identifier this is. Today always `email`.
118125
- */
118126
115337
  type: "email"
118127
- /**
118128
- * The address as the user typed it, for display.
118129
- */
118130
115338
  value: string
118131
- /**
118132
- * Whether this is the identifier the user signs in with and is contacted at.
118133
- */
118134
115339
  isPrimary: boolean
118135
- /**
118136
- * When this address was verified (ISO 8601). Null while it never was.
118137
- */
118138
115340
  verifiedAt: (string | null)
118139
- /**
118140
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
118141
- */
118142
115341
  valueCanonical: string
118143
- /**
118144
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
118145
- */
118146
115342
  verificationStatus: ("unverified" | "verified" | "expired")
118147
115343
  }[]
118148
- /**
118149
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118150
- */
118151
115344
  lockedUntil: (string | null)
118152
- /**
118153
- * When the user last signed in (ISO 8601). Null if they never have.
118154
- */
118155
115345
  lastSignInAt: (string | null)
118156
- /**
118157
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
118158
- */
118159
- primaryEmail: (string | null)
118160
- /**
118161
- * Whether the user must set a new password at their next sign-in.
118162
- */
118163
115346
  requiresReset: boolean
118164
- /**
118165
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
118166
- */
118167
- publicMetadata: {
118168
- [k: string]: unknown
118169
- }
118170
- /**
118171
- * Metadata the end user may write themselves. Treat it as untrusted.
118172
- */
118173
- unsafeMetadata: {
118174
- [k: string]: unknown
118175
- }
118176
- /**
118177
- * Metadata for the management plane only. Never reaches the end user or a token.
118178
- */
118179
- privateMetadata: {
118180
- [k: string]: unknown
118181
- }
118182
- /**
118183
- * Id of the primary identifier row. Null when there is no primary identifier.
118184
- */
118185
- primaryIdentifierId: (string | null)
118186
- /**
118187
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
118188
- */
115347
+ publicMetadata: UsersUsersListOutputPublicMetadata
115348
+ unsafeMetadata: UsersUsersListOutputPublicMetadata
115349
+ privateMetadata: UsersUsersListOutputPublicMetadata
118189
115350
  emailChangeLockedUntil: (string | null)
118190
115351
  }[]
118191
- /**
118192
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
118193
- */
118194
115352
  nextCursor: (string | null)
118195
115353
  }
115354
+ export interface UsersUsersListOutputPublicMetadata {
115355
+ [k: string]: unknown
115356
+ }
118196
115357
 
118197
115358
  export interface UsersUsersSetPrimaryIdentifierInput {
118198
115359
  /**
@@ -118210,13 +115371,7 @@ userId: string
118210
115371
  }
118211
115372
 
118212
115373
  export interface UsersUsersSetPrimaryIdentifierOutput {
118213
- /**
118214
- * Id of the scheduled change. It appears in the audit rows and in the abort link mailed to the old address.
118215
- */
118216
115374
  requestId: string
118217
- /**
118218
- * When the swap becomes applicable, if nobody aborts it first (ISO 8601). The delay is this product's `emailChange.overrideDelayHours`, 72 by default.
118219
- */
118220
115375
  scheduledFor: string
118221
115376
  }
118222
115377
 
@@ -118228,126 +115383,37 @@ userId: string
118228
115383
  }
118229
115384
 
118230
115385
  export interface UsersUsersUnbanOutput {
118231
- /**
118232
- * Id of this end user. Pass it to any users_users_* tool.
118233
- */
118234
115386
  id: string
118235
- /**
118236
- * The user's display name. Null when nobody set one.
118237
- */
118238
115387
  name: (string | null)
118239
- /**
118240
- * When the user was banned (ISO 8601). Null while they are not banned.
118241
- */
118242
115388
  bannedAt: (string | null)
118243
- /**
118244
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
118245
- */
118246
115389
  erasedAt: (string | null)
118247
- /**
118248
- * URL of the user's avatar. Null when there is none.
118249
- */
118250
115390
  imageUrl: (string | null)
118251
- /**
118252
- * Whether this is a test fixture — excluded from metering and from the default listing.
118253
- */
118254
115391
  testUser: boolean
118255
- /**
118256
- * When the user was created (ISO 8601).
118257
- */
118258
115392
  createdAt: string
118259
- /**
118260
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
118261
- */
118262
115393
  deletedAt: (string | null)
118263
- /**
118264
- * Product this user belongs to. Never an input — it comes from the calling identity.
118265
- */
118266
115394
  productId: string
118267
- /**
118268
- * When the user was last changed (ISO 8601).
118269
- */
118270
115395
  updatedAt: string
118271
- /**
118272
- * Whether this user is still on the waitlist and cannot sign in yet.
118273
- */
118274
115396
  waitlisted: boolean
118275
- /**
118276
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
118277
- */
118278
115397
  identifiers: {
118279
- /**
118280
- * Id of this identifier row.
118281
- */
118282
115398
  id: string
118283
- /**
118284
- * What kind of identifier this is. Today always `email`.
118285
- */
118286
115399
  type: "email"
118287
- /**
118288
- * The address as the user typed it, for display.
118289
- */
118290
115400
  value: string
118291
- /**
118292
- * Whether this is the identifier the user signs in with and is contacted at.
118293
- */
118294
115401
  isPrimary: boolean
118295
- /**
118296
- * When this address was verified (ISO 8601). Null while it never was.
118297
- */
118298
115402
  verifiedAt: (string | null)
118299
- /**
118300
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
118301
- */
118302
115403
  valueCanonical: string
118303
- /**
118304
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
118305
- */
118306
115404
  verificationStatus: ("unverified" | "verified" | "expired")
118307
115405
  }[]
118308
- /**
118309
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118310
- */
118311
115406
  lockedUntil: (string | null)
118312
- /**
118313
- * When the user last signed in (ISO 8601). Null if they never have.
118314
- */
118315
115407
  lastSignInAt: (string | null)
118316
- /**
118317
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
118318
- */
118319
- primaryEmail: (string | null)
118320
- /**
118321
- * Whether the user must set a new password at their next sign-in.
118322
- */
118323
115408
  requiresReset: boolean
118324
- /**
118325
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
118326
- */
118327
- publicMetadata: {
118328
- [k: string]: unknown
118329
- }
118330
- /**
118331
- * Metadata the end user may write themselves. Treat it as untrusted.
118332
- */
118333
- unsafeMetadata: {
118334
- [k: string]: unknown
115409
+ publicMetadata: UsersUsersUnbanOutputPublicMetadata
115410
+ unsafeMetadata: UsersUsersUnbanOutputPublicMetadata
115411
+ privateMetadata: UsersUsersUnbanOutputPublicMetadata
115412
+ emailChangeLockedUntil: (string | null)
118335
115413
  }
118336
- /**
118337
- * Metadata for the management plane only. Never reaches the end user or a token.
118338
- */
118339
- privateMetadata: {
115414
+ export interface UsersUsersUnbanOutputPublicMetadata {
118340
115415
  [k: string]: unknown
118341
115416
  }
118342
- /**
118343
- * Id of the primary identifier row. Null when there is no primary identifier.
118344
- */
118345
- primaryIdentifierId: (string | null)
118346
- /**
118347
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
118348
- */
118349
- emailChangeLockedUntil: (string | null)
118350
- }
118351
115417
 
118352
115418
  export interface UsersUsersUpdateInput {
118353
115419
  /**
@@ -118397,126 +115463,37 @@ export interface UsersUsersUpdateInputPublicMetadata1 {
118397
115463
  }
118398
115464
 
118399
115465
  export interface UsersUsersUpdateOutput {
118400
- /**
118401
- * Id of this end user. Pass it to any users_users_* tool.
118402
- */
118403
115466
  id: string
118404
- /**
118405
- * The user's display name. Null when nobody set one.
118406
- */
118407
115467
  name: (string | null)
118408
- /**
118409
- * When the user was banned (ISO 8601). Null while they are not banned.
118410
- */
118411
115468
  bannedAt: (string | null)
118412
- /**
118413
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
118414
- */
118415
115469
  erasedAt: (string | null)
118416
- /**
118417
- * URL of the user's avatar. Null when there is none.
118418
- */
118419
115470
  imageUrl: (string | null)
118420
- /**
118421
- * Whether this is a test fixture — excluded from metering and from the default listing.
118422
- */
118423
115471
  testUser: boolean
118424
- /**
118425
- * When the user was created (ISO 8601).
118426
- */
118427
115472
  createdAt: string
118428
- /**
118429
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
118430
- */
118431
115473
  deletedAt: (string | null)
118432
- /**
118433
- * Product this user belongs to. Never an input — it comes from the calling identity.
118434
- */
118435
115474
  productId: string
118436
- /**
118437
- * When the user was last changed (ISO 8601).
118438
- */
118439
115475
  updatedAt: string
118440
- /**
118441
- * Whether this user is still on the waitlist and cannot sign in yet.
118442
- */
118443
115476
  waitlisted: boolean
118444
- /**
118445
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
118446
- */
118447
115477
  identifiers: {
118448
- /**
118449
- * Id of this identifier row.
118450
- */
118451
115478
  id: string
118452
- /**
118453
- * What kind of identifier this is. Today always `email`.
118454
- */
118455
115479
  type: "email"
118456
- /**
118457
- * The address as the user typed it, for display.
118458
- */
118459
115480
  value: string
118460
- /**
118461
- * Whether this is the identifier the user signs in with and is contacted at.
118462
- */
118463
115481
  isPrimary: boolean
118464
- /**
118465
- * When this address was verified (ISO 8601). Null while it never was.
118466
- */
118467
115482
  verifiedAt: (string | null)
118468
- /**
118469
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
118470
- */
118471
115483
  valueCanonical: string
118472
- /**
118473
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
118474
- */
118475
115484
  verificationStatus: ("unverified" | "verified" | "expired")
118476
115485
  }[]
118477
- /**
118478
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118479
- */
118480
115486
  lockedUntil: (string | null)
118481
- /**
118482
- * When the user last signed in (ISO 8601). Null if they never have.
118483
- */
118484
115487
  lastSignInAt: (string | null)
118485
- /**
118486
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
118487
- */
118488
- primaryEmail: (string | null)
118489
- /**
118490
- * Whether the user must set a new password at their next sign-in.
118491
- */
118492
115488
  requiresReset: boolean
118493
- /**
118494
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
118495
- */
118496
- publicMetadata: {
118497
- [k: string]: unknown
118498
- }
118499
- /**
118500
- * Metadata the end user may write themselves. Treat it as untrusted.
118501
- */
118502
- unsafeMetadata: {
118503
- [k: string]: unknown
115489
+ publicMetadata: UsersUsersUpdateOutputPublicMetadata
115490
+ unsafeMetadata: UsersUsersUpdateOutputPublicMetadata
115491
+ privateMetadata: UsersUsersUpdateOutputPublicMetadata
115492
+ emailChangeLockedUntil: (string | null)
118504
115493
  }
118505
- /**
118506
- * Metadata for the management plane only. Never reaches the end user or a token.
118507
- */
118508
- privateMetadata: {
115494
+ export interface UsersUsersUpdateOutputPublicMetadata {
118509
115495
  [k: string]: unknown
118510
115496
  }
118511
- /**
118512
- * Id of the primary identifier row. Null when there is no primary identifier.
118513
- */
118514
- primaryIdentifierId: (string | null)
118515
- /**
118516
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
118517
- */
118518
- emailChangeLockedUntil: (string | null)
118519
- }
118520
115497
 
118521
115498
  export interface UsersWaitlistFunnelInput {
118522
115499
 
@@ -118531,64 +115508,6 @@ registered: number
118531
115508
  unconfirmed: number
118532
115509
  }
118533
115510
 
118534
- export interface UsersWaitlistGetInput {
118535
- /**
118536
- * The waitlisted user to read — the `userId` from `users_waitlist_list`.
118537
- */
118538
- userId: string
118539
- }
118540
-
118541
- export interface UsersWaitlistGetOutput {
118542
- /**
118543
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
118544
- */
118545
- status: ("pending" | "invited" | "registered" | "withdrawn")
118546
- /**
118547
- * The waitlisted user. Every users_users_* tool takes this id.
118548
- */
118549
- userId: string
118550
- /**
118551
- * When the entry joined the waitlist (ISO 8601).
118552
- */
118553
- createdAt: string
118554
- /**
118555
- * When the invite was sent (ISO 8601). Null while the entry is pending.
118556
- */
118557
- invitedAt: (string | null)
118558
- /**
118559
- * The email address that signed up.
118560
- */
118561
- identifier: string
118562
- /**
118563
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
118564
- */
118565
- attribution: {
118566
- [k: string]: unknown
118567
- }
118568
- /**
118569
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
118570
- */
118571
- confirmedAt: (string | null)
118572
- /**
118573
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
118574
- */
118575
- withdrawnAt: (string | null)
118576
- /**
118577
- * What was recorded to show this address consented: when, from where, and under which wording.
118578
- */
118579
- consentProof: {
118580
- [k: string]: unknown
118581
- }
118582
- /**
118583
- * When the invitee finished signing up (ISO 8601). Null until they do.
118584
- */
118585
- registeredAt: (string | null)
118586
- /**
118587
- * Id of the live invite token. Null while the entry has not been invited.
118588
- */
118589
- inviteTokenId: (string | null)
118590
- }
118591
-
118592
115511
  export interface UsersWaitlistImportInput {
118593
115512
  /**
118594
115513
  * The legacy signups to import, at most 500 per call — batch client-side beyond that.
@@ -118754,42 +115673,15 @@ unsafeMetadata?: {
118754
115673
  }
118755
115674
 
118756
115675
  export interface UsersWaitlistImportOutput {
118757
- /**
118758
- * How many could not be imported at all.
118759
- */
118760
115676
  failed: number
118761
- /**
118762
- * One row per submitted row, in the order you sent them.
118763
- */
118764
115677
  results: {
118765
- /**
118766
- * Zero-based index of the row in the array you sent.
118767
- */
118768
115678
  row: number
118769
- /**
118770
- * Why it was skipped, or what went wrong. Null for an imported row.
118771
- */
118772
115679
  reason: (string | null)
118773
- /**
118774
- * What happened to this row.
118775
- */
118776
115680
  status: ("imported" | "skipped" | "failed")
118777
- /**
118778
- * The waitlisted user this row created. Null for skipped and failed rows.
118779
- */
118780
115681
  userId: (string | null)
118781
115682
  }[]
118782
- /**
118783
- * How many were already on the list or otherwise passed over.
118784
- */
118785
115683
  skipped: number
118786
- /**
118787
- * How many became waitlist entries.
118788
- */
118789
115684
  imported: number
118790
- /**
118791
- * How many rows you submitted.
118792
- */
118793
115685
  requested: number
118794
115686
  }
118795
115687
 
@@ -118804,30 +115696,12 @@ userIds: [string, ...(string)[]]
118804
115696
  }
118805
115697
 
118806
115698
  export interface UsersWaitlistInviteOutput {
118807
- /**
118808
- * How many of the requested users were invited.
118809
- */
118810
115699
  invited: number
118811
- /**
118812
- * One row per user you asked for, in the order you sent them.
118813
- */
118814
115700
  results: {
118815
- /**
118816
- * Why this user was skipped. Null for an invited row.
118817
- */
118818
115701
  reason: (("suppressed" | "not_found" | "already_registered") | null)
118819
- /**
118820
- * Whether this user was invited or passed over.
118821
- */
118822
115702
  status: ("invited" | "skipped")
118823
- /**
118824
- * The user this row is about.
118825
- */
118826
115703
  userId: string
118827
115704
  }[]
118828
- /**
118829
- * How many were passed over — see each row's `reason`.
118830
- */
118831
115705
  skipped: number
118832
115706
  }
118833
115707
 
@@ -118851,62 +115725,23 @@ confirmed?: boolean
118851
115725
  }
118852
115726
 
118853
115727
  export interface UsersWaitlistListOutput {
118854
- /**
118855
- * The page of waitlist entries, newest first.
118856
- */
118857
115728
  entries: {
118858
- /**
118859
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
118860
- */
118861
115729
  status: ("pending" | "invited" | "registered" | "withdrawn")
118862
- /**
118863
- * The waitlisted user. Every users_users_* tool takes this id.
118864
- */
118865
115730
  userId: string
118866
- /**
118867
- * When the entry joined the waitlist (ISO 8601).
118868
- */
118869
115731
  createdAt: string
118870
- /**
118871
- * When the invite was sent (ISO 8601). Null while the entry is pending.
118872
- */
118873
115732
  invitedAt: (string | null)
118874
- /**
118875
- * The email address that signed up.
118876
- */
118877
115733
  identifier: string
118878
- /**
118879
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
118880
- */
118881
115734
  attribution: {
118882
115735
  [k: string]: unknown
118883
115736
  }
118884
- /**
118885
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
118886
- */
118887
115737
  confirmedAt: (string | null)
118888
- /**
118889
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
118890
- */
118891
115738
  withdrawnAt: (string | null)
118892
- /**
118893
- * What was recorded to show this address consented: when, from where, and under which wording.
118894
- */
118895
115739
  consentProof: {
118896
115740
  [k: string]: unknown
118897
115741
  }
118898
- /**
118899
- * When the invitee finished signing up (ISO 8601). Null until they do.
118900
- */
118901
115742
  registeredAt: (string | null)
118902
- /**
118903
- * Id of the live invite token. Null while the entry has not been invited.
118904
- */
118905
115743
  inviteTokenId: (string | null)
118906
115744
  }[]
118907
- /**
118908
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
118909
- */
118910
115745
  nextCursor: (string | null)
118911
115746
  }
118912
115747