@lessly/sdk-app 83.1.0 → 83.2.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)
@@ -112265,150 +111893,54 @@ secretPrefix: string
112265
111893
  }
112266
111894
 
112267
111895
  export interface TrackingDomainsCreateInput {
112268
- /**
112269
- * Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
112270
- */
112271
111896
  host?: string
112272
- /**
112273
- * DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
112274
- */
112275
111897
  records?: {
112276
- /**
112277
- * Time-to-live in seconds the record should be published with; the platform picks one when omitted
112278
- */
112279
111898
  ttl?: number
112280
- /**
112281
- * Fully-qualified host the record is published at; defaults to the claimed tracking host
112282
- */
112283
111899
  name?: string
112284
- /**
112285
- * Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
112286
- */
112287
111900
  target: string
112288
- /**
112289
- * DNS record type to publish, e.g. CNAME or TXT
112290
- */
112291
111901
  recordType: string
112292
111902
  }[]
112293
- /**
112294
- * Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
112295
- */
112296
111903
  domainId: string
112297
111904
  }
112298
111905
 
112299
111906
  export interface TrackingDomainsCreateOutput {
112300
- /**
112301
- * The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
112302
- */
112303
111907
  binding: {
112304
- /**
112305
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112306
- */
112307
111908
  host: string
112308
- /**
112309
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112310
- */
112311
111909
  status: ("pending" | "active" | "failed")
112312
- /**
112313
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112314
- */
112315
111910
  records: unknown[]
112316
- /**
112317
- * Product domain this tracking host sits under
112318
- */
112319
111911
  domainId: string
112320
- /**
112321
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112322
- */
112323
111912
  bindingId: string
112324
- /**
112325
- * When the binding was claimed
112326
- */
112327
111913
  createdAt: string
112328
- /**
112329
- * Product the binding belongs to
112330
- */
112331
111914
  productId: string
112332
- /**
112333
- * When the binding last changed status or records
112334
- */
112335
111915
  updatedAt: string
112336
- /**
112337
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112338
- */
112339
111916
  statusDetail: (string | null)
112340
- /**
112341
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112342
- */
112343
111917
  ownerExtension: string
112344
111918
  }
112345
- /**
112346
- * Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
112347
- */
112348
111919
  instructions: string[]
112349
111920
  }
112350
111921
 
112351
111922
  export interface TrackingDomainsDeleteInput {
112352
- /**
112353
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112354
- */
112355
111923
  bindingId: string
112356
111924
  }
112357
111925
 
112358
111926
  export interface TrackingDomainsDeleteOutput {
112359
- /**
112360
- * Always true — the release succeeded; a failure arrives as an error, not as false
112361
- */
112362
111927
  ok: true
112363
111928
  }
112364
111929
 
112365
111930
  export interface TrackingDomainsGetInput {
112366
- /**
112367
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112368
- */
112369
111931
  bindingId: string
112370
111932
  }
112371
111933
 
112372
111934
  export interface TrackingDomainsGetOutput {
112373
- /**
112374
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112375
- */
112376
111935
  host: string
112377
- /**
112378
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112379
- */
112380
111936
  status: ("pending" | "active" | "failed")
112381
- /**
112382
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112383
- */
112384
111937
  records: unknown[]
112385
- /**
112386
- * Product domain this tracking host sits under
112387
- */
112388
111938
  domainId: string
112389
- /**
112390
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112391
- */
112392
111939
  bindingId: string
112393
- /**
112394
- * When the binding was claimed
112395
- */
112396
111940
  createdAt: string
112397
- /**
112398
- * Product the binding belongs to
112399
- */
112400
111941
  productId: string
112401
- /**
112402
- * When the binding last changed status or records
112403
- */
112404
111942
  updatedAt: string
112405
- /**
112406
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112407
- */
112408
111943
  statusDetail: (string | null)
112409
- /**
112410
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112411
- */
112412
111944
  ownerExtension: string
112413
111945
  }
112414
111946
 
@@ -112417,125 +111949,41 @@ export interface TrackingDomainsListInput {
112417
111949
  }
112418
111950
 
112419
111951
  export interface TrackingDomainsListOutput {
112420
- /**
112421
- * The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
112422
- */
112423
111952
  domains: {
112424
- /**
112425
- * Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
112426
- */
112427
111953
  mode: ("external" | "managed")
112428
- /**
112429
- * Apex domain name the product owns, e.g. example.com
112430
- */
112431
111954
  domain: string
112432
- /**
112433
- * Stable platform id of the product domain, and what a claim takes as its `domainId`
112434
- */
112435
111955
  domainId: string
112436
- /**
112437
- * ISO-8601 timestamp of when the domain was added to the product
112438
- */
112439
111956
  createdAt: string
112440
- /**
112441
- * How many extensions currently hold a host binding under this domain
112442
- */
112443
111957
  extensionCount: number
112444
111958
  }[]
112445
- /**
112446
- * Tracking-host bindings this toolkit currently holds across those domains
112447
- */
112448
111959
  bindings: {
112449
- /**
112450
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112451
- */
112452
111960
  host: string
112453
- /**
112454
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112455
- */
112456
111961
  status: ("pending" | "active" | "failed")
112457
- /**
112458
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112459
- */
112460
111962
  records: unknown[]
112461
- /**
112462
- * Product domain this tracking host sits under
112463
- */
112464
111963
  domainId: string
112465
- /**
112466
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112467
- */
112468
111964
  bindingId: string
112469
- /**
112470
- * When the binding was claimed
112471
- */
112472
111965
  createdAt: string
112473
- /**
112474
- * Product the binding belongs to
112475
- */
112476
111966
  productId: string
112477
- /**
112478
- * When the binding last changed status or records
112479
- */
112480
111967
  updatedAt: string
112481
- /**
112482
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112483
- */
112484
111968
  statusDetail: (string | null)
112485
- /**
112486
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112487
- */
112488
111969
  ownerExtension: string
112489
111970
  }[]
112490
111971
  }
112491
111972
 
112492
111973
  export interface TrackingDomainsVerifyInput {
112493
- /**
112494
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112495
- */
112496
111974
  bindingId: string
112497
111975
  }
112498
111976
 
112499
111977
  export interface TrackingDomainsVerifyOutput {
112500
- /**
112501
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
112502
- */
112503
111978
  host: string
112504
- /**
112505
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
112506
- */
112507
111979
  status: ("pending" | "active" | "failed")
112508
- /**
112509
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
112510
- */
112511
111980
  records: unknown[]
112512
- /**
112513
- * Product domain this tracking host sits under
112514
- */
112515
111981
  domainId: string
112516
- /**
112517
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
112518
- */
112519
111982
  bindingId: string
112520
- /**
112521
- * When the binding was claimed
112522
- */
112523
111983
  createdAt: string
112524
- /**
112525
- * Product the binding belongs to
112526
- */
112527
111984
  productId: string
112528
- /**
112529
- * When the binding last changed status or records
112530
- */
112531
111985
  updatedAt: string
112532
- /**
112533
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
112534
- */
112535
111986
  statusDetail: (string | null)
112536
- /**
112537
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
112538
- */
112539
111987
  ownerExtension: string
112540
111988
  }
112541
111989
 
@@ -112547,13 +111995,7 @@ name: string
112547
111995
  }
112548
111996
 
112549
111997
  export interface TrackingEventNamesArchiveOutput {
112550
- /**
112551
- * Event name whose status was changed
112552
- */
112553
111998
  name: string
112554
- /**
112555
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
112556
- */
112557
111999
  status: ("active" | "archived")
112558
112000
  }
112559
112001
 
@@ -112577,37 +112019,13 @@ status?: ("active" | "archived")
112577
112019
  }
112578
112020
 
112579
112021
  export interface TrackingEventNamesListOutput {
112580
- /**
112581
- * The matching catalogue entries, ordered by the requested sort
112582
- */
112583
112022
  names: {
112584
- /**
112585
- * Event name exactly as the tracking script sends it — the string other tools take as their `event`
112586
- */
112587
112023
  name: string
112588
- /**
112589
- * How many events with this name have been received in total
112590
- */
112591
112024
  count: number
112592
- /**
112593
- * `active` for a name in use, `archived` for one hidden from pickers and reports
112594
- */
112595
112025
  status: string
112596
- /**
112597
- * ISO-8601 timestamp of the most recent event received under this name
112598
- */
112599
112026
  lastSeen: string
112600
- /**
112601
- * ISO-8601 timestamp of the first event ever received under this name
112602
- */
112603
112027
  firstSeen: string
112604
- /**
112605
- * Property keys sampled from recent events with this name, so you can see what the payload carries
112606
- */
112607
112028
  propsKeys: string[]
112608
- /**
112609
- * Whether this name is marked a conversion, which is what makes it available as a workflow trigger
112610
- */
112611
112029
  isConversion: boolean
112612
112030
  }[]
112613
112031
  }
@@ -112624,13 +112042,7 @@ isConversion: boolean
112624
112042
  }
112625
112043
 
112626
112044
  export interface TrackingEventNamesSetConversionOutput {
112627
- /**
112628
- * Event name the conversion flag was applied to
112629
- */
112630
112045
  name: string
112631
- /**
112632
- * The flag as it now stands after the change
112633
- */
112634
112046
  isConversion: boolean
112635
112047
  }
112636
112048
 
@@ -112642,13 +112054,7 @@ name: string
112642
112054
  }
112643
112055
 
112644
112056
  export interface TrackingEventNamesUnarchiveOutput {
112645
- /**
112646
- * Event name whose status was changed
112647
- */
112648
112057
  name: string
112649
- /**
112650
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
112651
- */
112652
112058
  status: ("active" | "archived")
112653
112059
  }
112654
112060
 
@@ -112657,32 +112063,14 @@ export interface TrackingGoogleadsConnectionStatusInput {
112657
112063
  }
112658
112064
 
112659
112065
  export type TrackingGoogleadsConnectionStatusOutput = ({
112660
- /**
112661
- * Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
112662
- */
112663
112066
  state: "connected"
112664
- /**
112665
- * The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
112666
- */
112667
112067
  customerId: string
112668
- /**
112669
- * 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.
112670
- */
112671
112068
  loginCustomerId: string
112672
112069
  } | {
112673
- /**
112674
- * Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
112675
- */
112676
112070
  state: "pending_account_selection"
112677
112071
  } | {
112678
- /**
112679
- * The Google authorisation expired or was revoked and has to be granted again before anything can run.
112680
- */
112681
112072
  state: "reauth_required"
112682
112073
  } | {
112683
- /**
112684
- * No Google Ads connection has been set up for this product at all.
112685
- */
112686
112074
  state: "not_connected"
112687
112075
  })
112688
112076
 
@@ -112703,77 +112091,26 @@ export interface TrackingGoogleadsFeedbackConfigGetInput {
112703
112091
  }
112704
112092
 
112705
112093
  export interface TrackingGoogleadsFeedbackConfigGetOutput {
112706
- /**
112707
- * 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.
112708
- */
112709
112094
  mode: ("existing_pixel" | "fresh_pixel")
112710
- /**
112711
- * Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
112712
- */
112713
112095
  rules: {
112714
- /**
112715
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
112716
- */
112717
112096
  event: string
112718
- /**
112719
- * What monetary value is reported to Google for each conversion this rule uploads
112720
- */
112721
112097
  value: ({
112722
- /**
112723
- * 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
112724
- */
112725
112098
  source: "revenue"
112726
112099
  } | {
112727
- /**
112728
- * 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
112729
- */
112730
112100
  source: "dynamic"
112731
112101
  } | {
112732
- /**
112733
- * 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
112734
- */
112735
112102
  source: "fixed"
112736
- /**
112737
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
112738
- */
112739
112103
  currency: string
112740
- /**
112741
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
112742
- */
112743
112104
  amountMinor: number
112744
112105
  })
112745
- /**
112746
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
112747
- */
112748
112106
  enabled: boolean
112749
- /**
112750
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
112751
- */
112752
112107
  conversionAction: string
112753
112108
  }[]
112754
- /**
112755
- * Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
112756
- */
112757
112109
  enabled: boolean
112758
- /**
112759
- * The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
112760
- */
112761
112110
  productId: string
112762
- /**
112763
- * 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.
112764
- */
112765
112111
  lookbackDays: number
112766
- /**
112767
- * 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.
112768
- */
112769
112112
  accountCurrency: (string | null)
112770
- /**
112771
- * The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
112772
- */
112773
112113
  dynamicValueEvents: string[]
112774
- /**
112775
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
112776
- */
112777
112114
  enhancedConversions: boolean
112778
112115
  }
112779
112116
 
@@ -112790,23 +112127,11 @@ rules?: {
112790
112127
  * Any tracked event-name for this product (validated against the event-name catalog)
112791
112128
  */
112792
112129
  event: string
112793
- /**
112794
- * What monetary value to report to Google for each conversion this rule uploads
112795
- */
112796
112130
  value: ({
112797
- /**
112798
- * 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
112799
- */
112800
112131
  source: "revenue"
112801
112132
  } | {
112802
- /**
112803
- * 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
112804
- */
112805
112133
  source: "dynamic"
112806
112134
  } | {
112807
- /**
112808
- * 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
112809
- */
112810
112135
  source: "fixed"
112811
112136
  /**
112812
112137
  * ISO-4217 currency code, e.g. USD
@@ -112817,9 +112142,6 @@ currency: string
112817
112142
  */
112818
112143
  amountMinor?: number
112819
112144
  })
112820
- /**
112821
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
112822
- */
112823
112145
  enabled: boolean
112824
112146
  /**
112825
112147
  * Google conversion action resource: customers/<cid>/conversionActions/<id>
@@ -112841,82 +112163,28 @@ enhancedConversions?: boolean
112841
112163
  }
112842
112164
 
112843
112165
  export interface TrackingGoogleadsFeedbackConfigSetOutput {
112844
- /**
112845
- * The config as it now stands after the write, with server-side normalisation applied
112846
- */
112847
112166
  config: {
112848
- /**
112849
- * How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
112850
- */
112851
112167
  mode: ("existing_pixel" | "fresh_pixel")
112852
- /**
112853
- * The event-to-conversion-action mappings, each with its own value source
112854
- */
112855
112168
  rules: {
112856
- /**
112857
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
112858
- */
112859
112169
  event: string
112860
- /**
112861
- * What monetary value is reported to Google for each conversion this rule uploads
112862
- */
112863
112170
  value: ({
112864
- /**
112865
- * 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
112866
- */
112867
112171
  source: "revenue"
112868
112172
  } | {
112869
- /**
112870
- * 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
112871
- */
112872
112173
  source: "dynamic"
112873
112174
  } | {
112874
- /**
112875
- * 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
112876
- */
112877
112175
  source: "fixed"
112878
- /**
112879
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
112880
- */
112881
112176
  currency: string
112882
- /**
112883
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
112884
- */
112885
112177
  amountMinor: number
112886
112178
  })
112887
- /**
112888
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
112889
- */
112890
112179
  enabled: boolean
112891
- /**
112892
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
112893
- */
112894
112180
  conversionAction: string
112895
112181
  }[]
112896
- /**
112897
- * Master switch: with it off no rule uploads anything, however the individual rules are set
112898
- */
112899
112182
  enabled: boolean
112900
- /**
112901
- * Product this conversion-feedback config belongs to
112902
- */
112903
112183
  productId: string
112904
- /**
112905
- * How many days back a click may have happened and still be matched to a conversion (max 90)
112906
- */
112907
112184
  lookbackDays: number
112908
- /**
112909
- * The connected Google Ads account's currency, best-effort; null or absent when it could not be read
112910
- */
112911
112185
  accountCurrency?: (string | null)
112912
- /**
112913
- * Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
112914
- */
112915
112186
  enhancedConversions: boolean
112916
112187
  }
112917
- /**
112918
- * Plain-language safety notes about what this combination of mode and match keys will do to the connected account
112919
- */
112920
112188
  guidance: string[]
112921
112189
  }
112922
112190
 
@@ -112925,48 +112193,15 @@ export interface TrackingGoogleadsFeedbackRunInput {
112925
112193
  }
112926
112194
 
112927
112195
  export interface TrackingGoogleadsFeedbackRunOutput {
112928
- /**
112929
- * 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.
112930
- */
112931
- runId: string
112932
- /**
112933
- * Rows Google rejected in this pass.
112934
- */
112935
112196
  failed: number
112936
- /**
112937
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
112938
- */
112939
112197
  matched: number
112940
- /**
112941
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
112942
- */
112943
112198
  noGclid: number
112944
- /**
112945
- * 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.
112946
- */
112947
112199
  skipped?: ("disabled" | "no_rules" | "not_connected")
112948
- /**
112949
- * Conversions in the lookback window that an enabled rule applied to.
112950
- */
112951
112200
  selected: number
112952
- /**
112953
- * Rows Google accepted in this pass.
112954
- */
112955
112201
  uploaded: number
112956
- /**
112957
- * The tenant whose conversions this pass uploaded.
112958
- */
112959
112202
  productId: string
112960
- /**
112961
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
112962
- */
112963
112203
  zeroValue: number
112964
- /**
112965
- * Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
112966
- */
112967
- partialFailureError?: {
112968
- [k: string]: unknown
112969
- }
112204
+ partialFailureError?: unknown
112970
112205
  }
112971
112206
 
112972
112207
  export interface TrackingGoogleadsFeedbackStatusInput {
@@ -112974,82 +112209,25 @@ export interface TrackingGoogleadsFeedbackStatusInput {
112974
112209
  }
112975
112210
 
112976
112211
  export interface TrackingGoogleadsFeedbackStatusOutput {
112977
- /**
112978
- * 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.
112979
- */
112980
112212
  mode: ("existing_pixel" | "fresh_pixel")
112981
- /**
112982
- * Rows Google has rejected since this product was connected, across every pass.
112983
- */
112984
112213
  failed: number
112985
- /**
112986
- * Whether conversions are being sent to Google Ads at all.
112987
- */
112988
112214
  enabled: boolean
112989
- /**
112990
- * Coverage of the most recent pass. Null when no pass has run for this product yet.
112991
- */
112992
112215
  lastRun: ({
112993
- /**
112994
- * When the last pass finished. Null when the stored summary predates this field.
112995
- */
112996
112216
  ranAt: (string | null)
112997
- /**
112998
- * Rows Google rejected. Anything above zero is what makes the status partial.
112999
- */
113000
112217
  failed: number
113001
- /**
113002
- * 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.
113003
- */
113004
112218
  status: ("ok" | "partial" | "not_connected")
113005
- /**
113006
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
113007
- */
113008
112219
  matched: number
113009
- /**
113010
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
113011
- */
113012
112220
  noGclid: number
113013
- /**
113014
- * Conversions in the lookback window that an enabled rule applied to.
113015
- */
113016
112221
  selected: number
113017
- /**
113018
- * Rows Google accepted.
113019
- */
113020
112222
  uploaded: number
113021
- /**
113022
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
113023
- */
113024
112223
  zeroValue: number
113025
112224
  } | null)
113026
- /**
113027
- * 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.
113028
- */
113029
112225
  guidance: string[]
113030
- /**
113031
- * Rows Google has accepted since this product was connected, across every pass.
113032
- */
113033
112226
  uploaded: number
113034
- /**
113035
- * How many event-to-conversion-action rules are configured, enabled or not.
113036
- */
113037
112227
  ruleCount: number
113038
- /**
113039
- * How many days back each pass looks for conversions to send, and how far back a click may be matched.
113040
- */
113041
112228
  lookbackDays: number
113042
- /**
113043
- * 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.
113044
- */
113045
112229
  accountCurrency: (string | null)
113046
- /**
113047
- * The event names that may use the Dynamic value source, because revenue is known for them.
113048
- */
113049
112230
  dynamicValueEvents: string[]
113050
- /**
113051
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
113052
- */
113053
112231
  enhancedConversions: boolean
113054
112232
  }
113055
112233
 
@@ -113071,228 +112249,65 @@ conversionDatetime: string
113071
112249
  }[]
113072
112250
 
113073
112251
  export interface TrackingGoogleadsRoasReportInput {
113074
- /**
113075
- * 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.
113076
- */
113077
- to?: string
113078
- /**
113079
- * 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.
113080
- */
113081
- from?: string
113082
- /**
113083
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
113084
- */
112252
+ to: string
112253
+ from: string
113085
112254
  model?: ("last_click" | "first_click")
113086
- /**
113087
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
113088
- */
113089
112255
  domain?: string
113090
- /**
113091
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
113092
- */
113093
112256
  customerId?: string
113094
- /**
113095
- * 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.
113096
- */
113097
112257
  lookbackDays?: number
113098
112258
  }
113099
112259
 
113100
112260
  export interface TrackingGoogleadsRoasReportOutput {
113101
- /**
113102
- * End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
113103
- */
113104
112261
  to: string
113105
- /**
113106
- * Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
113107
- */
113108
112262
  from: string
113109
- /**
113110
- * Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
113111
- */
113112
112263
  model: ("last_click" | "first_click")
113113
- /**
113114
- * 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.
113115
- */
113116
- stale: boolean
113117
- /**
113118
- * The installed site this report was restricted to; null when it covers every domain of the product.
113119
- */
113120
112264
  domain: (string | null)
113121
- /**
113122
- * One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
113123
- */
113124
112265
  accounts: {
113125
- /**
113126
- * 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.
113127
- */
113128
112266
  stale: boolean
113129
- /**
113130
- * 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.
113131
- */
113132
112267
  currency: string
113133
- /**
113134
- * This account's campaigns, each with its ad groups and ads nested underneath.
113135
- */
113136
112268
  campaigns: TrackingGoogleadsRoasReportOutputItems[]
113137
- /**
113138
- * Google Ads account these campaigns belong to, by customer id without dashes.
113139
- */
113140
112269
  customerId: string
113141
- /**
113142
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
113143
- */
113144
112270
  costLastSyncedAt: (string | null)
113145
112271
  }[]
113146
- /**
113147
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
113148
- */
113149
- currency: (string | null)
113150
- /**
113151
- * When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
113152
- */
113153
112272
  computedAt: string
113154
- /**
113155
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
113156
- */
113157
- customerId: (string | null)
113158
- /**
113159
- * How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
113160
- */
113161
112273
  lookbackDays: number
113162
- /**
113163
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
113164
- */
113165
- costLastSyncedAt: (string | null)
113166
- /**
113167
- * 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.
113168
- */
113169
112274
  unmatchedAttributed: {
113170
- /**
113171
- * Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
113172
- */
113173
112275
  revenue: TrackingGoogleadsRoasReportOutputItems1[]
113174
- /**
113175
- * How many distinct customers paid but could not be traced to any Google Ads campaign.
113176
- */
113177
112276
  conversions: number
113178
- /**
113179
- * 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.
113180
- */
113181
112277
  utmCampaign: (string | null)
113182
112278
  }[]
113183
112279
  }
113184
112280
  export interface TrackingGoogleadsRoasReportOutputItems {
113185
- /**
113186
- * What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
113187
- */
113188
112281
  cpa: (number | null)
113189
- /**
113190
- * Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
113191
- */
113192
112282
  adId: (string | null)
113193
- /**
113194
- * What Google charged and what Google itself counted for this node over the window.
113195
- */
113196
112283
  cost: {
113197
- /**
113198
- * How many times someone clicked through from Google over the window.
113199
- */
113200
112284
  clicks: number
113201
- /**
113202
- * ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
113203
- */
113204
112285
  currency: string
113205
- /**
113206
- * What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
113207
- */
113208
112286
  costMinor: number
113209
- /**
113210
- * How many times Google showed this ad over the window.
113211
- */
113212
112287
  impressions: number
113213
- /**
113214
- * Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
113215
- */
113216
112288
  platformConversions: number
113217
- /**
113218
- * Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
113219
- */
113220
112289
  platformConversionsValueMinor: number
113221
112290
  }
113222
- /**
113223
- * What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
113224
- */
113225
112291
  name: (string | null)
113226
- /**
113227
- * 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.
113228
- */
113229
112292
  roas: (number | null)
113230
- /**
113231
- * 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.
113232
- */
113233
112293
  level: ("campaign" | "ad_group" | "ad")
113234
- /**
113235
- * Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
113236
- */
113237
112294
  status?: string
113238
- /**
113239
- * The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
113240
- */
113241
112295
  children: TrackingGoogleadsRoasReportOutputItems[]
113242
- /**
113243
- * Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
113244
- */
113245
112296
  adGroupId: (string | null)
113246
- /**
113247
- * What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
113248
- */
113249
112297
  attributed: ({
113250
- /**
113251
- * What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
113252
- */
113253
112298
  revenue: TrackingGoogleadsRoasReportOutputItems1[]
113254
- /**
113255
- * 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.
113256
- */
113257
- matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null)
113258
- /**
113259
- * 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.
113260
- */
112299
+ matchedBy: (("campaign_id" | "campaign_name" | "gclid") | null)
113261
112300
  conversions: number
113262
- /**
113263
- * 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.
113264
- */
113265
112301
  accountCurrencyNetMinor: number
113266
112302
  } | null)
113267
- /**
113268
- * Google Ads campaign this node belongs to, by its numeric id. Set at every level.
113269
- */
113270
112303
  campaignId: string
113271
- /**
113272
- * Google Ads account this node belongs to, by customer id without dashes.
113273
- */
113274
112304
  customerId: string
113275
- /**
113276
- * 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.
113277
- */
113278
112305
  channelType?: (string | null)
113279
112306
  }
113280
112307
  export interface TrackingGoogleadsRoasReportOutputItems1 {
113281
- /**
113282
- * ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
113283
- */
113284
112308
  currency: string
113285
- /**
113286
- * Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
113287
- */
113288
112309
  netMinor: number
113289
- /**
113290
- * Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
113291
- */
113292
112310
  grossMinor: number
113293
- /**
113294
- * Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
113295
- */
113296
112311
  refundedMinor: number
113297
112312
  }
113298
112313
 
@@ -113301,67 +112316,21 @@ export interface TrackingGoogleadsSyncNowInput {
113301
112316
  }
113302
112317
 
113303
112318
  export interface TrackingGoogleadsSyncNowOutput {
113304
- /**
113305
- * 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.
113306
- */
113307
112319
  rows: {
113308
- /**
113309
- * Ads written.
113310
- */
113311
112320
  ads: number
113312
- /**
113313
- * Day-by-day ad spend and metric rows written.
113314
- */
113315
112321
  adDaily: number
113316
- /**
113317
- * Ad groups written.
113318
- */
113319
112322
  adGroups: number
113320
- /**
113321
- * Campaigns written, names and status included.
113322
- */
113323
112323
  campaigns: number
113324
- /**
113325
- * Day-by-day ad-group spend and metric rows written.
113326
- */
113327
112324
  adGroupDaily: number
113328
- /**
113329
- * Day-by-day campaign spend and metric rows written.
113330
- */
113331
112325
  campaignDaily: number
113332
112326
  }
113333
- /**
113334
- * 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.
113335
- */
113336
- runId: string
113337
- /**
113338
- * 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.
113339
- */
113340
112327
  reason?: string
113341
- /**
113342
- * Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
113343
- */
113344
112328
  status: ("ok" | "skipped")
113345
- /**
113346
- * The range of days this sweep read spend and metrics for.
113347
- */
113348
112329
  window: {
113349
- /**
113350
- * Last day covered, inclusive, as YYYY-MM-DD.
113351
- */
113352
112330
  end: string
113353
- /**
113354
- * First day covered, inclusive, as YYYY-MM-DD.
113355
- */
113356
112331
  start: string
113357
112332
  }
113358
- /**
113359
- * The tenant whose Google Ads account was swept.
113360
- */
113361
112333
  productId: string
113362
- /**
113363
- * When the sweep finished. Null when nothing was written.
113364
- */
113365
112334
  lastSyncedAt: (string | null)
113366
112335
  }
113367
112336
 
@@ -113377,187 +112346,54 @@ from?: string
113377
112346
  }
113378
112347
 
113379
112348
  export interface TrackingGoogleadsTrackingHealthOutput {
113380
- /**
113381
- * End of the range these figures cover, as an instant.
113382
- */
113383
112349
  to: string
113384
- /**
113385
- * Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
113386
- */
113387
112350
  from: string
113388
- /**
113389
- * Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
113390
- */
113391
112351
  installed: boolean
113392
- /**
113393
- * Whether the sample above was cut short. True means more untagged URLs exist than are listed.
113394
- */
113395
112352
  truncated: boolean
113396
- /**
113397
- * Google paid clicks that arrived on the site in this range. The denominator for everything below.
113398
- */
113399
112353
  paidClicks: number
113400
- /**
113401
- * 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.
113402
- */
113403
112354
  dataQuality: {
113404
- /**
113405
- * 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.
113406
- */
113407
112355
  cookielessPaidClicks: number
113408
112356
  }
113409
- /**
113410
- * Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
113411
- */
113412
112357
  breakageRate: number
113413
- /**
113414
- * Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
113415
- */
113416
112358
  taggedClicks: number
113417
- /**
113418
- * When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
113419
- */
113420
112359
  lastUntaggedAt: (string | null)
113421
- /**
113422
- * 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.
113423
- */
113424
112360
  untaggedClicks: number
113425
- /**
113426
- * When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
113427
- */
113428
112361
  firstUntaggedAt: (string | null)
113429
- /**
113430
- * 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.
113431
- */
113432
112362
  sampleUntaggedUrls: string[]
113433
112363
  }
113434
112364
 
113435
112365
  export interface TrackingGoogleadsUsVsPlatformInput {
113436
- /**
113437
- * 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.
113438
- */
113439
- to?: string
113440
- /**
113441
- * 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.
113442
- */
113443
- from?: string
113444
- /**
113445
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
113446
- */
112366
+ to: string
112367
+ from: string
113447
112368
  model?: ("last_click" | "first_click")
113448
- /**
113449
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
113450
- */
113451
112369
  domain?: string
113452
- /**
113453
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
113454
- */
113455
112370
  customerId?: string
113456
- /**
113457
- * 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.
113458
- */
113459
112371
  lookbackDays?: number
113460
112372
  }
113461
112373
 
113462
112374
  export interface TrackingGoogleadsUsVsPlatformOutput {
113463
- /**
113464
- * End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
113465
- */
113466
112375
  to: string
113467
- /**
113468
- * Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
113469
- */
113470
112376
  from: string
113471
- /**
113472
- * 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.
113473
- */
113474
112377
  model: ("last_click" | "first_click")
113475
- /**
113476
- * 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.
113477
- */
113478
- stale: boolean
113479
- /**
113480
- * The installed site this comparison was restricted to; null when it covers every domain of the product.
113481
- */
113482
112378
  domain: (string | null)
113483
- /**
113484
- * One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
113485
- */
113486
112379
  accounts: {
113487
- /**
113488
- * One row per campaign in this account, ours beside Google's.
113489
- */
113490
112380
  rows: {
113491
- /**
113492
- * What this campaign is called in Google Ads; null when the name has not been synced.
113493
- */
113494
112381
  name: (string | null)
113495
- /**
113496
- * ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
113497
- */
113498
112382
  currency: string
113499
- /**
113500
- * The Google Ads campaign this row compares, by its numeric id.
113501
- */
113502
112383
  campaignId: string
113503
- /**
113504
- * Google Ads account this campaign belongs to, by customer id without dashes.
113505
- */
113506
112384
  customerId: string
113507
- /**
113508
- * How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
113509
- */
113510
112385
  ourConversions: number
113511
- /**
113512
- * Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
113513
- */
113514
112386
  ourRevenueNetMinor: number
113515
- /**
113516
- * 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.
113517
- */
113518
112387
  platformConversions: number
113519
- /**
113520
- * Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
113521
- */
113522
112388
  platformConversionsValueMinor: number
113523
112389
  }[]
113524
- /**
113525
- * 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.
113526
- */
113527
112390
  stale: boolean
113528
- /**
113529
- * 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.
113530
- */
113531
112391
  currency: string
113532
- /**
113533
- * Google Ads account these comparison rows belong to, by customer id without dashes.
113534
- */
113535
112392
  customerId: string
113536
- /**
113537
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
113538
- */
113539
112393
  costLastSyncedAt: (string | null)
113540
112394
  }[]
113541
- /**
113542
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
113543
- */
113544
- currency: (string | null)
113545
- /**
113546
- * When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
113547
- */
113548
112395
  computedAt: string
113549
- /**
113550
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
113551
- */
113552
- customerId: (string | null)
113553
- /**
113554
- * How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
113555
- */
113556
112396
  lookbackDays: number
113557
- /**
113558
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
113559
- */
113560
- costLastSyncedAt: (string | null)
113561
112397
  }
113562
112398
 
113563
112399
  export interface TrackingIdentityHealthInput {
@@ -113565,29 +112401,11 @@ export interface TrackingIdentityHealthInput {
113565
112401
  }
113566
112402
 
113567
112403
  export interface TrackingIdentityHealthOutput {
113568
- /**
113569
- * When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
113570
- */
113571
112404
  computedAt: string
113572
- /**
113573
- * How many people the product holds in total, anonymous ones included. The denominator of both rates below.
113574
- */
113575
112405
  totalProfiles: number
113576
- /**
113577
- * 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.
113578
- */
113579
112406
  identifiedRate: number
113580
- /**
113581
- * 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.
113582
- */
113583
112407
  adTouchpointRate: number
113584
- /**
113585
- * How many of them an email or phone is known for — the people a message can actually be sent to.
113586
- */
113587
112408
  identifiedProfiles: number
113588
- /**
113589
- * 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.
113590
- */
113591
112409
  adTouchpointProfiles: number
113592
112410
  }
113593
112411
 
@@ -113599,9 +112417,6 @@ domain: string
113599
112417
  }
113600
112418
 
113601
112419
  export interface TrackingInstallDomainsCreateOutput {
113602
- /**
113603
- * The domain as stored after normalisation, which may differ from what was submitted
113604
- */
113605
112420
  domain: string
113606
112421
  }
113607
112422
 
@@ -113613,9 +112428,6 @@ domain: string
113613
112428
  }
113614
112429
 
113615
112430
  export interface TrackingInstallDomainsDeleteOutput {
113616
- /**
113617
- * Always true — the domain was removed; a failure arrives as an error, not as false
113618
- */
113619
112431
  ok: true
113620
112432
  }
113621
112433
 
@@ -113624,35 +112436,14 @@ export interface TrackingInstallDomainsListInput {
113624
112436
  }
113625
112437
 
113626
112438
  export interface TrackingInstallDomainsListOutput {
113627
- /**
113628
- * Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
113629
- */
113630
112439
  discovered: TrackingInstallDomainsListOutputItems[]
113631
- /**
113632
- * Domains deliberately put on the install checklist, each with whether its script has been seen
113633
- */
113634
112440
  registered: TrackingInstallDomainsListOutputItems[]
113635
- /**
113636
- * Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
113637
- */
113638
112441
  windowDays: number
113639
112442
  }
113640
112443
  export interface TrackingInstallDomainsListOutputItems {
113641
- /**
113642
- * Whether the tracking script actually sent an event from this domain inside the lookback window
113643
- */
113644
112444
  seen: boolean
113645
- /**
113646
- * Normalised domain name the status is reported for
113647
- */
113648
112445
  domain: string
113649
- /**
113650
- * ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
113651
- */
113652
112446
  lastSeen: (string | null)
113653
- /**
113654
- * Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
113655
- */
113656
112447
  registered: boolean
113657
112448
  }
113658
112449
 
@@ -113664,9 +112455,6 @@ domain: string
113664
112455
  }
113665
112456
 
113666
112457
  export interface TrackingLinkDomainsCreateOutput {
113667
- /**
113668
- * The domain as stored after normalisation, which may differ from what was submitted
113669
- */
113670
112458
  domain: string
113671
112459
  }
113672
112460
 
@@ -113678,9 +112466,6 @@ domain: string
113678
112466
  }
113679
112467
 
113680
112468
  export interface TrackingLinkDomainsDeleteOutput {
113681
- /**
113682
- * Always true — the domain left the linking group; a failure arrives as an error, not as false
113683
- */
113684
112469
  ok: true
113685
112470
  }
113686
112471
 
@@ -113689,9 +112474,6 @@ export interface TrackingLinkDomainsListInput {
113689
112474
  }
113690
112475
 
113691
112476
  export interface TrackingLinkDomainsListOutput {
113692
- /**
113693
- * Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
113694
- */
113695
112477
  domains: string[]
113696
112478
  }
113697
112479
 
@@ -113711,70 +112493,22 @@ domain?: string
113711
112493
  }
113712
112494
 
113713
112495
  export interface TrackingLiveEventsListOutput {
113714
- /**
113715
- * Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
113716
- */
113717
112496
  cursor: (string | null)
113718
- /**
113719
- * The page of events, newest first.
113720
- */
113721
112497
  events: {
113722
- /**
113723
- * Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
113724
- */
113725
112498
  id: string
113726
- /**
113727
- * When the event happened, as reported by the tracker (ISO 8601, UTC).
113728
- */
113729
112499
  ts: string
113730
- /**
113731
- * Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
113732
- */
113733
112500
  url: (string | null)
113734
- /**
113735
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
113736
- */
113737
112501
  name: string
113738
- /**
113739
- * Document title of that page at the time. Free text from the customer site, so it can carry personal data.
113740
- */
113741
112502
  title: (string | null)
113742
- /**
113743
- * Site the event came from; null when the tracker could not determine one.
113744
- */
113745
112503
  domain: (string | null)
113746
- /**
113747
- * Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
113748
- */
113749
112504
  source: {
113750
- /**
113751
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
113752
- */
113753
112505
  referrer: (string | null)
113754
- /**
113755
- * utm_medium of the landing URL, e.g. cpc; null when absent.
113756
- */
113757
112506
  utmMedium: (string | null)
113758
- /**
113759
- * utm_source of the landing URL, e.g. newsletter; null when absent.
113760
- */
113761
112507
  utmSource: (string | null)
113762
- /**
113763
- * Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
113764
- */
113765
112508
  clickIdType: (string | null)
113766
- /**
113767
- * utm_campaign of the landing URL; null when absent.
113768
- */
113769
112509
  utmCampaign: (string | null)
113770
112510
  }
113771
- /**
113772
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
113773
- */
113774
112511
  country: (string | null)
113775
- /**
113776
- * 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.
113777
- */
113778
112512
  anonymousId: (string | null)
113779
112513
  }[]
113780
112514
  }
@@ -113787,52 +112521,18 @@ profileId: string
113787
112521
  }
113788
112522
 
113789
112523
  export interface TrackingProfilesDeleteOutput {
113790
- /**
113791
- * Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
113792
- */
113793
112524
  ok: true
113794
- /**
113795
- * What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
113796
- */
113797
112525
  archive: {
113798
- /**
113799
- * Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
113800
- */
113801
112526
  note: string
113802
- /**
113803
- * Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
113804
- */
113805
112527
  status: "gap_flagged"
113806
112528
  }
113807
- /**
113808
- * How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
113809
- */
113810
112529
  deleted: {
113811
- /**
113812
- * Tracked events removed, found through the anonymous ids this person browsed under.
113813
- */
113814
112530
  events: number
113815
- /**
113816
- * Merge records removed — the history of this person having been joined with another.
113817
- */
113818
112531
  merges: number
113819
- /**
113820
- * Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
113821
- */
113822
112532
  profile: number
113823
- /**
113824
- * Emails, phones, anonymous ids and click ids removed for this person.
113825
- */
113826
112533
  identifiers: number
113827
112534
  }
113828
- /**
113829
- * The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
113830
- */
113831
112535
  profileId: string
113832
- /**
113833
- * 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.
113834
- */
113835
- requestId: string
113836
112536
  }
113837
112537
 
113838
112538
  export interface TrackingProfilesExportInput {
@@ -113843,172 +112543,52 @@ profileId: string
113843
112543
  }
113844
112544
 
113845
112545
  export interface TrackingProfilesExportOutput {
113846
- /**
113847
- * The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
113848
- */
113849
112546
  journey: {
113850
- /**
113851
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
113852
- */
113853
112547
  ts: string
113854
- /**
113855
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
113856
- */
113857
112548
  ref: string
113858
- /**
113859
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
113860
- */
113861
112549
  url: (string | null)
113862
- /**
113863
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
113864
- */
113865
112550
  name: string
113866
- /**
113867
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
113868
- */
113869
112551
  props: {
113870
112552
  [k: string]: unknown
113871
112553
  }
113872
- /**
113873
- * Title of the page as the browser reported it. Null off-page.
113874
- */
113875
112554
  title: (string | null)
113876
- /**
113877
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
113878
- */
113879
112555
  domain: (string | null)
113880
- /**
113881
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
113882
- */
113883
112556
  source: {
113884
- /**
113885
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
113886
- */
113887
112557
  clickId: (string | null)
113888
- /**
113889
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
113890
- */
113891
112558
  utmTerm: (string | null)
113892
- /**
113893
- * utm_medium on the URL of this event.
113894
- */
113895
112559
  utmMedium: (string | null)
113896
- /**
113897
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
113898
- */
113899
112560
  utmSource: (string | null)
113900
- /**
113901
- * utm_content on the URL of this event — which creative or link variant was clicked.
113902
- */
113903
112561
  utmContent: (string | null)
113904
- /**
113905
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
113906
- */
113907
112562
  clickIdType: (string | null)
113908
- /**
113909
- * utm_campaign on the URL of this event.
113910
- */
113911
112563
  utmCampaign: (string | null)
113912
112564
  }
113913
- /**
113914
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
113915
- */
113916
112565
  country: (string | null)
113917
- /**
113918
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
113919
- */
113920
112566
  referrer: (string | null)
113921
- /**
113922
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
113923
- */
113924
112567
  sessionId: (string | null)
113925
112568
  }[]
113926
- /**
113927
- * The person themselves: their handle, how far they have come, and when they were seen.
113928
- */
113929
112569
  profile: {
113930
- /**
113931
- * 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.
113932
- */
113933
112570
  status: ("anonymous" | "identified" | "customer")
113934
- /**
113935
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
113936
- */
113937
112571
  createdAt: string
113938
- /**
113939
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
113940
- */
113941
112572
  profileId: string
113942
- /**
113943
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
113944
- */
113945
112573
  lastSeenAt: string
113946
- /**
113947
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
113948
- */
113949
112574
  firstSeenAt: string
113950
112575
  }
113951
- /**
113952
- * 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.
113953
- */
113954
112576
  signals: {
113955
- /**
113956
- * 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.
113957
- */
113958
112577
  emails: string[]
113959
- /**
113960
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
113961
- */
113962
112578
  phones: string[]
113963
- /**
113964
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
113965
- */
113966
112579
  domains: string[]
113967
- /**
113968
- * 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.
113969
- */
113970
112580
  clickIds: {
113971
- /**
113972
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
113973
- */
113974
112581
  type: string
113975
- /**
113976
- * The click identifier itself, raw, as the network stamped it on the landing URL.
113977
- */
113978
112582
  value: string
113979
112583
  }[]
113980
112584
  }
113981
- /**
113982
- * True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
113983
- */
113984
112585
  truncated: boolean
113985
- /**
113986
- * When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
113987
- */
113988
112586
  exportedAt: string
113989
- /**
113990
- * 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.
113991
- */
113992
112587
  acquisition: ({
113993
- /**
113994
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
113995
- */
113996
112588
  utmMedium: (string | null)
113997
- /**
113998
- * 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.
113999
- */
114000
112589
  utmSource: (string | null)
114001
- /**
114002
- * 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.
114003
- */
114004
112590
  clickIdType: (string | null)
114005
- /**
114006
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114007
- */
114008
112591
  firstSeenAt: string
114009
- /**
114010
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114011
- */
114012
112592
  utmCampaign: (string | null)
114013
112593
  } | null)
114014
112594
  }
@@ -114023,228 +112603,78 @@ profileId: string
114023
112603
  */
114024
112604
  journeyLimit?: number
114025
112605
  /**
114026
- * Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
112606
+ * Opaque cursor to page further back through the journey
114027
112607
  */
114028
112608
  journeyCursor?: string
114029
112609
  }
114030
112610
 
114031
112611
  export interface TrackingProfilesGetOutput {
114032
- /**
114033
- * Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
114034
- */
114035
112612
  ltv: ({
114036
- /**
114037
- * 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.
114038
- */
114039
112613
  entries: {
114040
- /**
114041
- * ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
114042
- */
114043
112614
  currency: string
114044
- /**
114045
- * What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
114046
- */
114047
112615
  netMinor: number
114048
- /**
114049
- * Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
114050
- */
114051
112616
  grossMinor: number
114052
- /**
114053
- * Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
114054
- */
114055
112617
  lastPaymentAt: (string | null)
114056
- /**
114057
- * How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
114058
- */
114059
112618
  refundedMinor: number
114060
- /**
114061
- * When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
114062
- */
114063
112619
  firstPaymentAt: (string | null)
114064
112620
  }[]
114065
- /**
114066
- * The person these totals belong to — the same handle as profile.profileId.
114067
- */
114068
112621
  profileId: string
114069
- /**
114070
- * When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
114071
- */
114072
112622
  computedAt: (string | null)
114073
112623
  } | null)
114074
- /**
114075
- * 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.
114076
- */
114077
112624
  journey: {
114078
- /**
114079
- * Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
114080
- */
114081
112625
  cursor: (string | null)
114082
- /**
114083
- * This page of the journey, newest event first.
114084
- */
114085
112626
  events: {
114086
- /**
114087
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
114088
- */
114089
112627
  ts: string
114090
- /**
114091
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
114092
- */
114093
112628
  ref: string
114094
- /**
114095
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
114096
- */
114097
112629
  url: (string | null)
114098
- /**
114099
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
114100
- */
114101
112630
  name: string
114102
- /**
114103
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
114104
- */
114105
112631
  props: {
114106
112632
  [k: string]: unknown
114107
112633
  }
114108
- /**
114109
- * Title of the page as the browser reported it. Null off-page.
114110
- */
114111
112634
  title: (string | null)
114112
- /**
114113
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
114114
- */
114115
112635
  domain: (string | null)
114116
- /**
114117
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
114118
- */
114119
112636
  source: {
114120
- /**
114121
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
114122
- */
114123
112637
  clickId: (string | null)
114124
- /**
114125
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
114126
- */
114127
112638
  utmTerm: (string | null)
114128
- /**
114129
- * utm_medium on the URL of this event.
114130
- */
114131
112639
  utmMedium: (string | null)
114132
- /**
114133
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
114134
- */
114135
112640
  utmSource: (string | null)
114136
- /**
114137
- * utm_content on the URL of this event — which creative or link variant was clicked.
114138
- */
114139
112641
  utmContent: (string | null)
114140
- /**
114141
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
114142
- */
114143
112642
  clickIdType: (string | null)
114144
- /**
114145
- * utm_campaign on the URL of this event.
114146
- */
114147
112643
  utmCampaign: (string | null)
114148
112644
  }
114149
- /**
114150
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
114151
- */
114152
112645
  country: (string | null)
114153
- /**
114154
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
114155
- */
114156
112646
  referrer: (string | null)
114157
- /**
114158
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
114159
- */
114160
112647
  sessionId: (string | null)
114161
112648
  }[]
114162
112649
  }
114163
- /**
114164
- * The person themselves: their handle, how far they have come, and when they were seen.
114165
- */
114166
112650
  profile: {
114167
- /**
114168
- * 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.
114169
- */
114170
112651
  status: ("anonymous" | "identified" | "customer")
114171
- /**
114172
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
114173
- */
114174
112652
  createdAt: string
114175
- /**
114176
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
114177
- */
114178
112653
  profileId: string
114179
- /**
114180
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
114181
- */
114182
112654
  lastSeenAt: string
114183
- /**
114184
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
114185
- */
114186
112655
  firstSeenAt: string
114187
112656
  }
114188
- /**
114189
- * 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.
114190
- */
114191
112657
  signals: {
114192
- /**
114193
- * 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.
114194
- */
114195
112658
  emails: string[]
114196
- /**
114197
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
114198
- */
114199
112659
  phones: string[]
114200
- /**
114201
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
114202
- */
114203
112660
  domains: string[]
114204
- /**
114205
- * 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.
114206
- */
114207
112661
  clickIds: {
114208
- /**
114209
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
114210
- */
114211
112662
  type: string
114212
- /**
114213
- * The click identifier itself, raw, as the network stamped it on the landing URL.
114214
- */
114215
112663
  value: string
114216
112664
  }[]
114217
112665
  }
114218
- /**
114219
- * 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.
114220
- */
114221
112666
  acquisition: ({
114222
- /**
114223
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
114224
- */
114225
112667
  utmMedium: (string | null)
114226
- /**
114227
- * 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.
114228
- */
114229
112668
  utmSource: (string | null)
114230
- /**
114231
- * 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.
114232
- */
114233
112669
  clickIdType: (string | null)
114234
- /**
114235
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114236
- */
114237
112670
  firstSeenAt: string
114238
- /**
114239
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114240
- */
114241
112671
  utmCampaign: (string | null)
114242
112672
  } | null)
114243
112673
  }
114244
112674
 
114245
112675
  export interface TrackingProfilesListInput {
114246
112676
  /**
114247
- * Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
112677
+ * Exact email to find (case-insensitive), or a prefix when emailMatch=prefix
114248
112678
  */
114249
112679
  email?: string
114250
112680
  /**
@@ -114252,363 +112682,132 @@ email?: string
114252
112682
  */
114253
112683
  limit?: number
114254
112684
  /**
114255
- * Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
112685
+ * Opaque pagination cursor from a previous response
114256
112686
  */
114257
112687
  cursor?: string
114258
112688
  /**
114259
- * Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
112689
+ * Filter by profile status
114260
112690
  */
114261
112691
  status?: ("anonymous" | "identified" | "customer")
114262
112692
  /**
114263
- * How the email filter is matched: exact (default) compares the whole address case-insensitively, prefix matches everyone whose address starts with what you typed.
112693
+ * How to match the email filter
114264
112694
  */
114265
112695
  emailMatch?: ("exact" | "prefix")
114266
112696
  }
114267
112697
 
114268
112698
  export interface TrackingProfilesListOutput {
114269
- /**
114270
- * Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
114271
- */
114272
112699
  cursor: (string | null)
114273
- /**
114274
- * The page of people, most recently seen first. Shorter than the requested limit on the last page.
114275
- */
114276
112700
  profiles: {
114277
- /**
114278
- * 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.
114279
- */
114280
112701
  emails: string[]
114281
- /**
114282
- * How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
114283
- */
114284
112702
  status: ("anonymous" | "identified" | "customer")
114285
- /**
114286
- * Stable handle for this person. Feed it to a get, export or erase step.
114287
- */
114288
112703
  profileId: string
114289
- /**
114290
- * Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
114291
- */
114292
112704
  lastSeenAt: string
114293
- /**
114294
- * 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.
114295
- */
114296
112705
  acquisition: ({
114297
- /**
114298
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
114299
- */
114300
112706
  utmMedium: (string | null)
114301
- /**
114302
- * 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.
114303
- */
114304
112707
  utmSource: (string | null)
114305
- /**
114306
- * 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.
114307
- */
114308
112708
  clickIdType: (string | null)
114309
- /**
114310
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
114311
- */
114312
112709
  firstSeenAt: string
114313
- /**
114314
- * Campaign of that same first visit (utm_campaign). Null when untagged.
114315
- */
114316
112710
  utmCampaign: (string | null)
114317
112711
  } | null)
114318
- /**
114319
- * Timestamp of their earliest event, ISO 8601 UTC.
114320
- */
114321
112712
  firstSeenAt: string
114322
112713
  }[]
114323
112714
  }
114324
112715
 
114325
112716
  export interface TrackingReportsAttributedJourneyInput {
114326
- /**
114327
- * Show only journey events at or before this instant (ISO). Omit for the whole history.
114328
- */
114329
112717
  to?: string
114330
- /**
114331
- * Show only journey events at or after this instant (ISO). Omit for the whole history.
114332
- */
114333
112718
  from?: string
114334
- /**
114335
- * Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
114336
- */
114337
112719
  model?: ("last_click" | "first_click")
114338
112720
  /**
114339
112721
  * The profile id (uuid)
114340
112722
  */
114341
112723
  profileId: string
114342
- /**
114343
- * How far back before the conversion a touchpoint may be credited, in days (default 30).
114344
- */
114345
112724
  lookbackDays?: number
114346
112725
  }
114347
112726
 
114348
112727
  export interface TrackingReportsAttributedJourneyOutput {
114349
- /**
114350
- * What this person actually did, in order.
114351
- */
114352
112728
  journey: {
114353
- /**
114354
- * Every tracked event for this person inside the requested window, oldest first.
114355
- */
114356
112729
  events: {
114357
- /**
114358
- * When the event happened (ISO 8601, UTC). Events are ordered oldest first.
114359
- */
114360
112730
  ts: string
114361
- /**
114362
- * Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
114363
- */
114364
112731
  ref: string
114365
- /**
114366
- * Page address the event fired on. Free text from the customer site, so it can carry personal data.
114367
- */
114368
112732
  url: (string | null)
114369
- /**
114370
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
114371
- */
114372
112733
  name: string
114373
- /**
114374
- * Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
114375
- */
114376
112734
  props: {
114377
112735
  [k: string]: unknown
114378
112736
  }
114379
- /**
114380
- * Document title of that page. Free text from the customer site, so it can carry personal data.
114381
- */
114382
112737
  title: (string | null)
114383
- /**
114384
- * Site the event came from; null when the tracker could not determine one.
114385
- */
114386
112738
  domain: (string | null)
114387
- /**
114388
- * Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
114389
- */
114390
112739
  source: {
114391
- /**
114392
- * The click id value itself. Identifies one ad click by this person, so treat it as personal data.
114393
- */
114394
112740
  clickId: (string | null)
114395
- /**
114396
- * utm_term of the landing URL, the paid keyword; null when absent.
114397
- */
114398
112741
  utmTerm: (string | null)
114399
- /**
114400
- * utm_medium of the landing URL; null when absent.
114401
- */
114402
112742
  utmMedium: (string | null)
114403
- /**
114404
- * utm_source of the landing URL; null when absent.
114405
- */
114406
112743
  utmSource: (string | null)
114407
- /**
114408
- * utm_content of the landing URL, the creative variant; null when absent.
114409
- */
114410
112744
  utmContent: (string | null)
114411
- /**
114412
- * Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
114413
- */
114414
112745
  clickIdType: (string | null)
114415
- /**
114416
- * utm_campaign of the landing URL; null when absent.
114417
- */
114418
112746
  utmCampaign: (string | null)
114419
112747
  }
114420
- /**
114421
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
114422
- */
114423
112748
  country: (string | null)
114424
- /**
114425
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
114426
- */
114427
112749
  referrer: (string | null)
114428
- /**
114429
- * Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
114430
- */
114431
112750
  sessionId: (string | null)
114432
112751
  }[]
114433
112752
  }
114434
- /**
114435
- * 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.
114436
- */
114437
- decisions: TrackingReportsAttributedJourneyOutputItems[]
114438
- /**
114439
- * The person this journey belongs to, echoed back from the request.
114440
- */
114441
- profileId: string
114442
- /**
114443
- * 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.
114444
- */
114445
- originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null)
114446
- }
114447
- export interface TrackingReportsAttributedJourneyOutputItems {
114448
- /**
114449
- * Attribution model the winner was picked under, echoed back from the request.
114450
- */
112753
+ decisions: {
114451
112754
  model: ("last_click" | "first_click")
114452
- /**
114453
- * Why this touchpoint won, or why nothing did, in a sentence a person can read.
114454
- */
114455
112755
  reason: string
114456
- /**
114457
- * Revenue of that conversion, one row per currency.
114458
- */
114459
112756
  revenue: {
114460
- /**
114461
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
114462
- */
114463
112757
  currency: string
114464
- /**
114465
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
114466
- */
114467
112758
  netMinor: number
114468
- /**
114469
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
114470
- */
114471
112759
  grossMinor: number
114472
- /**
114473
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
114474
- */
114475
112760
  refundedMinor: number
114476
112761
  }[]
114477
- /**
114478
- * `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
114479
- */
114480
112762
  winnerRef: (string | null)
114481
- /**
114482
- * When the conversion this decision explains happened (ISO 8601, UTC).
114483
- */
114484
112763
  conversionTs: string
114485
- /**
114486
- * How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
114487
- */
114488
112764
  lookbackDays: number
114489
- /**
114490
- * The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
114491
- */
114492
112765
  winningTouchpoint: ({
114493
- /**
114494
- * When the winning touchpoint happened (ISO 8601, UTC).
114495
- */
114496
112766
  ts: string
114497
- /**
114498
- * Channel the winning touchpoint belongs to.
114499
- */
114500
112767
  channel: ("paid" | "organic" | "direct" | "email")
114501
- /**
114502
- * utm_medium of the winning touchpoint; null when it carried none.
114503
- */
114504
112768
  utmMedium: (string | null)
114505
- /**
114506
- * utm_source of the winning touchpoint; null when it carried none.
114507
- */
114508
112769
  utmSource: (string | null)
114509
- /**
114510
- * Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
114511
- */
114512
- ltCampaign?: (string | null)
114513
- /**
114514
- * Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
114515
- */
114516
112770
  clickIdType: (string | null)
114517
- /**
114518
- * utm_campaign of the winning touchpoint; null when it carried none.
114519
- */
114520
112771
  utmCampaign: (string | null)
114521
112772
  } | null)
112773
+ }[]
112774
+ profileId: string
114522
112775
  }
114523
112776
 
114524
112777
  export interface TrackingReportsEventVolumeInput {
114525
- /**
114526
- * End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
114527
- */
114528
- to?: string
114529
- /**
114530
- * Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
114531
- */
114532
- from?: string
114533
- /**
114534
- * Count only this site. Omit to count every site the product sends from.
114535
- */
112778
+ to: string
112779
+ from: string
114536
112780
  domain?: string
114537
112781
  }
114538
112782
 
114539
112783
  export interface TrackingReportsEventVolumeOutput {
114540
- /**
114541
- * End of the range the figures cover, echoed back (ISO 8601, UTC).
114542
- */
114543
112784
  to: string
114544
- /**
114545
- * Start of the range the figures cover, echoed back (ISO 8601, UTC).
114546
- */
114547
112785
  from: string
114548
- /**
114549
- * Site the figures were restricted to; null when every site of the product is included.
114550
- */
114551
112786
  domain: (string | null)
114552
- /**
114553
- * When this report was computed (ISO 8601, UTC).
114554
- */
114555
112787
  computedAt: string
114556
- /**
114557
- * 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.
114558
- */
114559
112788
  dataQuality: {
114560
- /**
114561
- * Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
114562
- */
114563
112789
  noBannerShare: number
114564
- /**
114565
- * Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
114566
- */
114567
112790
  noBannerEvents: number
114568
- /**
114569
- * How many UTC days the range spans; each one re-counts a returning declining visitor.
114570
- */
114571
112791
  utcDaysInRange: number
114572
- /**
114573
- * Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
114574
- */
114575
112792
  cookielessShare: number
114576
- /**
114577
- * Events from visitors who declined; no cookie was written and no identifier sent.
114578
- */
114579
112793
  cookielessEvents: number
114580
- /**
114581
- * 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.
114582
- */
114583
112794
  identifiedEvents: number
114584
- /**
114585
- * True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
114586
- */
114587
112795
  visitorsOverstated: boolean
114588
- /**
114589
- * Events from visitors who granted statistics consent.
114590
- */
114591
112796
  consentGrantedEvents: number
114592
112797
  }
114593
- /**
114594
- * How many events arrived in the range, across every consent state.
114595
- */
114596
112798
  totalEvents: number
114597
- /**
114598
- * 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.
114599
- */
114600
112799
  visitorsDeduplicatedPerUtcDay: number
114601
112800
  }
114602
112801
 
114603
112802
  export interface TrackingReportsRevenueBySourceInput {
114604
112803
  /**
114605
- * Cohort window end (ISO). Optional — defaults to the moment of the call.
112804
+ * Cohort window end (ISO)
114606
112805
  */
114607
- to?: string
112806
+ to: string
114608
112807
  /**
114609
- * Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
112808
+ * Cohort window start (ISO); selects conversions by subscription start
114610
112809
  */
114611
- from?: string
112810
+ from: string
114612
112811
  /**
114613
112812
  * Attribution model
114614
112813
  */
@@ -114624,150 +112823,54 @@ lookbackDays?: number
114624
112823
  }
114625
112824
 
114626
112825
  export interface TrackingReportsRevenueBySourceOutput {
114627
- /**
114628
- * End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
114629
- */
114630
112826
  to: string
114631
- /**
114632
- * Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
114633
- */
114634
112827
  from: string
114635
- /**
114636
- * Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
114637
- */
114638
112828
  model: ("last_click" | "first_click")
114639
- /**
114640
- * Site touchpoints were restricted to; null when every site of the product was considered.
114641
- */
114642
112829
  domain: (string | null)
114643
- /**
114644
- * Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
114645
- */
114646
112830
  totals: {
114647
- /**
114648
- * Revenue over every channel plus `unattributed`, one row per currency.
114649
- */
114650
112831
  revenue: TrackingReportsRevenueBySourceOutputItems[]
114651
- /**
114652
- * Distinct paying people over every channel plus `unattributed`.
114653
- */
114654
112832
  customers: number
114655
112833
  }
114656
- /**
114657
- * One row per channel that earned revenue in the window. Channels with none are omitted.
114658
- */
114659
112834
  channels: {
114660
- /**
114661
- * Which acquisition channel this row aggregates.
114662
- */
114663
112835
  channel: ("paid" | "organic" | "direct" | "email")
114664
- /**
114665
- * 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.
114666
- */
114667
112836
  revenue: TrackingReportsRevenueBySourceOutputItems[]
114668
- /**
114669
- * Distinct paying people credited to this channel.
114670
- */
114671
112837
  customers: number
114672
- /**
114673
- * The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
114674
- */
114675
112838
  utmBreakdown: {
114676
- /**
114677
- * Revenue credited to this UTM combination, one row per currency.
114678
- */
114679
112839
  revenue: TrackingReportsRevenueBySourceOutputItems[]
114680
- /**
114681
- * Distinct paying people credited to this UTM combination.
114682
- */
114683
112840
  customers: number
114684
- /**
114685
- * utm_medium of this row; null when the visit carried none.
114686
- */
114687
112841
  utmMedium: (string | null)
114688
- /**
114689
- * utm_source of this row; null when the visit carried none.
114690
- */
114691
112842
  utmSource: (string | null)
114692
- /**
114693
- * Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
114694
- */
114695
112843
  clickIdType: (string | null)
114696
- /**
114697
- * utm_campaign of this row; null when the visit carried none.
114698
- */
114699
112844
  utmCampaign: (string | null)
114700
112845
  }[]
114701
112846
  }[]
114702
- /**
114703
- * Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
114704
- */
114705
112847
  matchRate: number
114706
- /**
114707
- * When this report was computed (ISO 8601, UTC).
114708
- */
114709
112848
  computedAt: string
114710
- /**
114711
- * How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
114712
- */
114713
112849
  lookbackDays: number
114714
- /**
114715
- * Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
114716
- */
114717
112850
  unattributed: {
114718
- /**
114719
- * Revenue no touchpoint could be credited for, one row per currency.
114720
- */
114721
112851
  revenue: TrackingReportsRevenueBySourceOutputItems[]
114722
- /**
114723
- * Distinct paying people no touchpoint could be credited for.
114724
- */
114725
112852
  customers: number
114726
112853
  }
114727
112854
  }
114728
112855
  export interface TrackingReportsRevenueBySourceOutputItems {
114729
- /**
114730
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
114731
- */
114732
112856
  currency: string
114733
- /**
114734
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
114735
- */
114736
112857
  netMinor: number
114737
- /**
114738
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
114739
- */
114740
112858
  grossMinor: number
114741
- /**
114742
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
114743
- */
114744
112859
  refundedMinor: number
114745
112860
  }
114746
112861
 
114747
112862
  export interface TrackingReportsSourcePeopleInput {
114748
- /**
114749
- * Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
114750
- */
114751
- to?: string
114752
- /**
114753
- * Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
114754
- */
114755
- from?: string
112863
+ to: string
112864
+ from: string
114756
112865
  /**
114757
112866
  * People per page (default 50, max 200)
114758
112867
  */
114759
112868
  limit?: number
114760
- /**
114761
- * Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
114762
- */
114763
112869
  model?: ("last_click" | "first_click")
114764
112870
  /**
114765
112871
  * Opaque keyset cursor from a previous page
114766
112872
  */
114767
112873
  cursor?: string
114768
- /**
114769
- * Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
114770
- */
114771
112874
  domain?: string
114772
112875
  /**
114773
112876
  * Channel to drill into
@@ -114777,72 +112880,27 @@ channel: ("paid" | "organic" | "direct" | "email")
114777
112880
  * Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
114778
112881
  */
114779
112882
  utmNulls?: string
114780
- /**
114781
- * utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
114782
- */
114783
112883
  utmMedium?: string
114784
- /**
114785
- * utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
114786
- */
114787
112884
  utmSource?: string
114788
112885
  /**
114789
112886
  * 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.
114790
112887
  */
114791
112888
  clickIdType?: string
114792
- /**
114793
- * utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
114794
- */
114795
112889
  utmCampaign?: string
114796
- /**
114797
- * How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
114798
- */
114799
112890
  lookbackDays?: number
114800
112891
  }
114801
112892
 
114802
112893
  export interface TrackingReportsSourcePeopleOutput {
114803
- /**
114804
- * Pass back as `cursor` for the next page. Null on the last page.
114805
- */
114806
112894
  cursor: (string | null)
114807
- /**
114808
- * The page of people behind the requested row, ordered by the keyset the cursor walks.
114809
- */
114810
112895
  people: {
114811
- /**
114812
- * Where this person stands in their subscription lifecycle, e.g. active or churned.
114813
- */
114814
112896
  status: string
114815
- /**
114816
- * Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
114817
- */
114818
112897
  profileId: string
114819
- /**
114820
- * Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
114821
- */
114822
112898
  lastSeenAt: (string | null)
114823
- /**
114824
- * Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
114825
- */
114826
112899
  firstSeenAt: (string | null)
114827
- /**
114828
- * Lifetime revenue credited to this person under the requested model, one row per currency.
114829
- */
114830
112900
  attributedRevenue: {
114831
- /**
114832
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
114833
- */
114834
112901
  currency: string
114835
- /**
114836
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
114837
- */
114838
112902
  netMinor: number
114839
- /**
114840
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
114841
- */
114842
112903
  grossMinor: number
114843
- /**
114844
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
114845
- */
114846
112904
  refundedMinor: number
114847
112905
  }[]
114848
112906
  }[]
@@ -114853,21 +112911,9 @@ export interface TrackingSnippetsGetInput {
114853
112911
  }
114854
112912
 
114855
112913
  export interface TrackingSnippetsGetOutput {
114856
- /**
114857
- * Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
114858
- */
114859
112914
  host: string
114860
- /**
114861
- * The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
114862
- */
114863
112915
  snippet: string
114864
- /**
114865
- * Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
114866
- */
114867
112916
  scriptUrl: string
114868
- /**
114869
- * 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.
114870
- */
114871
112917
  minimalSnippet: string
114872
112918
  }
114873
112919
 
@@ -114883,75 +112929,13 @@ type: ("server" | "publishable")
114883
112929
  }
114884
112930
 
114885
112931
  export interface UsersApikeysCreateOutput {
114886
- /**
114887
- * Id of the key. Pass it to users_apikeys_revoke.
114888
- */
114889
112932
  id: string
114890
- /**
114891
- * 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.
114892
- */
114893
112933
  key: string
114894
- /**
114895
- * The label a human gave this key — which backend or environment holds it.
114896
- */
114897
- name: string
114898
- /**
114899
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
114900
- */
114901
- type: ("server" | "publishable")
114902
- /**
114903
- * 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.
114904
- */
114905
- value: (string | null)
114906
- /**
114907
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
114908
- */
114909
- prefix: string
114910
- /**
114911
- * When the key was issued (ISO 8601).
114912
- */
114913
- createdAt: string
114914
- /**
114915
- * When the key was revoked (ISO 8601). Null while it still works.
114916
- */
114917
- revokedAt: (string | null)
114918
- }
114919
-
114920
- export interface UsersApikeysGetInput {
114921
- /**
114922
- * Id of the key to read — the `id` from users_apikeys_list.
114923
- */
114924
- id: string
114925
- }
114926
-
114927
- export interface UsersApikeysGetOutput {
114928
- /**
114929
- * Id of the key. Pass it to users_apikeys_revoke.
114930
- */
114931
- id: string
114932
- /**
114933
- * The label a human gave this key — which backend or environment holds it.
114934
- */
114935
112934
  name: string
114936
- /**
114937
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
114938
- */
114939
112935
  type: ("server" | "publishable")
114940
- /**
114941
- * 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.
114942
- */
114943
112936
  value: (string | null)
114944
- /**
114945
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
114946
- */
114947
112937
  prefix: string
114948
- /**
114949
- * When the key was issued (ISO 8601).
114950
- */
114951
112938
  createdAt: string
114952
- /**
114953
- * When the key was revoked (ISO 8601). Null while it still works.
114954
- */
114955
112939
  revokedAt: (string | null)
114956
112940
  }
114957
112941
 
@@ -114961,33 +112945,12 @@ export interface UsersApikeysListInput {
114961
112945
 
114962
112946
  export interface UsersApikeysListOutput {
114963
112947
  keys: {
114964
- /**
114965
- * Id of the key. Pass it to users_apikeys_revoke.
114966
- */
114967
112948
  id: string
114968
- /**
114969
- * The label a human gave this key — which backend or environment holds it.
114970
- */
114971
112949
  name: string
114972
- /**
114973
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
114974
- */
114975
112950
  type: ("server" | "publishable")
114976
- /**
114977
- * 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.
114978
- */
114979
112951
  value: (string | null)
114980
- /**
114981
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
114982
- */
114983
112952
  prefix: string
114984
- /**
114985
- * When the key was issued (ISO 8601).
114986
- */
114987
112953
  createdAt: string
114988
- /**
114989
- * When the key was revoked (ISO 8601). Null while it still works.
114990
- */
114991
112954
  revokedAt: (string | null)
114992
112955
  }[]
114993
112956
  }
@@ -115000,13 +112963,7 @@ id: string
115000
112963
  }
115001
112964
 
115002
112965
  export interface UsersApikeysRevokeOutput {
115003
- /**
115004
- * Id of the key that was revoked.
115005
- */
115006
112966
  id: string
115007
- /**
115008
- * Always true — revocation is immediate and final.
115009
- */
115010
112967
  revoked: true
115011
112968
  }
115012
112969
 
@@ -115042,60 +112999,21 @@ targetType?: string
115042
112999
  }
115043
113000
 
115044
113001
  export interface UsersAuditListOutput {
115045
- /**
115046
- * The page of audit events, newest first.
115047
- */
115048
113002
  events: {
115049
- /**
115050
- * Id of this audit row.
115051
- */
115052
113003
  id: string
115053
- /**
115054
- * IP the action came from. Null when it was not an HTTP action.
115055
- */
115056
113004
  ip: (string | null)
115057
- /**
115058
- * What happened, as a dotted name — `user.created`, `passkey.deleted`, `email_change.override_applied`.
115059
- */
115060
113005
  action: string
115061
- /**
115062
- * Id of the actor. Null for a system action.
115063
- */
115064
113006
  actorId: (string | null)
115065
- /**
115066
- * Action-specific detail — the reason text, counts, whatever the action recorded.
115067
- */
115068
113007
  metadata: {
115069
113008
  [k: string]: unknown
115070
113009
  }
115071
- /**
115072
- * Id of the row the action was about. Null when there was none.
115073
- */
115074
113010
  targetId: (string | null)
115075
- /**
115076
- * Who acted: `operator` (a human or agent on the management plane), `end_user`, or `system`.
115077
- */
115078
113011
  actorType: ("operator" | "system" | "end_user")
115079
- /**
115080
- * When the action happened (ISO 8601).
115081
- */
115082
113012
  createdAt: string
115083
- /**
115084
- * Product the audited action happened in.
115085
- */
115086
113013
  productId: string
115087
- /**
115088
- * User agent the action came from. Null when none was sent.
115089
- */
115090
113014
  userAgent: (string | null)
115091
- /**
115092
- * What kind of row the action was about — `user` or `product`. Null when it was about nothing in particular.
115093
- */
115094
113015
  targetType: (string | null)
115095
113016
  }[]
115096
- /**
115097
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
115098
- */
115099
113017
  nextCursor: (string | null)
115100
113018
  }
115101
113019
 
@@ -116078,33 +113996,12 @@ userId: string
116078
113996
  }
116079
113997
 
116080
113998
  export interface UsersFactorsListOutput {
116081
- /**
116082
- * Every second factor this user has — types and status only, never material.
116083
- */
116084
113999
  factors: {
116085
- /**
116086
- * Kind of second factor: `totp` or `backup_codes`. No key material is ever returned.
116087
- */
116088
114000
  type: ("totp" | "backup_codes" | "webauthn")
116089
- /**
116090
- * Whether this factor is enrolled and usable, or still pending verification.
116091
- */
116092
114001
  status: ("unverified" | "verified")
116093
- /**
116094
- * When the factor was enrolled (ISO 8601).
116095
- */
116096
114002
  createdAt: string
116097
- /**
116098
- * `backup_codes` only: how many of the batch are still unspent. Null for any other factor type.
116099
- */
116100
114003
  remaining: (number | null)
116101
- /**
116102
- * When the factor was last used to sign in (ISO 8601). Null if it never was.
116103
- */
116104
114004
  lastUsedAt: (string | null)
116105
- /**
116106
- * When the user first proved the factor works (ISO 8601). Null while it is unverified.
116107
- */
116108
114005
  verifiedAt: (string | null)
116109
114006
  }[]
116110
114007
  }
@@ -116121,13 +114018,7 @@ userId: string
116121
114018
  }
116122
114019
 
116123
114020
  export interface UsersFactorsResetOutput {
116124
- /**
116125
- * Id of the scheduled reset. The same value arrives on `users/mfa.reset-settled`, which is what finishes this step.
116126
- */
116127
114021
  requestId: string
116128
- /**
116129
- * When the removal happens, if nobody aborts it first (ISO 8601). The delay is this product's, not a fixed one.
116130
- */
116131
114022
  scheduledFor: string
116132
114023
  }
116133
114024
 
@@ -116423,52 +114314,6 @@ signInFailureBaseline: (number | null)
116423
114314
  }
116424
114315
  }
116425
114316
 
116426
- export interface UsersPasskeysGetInput {
116427
- /**
116428
- * The end user the credential belongs to.
116429
- */
116430
- userId: string
116431
- /**
116432
- * Which credential to read — the `id` from `users_passkeys_list`.
116433
- */
116434
- passkeyId: string
116435
- }
116436
-
116437
- export interface UsersPasskeysGetOutput {
116438
- /**
116439
- * Id of the credential. Pass it to users_passkeys_revoke.
116440
- */
116441
- id: string
116442
- /**
116443
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
116444
- */
116445
- name: (string | null)
116446
- /**
116447
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
116448
- */
116449
- aaguid: (string | null)
116450
- /**
116451
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
116452
- */
116453
- backedUp: boolean
116454
- /**
116455
- * When the credential was registered (ISO 8601).
116456
- */
116457
- createdAt: string
116458
- /**
116459
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
116460
- */
116461
- signCount: number
116462
- /**
116463
- * When it last signed in (ISO 8601). Null when it never has.
116464
- */
116465
- lastUsedAt: (string | null)
116466
- /**
116467
- * 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.
116468
- */
116469
- transports: string[]
116470
- }
116471
-
116472
114317
  export interface UsersPasskeysListInput {
116473
114318
  /**
116474
114319
  * The end user whose passkeys to list.
@@ -116477,41 +114322,14 @@ userId: string
116477
114322
  }
116478
114323
 
116479
114324
  export interface UsersPasskeysListOutput {
116480
- /**
116481
- * The credentials this user has registered, newest first. Empty when they have none.
116482
- */
116483
114325
  passkeys: {
116484
- /**
116485
- * Id of the credential. Pass it to users_passkeys_revoke.
116486
- */
116487
114326
  id: string
116488
- /**
116489
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
116490
- */
116491
114327
  name: (string | null)
116492
- /**
116493
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
116494
- */
116495
114328
  aaguid: (string | null)
116496
- /**
116497
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
116498
- */
116499
114329
  backedUp: boolean
116500
- /**
116501
- * When the credential was registered (ISO 8601).
116502
- */
116503
114330
  createdAt: string
116504
- /**
116505
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
116506
- */
116507
114331
  signCount: number
116508
- /**
116509
- * When it last signed in (ISO 8601). Null when it never has.
116510
- */
116511
114332
  lastUsedAt: (string | null)
116512
- /**
116513
- * 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.
116514
- */
116515
114333
  transports: string[]
116516
114334
  }[]
116517
114335
  }
@@ -116536,18 +114354,9 @@ export interface UsersPasskeysRevokeOutput {
116536
114354
  * Present when the revoke was refused — today, only because it was the last way in.
116537
114355
  */
116538
114356
  error: ({
116539
- /**
116540
- * Why it was refused. Today only `passkey_last_way_in`.
116541
- */
116542
114357
  code: string
116543
- /**
116544
- * The refusal in a sentence, safe to show a human.
116545
- */
116546
114358
  message: string
116547
114359
  } | null)
116548
- /**
116549
- * `deleted` when the credential is gone, `failed` when the revoke was refused.
116550
- */
116551
114360
  status: ("deleted" | "failed")
116552
114361
  }
116553
114362
 
@@ -116559,13 +114368,7 @@ sessionId: string
116559
114368
  }
116560
114369
 
116561
114370
  export interface UsersSessionsGetOutput {
116562
- /**
116563
- * Id of this session. Pass it to users_sessions_revoke.
116564
- */
116565
114371
  id: string
116566
- /**
116567
- * IP the session was opened from. Null when it was not recorded.
116568
- */
116569
114372
  ip: (string | null)
116570
114373
  /**
116571
114374
  * `aal2` only if a verified second factor completed.
@@ -116575,45 +114378,18 @@ aal: ("aal1" | "aal2")
116575
114378
  * The factors this session was established with.
116576
114379
  */
116577
114380
  amr: string[]
116578
- /**
116579
- * Whether the session is still usable, expired, or revoked.
116580
- */
116581
114381
  status: ("active" | "revoked")
116582
- /**
116583
- * The end user this session belongs to.
116584
- */
116585
114382
  userId: string
116586
- /**
116587
- * When the session was opened (ISO 8601).
116588
- */
116589
114383
  createdAt: string
116590
- /**
116591
- * When the current token stops working unless refreshed (ISO 8601).
116592
- */
116593
114384
  expiresAt: string
116594
- /**
116595
- * When the session was revoked (ISO 8601). Null while it is live.
116596
- */
116597
114385
  revokedAt: (string | null)
116598
- /**
116599
- * User agent the session was opened from. Null when none was sent.
116600
- */
116601
114386
  userAgent: (string | null)
116602
- /**
116603
- * 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.
116604
- */
116605
114387
  revokedReason: (string | null)
116606
114388
  /**
116607
114389
  * The operator behind an impersonated session, or null for an ordinary one.
116608
114390
  */
116609
114391
  impersonatedBy: (string | null)
116610
- /**
116611
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
116612
- */
116613
114392
  lastRefreshedAt: (string | null)
116614
- /**
116615
- * When the session ends no matter how often it refreshes (ISO 8601).
116616
- */
116617
114393
  absoluteExpiresAt: string
116618
114394
  }
116619
114395
 
@@ -116653,49 +114429,16 @@ userId: string
116653
114429
  }
116654
114430
 
116655
114431
  export interface UsersSessionsListOutput {
116656
- /**
116657
- * The sessions matching the filter, newest first.
116658
- */
116659
114432
  sessions: {
116660
- /**
116661
- * Id of this session. Pass it to users_sessions_revoke.
116662
- */
116663
114433
  id: string
116664
- /**
116665
- * IP the session was opened from. Null when it was not recorded.
116666
- */
116667
114434
  ip: (string | null)
116668
- /**
116669
- * Whether the session is still usable, expired, or revoked.
116670
- */
116671
114435
  status: ("active" | "revoked")
116672
- /**
116673
- * The end user this session belongs to.
116674
- */
116675
114436
  userId: string
116676
- /**
116677
- * When the session was opened (ISO 8601).
116678
- */
116679
114437
  createdAt: string
116680
- /**
116681
- * When the current token stops working unless refreshed (ISO 8601).
116682
- */
116683
114438
  expiresAt: string
116684
- /**
116685
- * When the session was revoked (ISO 8601). Null while it is live.
116686
- */
116687
114439
  revokedAt: (string | null)
116688
- /**
116689
- * User agent the session was opened from. Null when none was sent.
116690
- */
116691
114440
  userAgent: (string | null)
116692
- /**
116693
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
116694
- */
116695
114441
  lastRefreshedAt: (string | null)
116696
- /**
116697
- * When the session ends no matter how often it refreshes (ISO 8601).
116698
- */
116699
114442
  absoluteExpiresAt: string
116700
114443
  }[]
116701
114444
  }
@@ -116712,9 +114455,6 @@ sessionId?: string
116712
114455
  }
116713
114456
 
116714
114457
  export interface UsersSessionsRevokeOutput {
116715
- /**
116716
- * How many sessions were revoked. Zero when there was nothing live to revoke.
116717
- */
116718
114458
  revoked: number
116719
114459
  }
116720
114460
 
@@ -116841,126 +114581,37 @@ userId: string
116841
114581
  }
116842
114582
 
116843
114583
  export interface UsersUsersBanOutput {
116844
- /**
116845
- * Id of this end user. Pass it to any users_users_* tool.
116846
- */
116847
114584
  id: string
116848
- /**
116849
- * The user's display name. Null when nobody set one.
116850
- */
116851
114585
  name: (string | null)
116852
- /**
116853
- * When the user was banned (ISO 8601). Null while they are not banned.
116854
- */
116855
114586
  bannedAt: (string | null)
116856
- /**
116857
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
116858
- */
116859
114587
  erasedAt: (string | null)
116860
- /**
116861
- * URL of the user's avatar. Null when there is none.
116862
- */
116863
114588
  imageUrl: (string | null)
116864
- /**
116865
- * Whether this is a test fixture — excluded from metering and from the default listing.
116866
- */
116867
114589
  testUser: boolean
116868
- /**
116869
- * When the user was created (ISO 8601).
116870
- */
116871
114590
  createdAt: string
116872
- /**
116873
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
116874
- */
116875
114591
  deletedAt: (string | null)
116876
- /**
116877
- * Product this user belongs to. Never an input — it comes from the calling identity.
116878
- */
116879
114592
  productId: string
116880
- /**
116881
- * When the user was last changed (ISO 8601).
116882
- */
116883
114593
  updatedAt: string
116884
- /**
116885
- * Whether this user is still on the waitlist and cannot sign in yet.
116886
- */
116887
114594
  waitlisted: boolean
116888
- /**
116889
- * 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".
116890
- */
116891
114595
  identifiers: {
116892
- /**
116893
- * Id of this identifier row.
116894
- */
116895
114596
  id: string
116896
- /**
116897
- * What kind of identifier this is. Today always `email`.
116898
- */
116899
114597
  type: "email"
116900
- /**
116901
- * The address as the user typed it, for display.
116902
- */
116903
114598
  value: string
116904
- /**
116905
- * Whether this is the identifier the user signs in with and is contacted at.
116906
- */
116907
114599
  isPrimary: boolean
116908
- /**
116909
- * When this address was verified (ISO 8601). Null while it never was.
116910
- */
116911
114600
  verifiedAt: (string | null)
116912
- /**
116913
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
116914
- */
116915
114601
  valueCanonical: string
116916
- /**
116917
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
116918
- */
116919
114602
  verificationStatus: ("unverified" | "verified" | "expired")
116920
114603
  }[]
116921
- /**
116922
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
116923
- */
116924
114604
  lockedUntil: (string | null)
116925
- /**
116926
- * When the user last signed in (ISO 8601). Null if they never have.
116927
- */
116928
114605
  lastSignInAt: (string | null)
116929
- /**
116930
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
116931
- */
116932
- primaryEmail: (string | null)
116933
- /**
116934
- * Whether the user must set a new password at their next sign-in.
116935
- */
116936
114606
  requiresReset: boolean
116937
- /**
116938
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
116939
- */
116940
- publicMetadata: {
116941
- [k: string]: unknown
116942
- }
116943
- /**
116944
- * Metadata the end user may write themselves. Treat it as untrusted.
116945
- */
116946
- unsafeMetadata: {
116947
- [k: string]: unknown
114607
+ publicMetadata: UsersUsersBanOutputPublicMetadata
114608
+ unsafeMetadata: UsersUsersBanOutputPublicMetadata
114609
+ privateMetadata: UsersUsersBanOutputPublicMetadata
114610
+ emailChangeLockedUntil: (string | null)
116948
114611
  }
116949
- /**
116950
- * Metadata for the management plane only. Never reaches the end user or a token.
116951
- */
116952
- privateMetadata: {
114612
+ export interface UsersUsersBanOutputPublicMetadata {
116953
114613
  [k: string]: unknown
116954
114614
  }
116955
- /**
116956
- * Id of the primary identifier row. Null when there is no primary identifier.
116957
- */
116958
- primaryIdentifierId: (string | null)
116959
- /**
116960
- * 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.
116961
- */
116962
- emailChangeLockedUntil: (string | null)
116963
- }
116964
114615
 
116965
114616
  export interface UsersUsersCreateInput {
116966
114617
  /**
@@ -117063,126 +114714,37 @@ export interface UsersUsersCreateInputPublicMetadata1 {
117063
114714
  }
117064
114715
 
117065
114716
  export interface UsersUsersCreateOutput {
117066
- /**
117067
- * Id of this end user. Pass it to any users_users_* tool.
117068
- */
117069
114717
  id: string
117070
- /**
117071
- * The user's display name. Null when nobody set one.
117072
- */
117073
114718
  name: (string | null)
117074
- /**
117075
- * When the user was banned (ISO 8601). Null while they are not banned.
117076
- */
117077
114719
  bannedAt: (string | null)
117078
- /**
117079
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117080
- */
117081
114720
  erasedAt: (string | null)
117082
- /**
117083
- * URL of the user's avatar. Null when there is none.
117084
- */
117085
114721
  imageUrl: (string | null)
117086
- /**
117087
- * Whether this is a test fixture — excluded from metering and from the default listing.
117088
- */
117089
114722
  testUser: boolean
117090
- /**
117091
- * When the user was created (ISO 8601).
117092
- */
117093
114723
  createdAt: string
117094
- /**
117095
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117096
- */
117097
114724
  deletedAt: (string | null)
117098
- /**
117099
- * Product this user belongs to. Never an input — it comes from the calling identity.
117100
- */
117101
114725
  productId: string
117102
- /**
117103
- * When the user was last changed (ISO 8601).
117104
- */
117105
114726
  updatedAt: string
117106
- /**
117107
- * Whether this user is still on the waitlist and cannot sign in yet.
117108
- */
117109
114727
  waitlisted: boolean
117110
- /**
117111
- * 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".
117112
- */
117113
114728
  identifiers: {
117114
- /**
117115
- * Id of this identifier row.
117116
- */
117117
114729
  id: string
117118
- /**
117119
- * What kind of identifier this is. Today always `email`.
117120
- */
117121
114730
  type: "email"
117122
- /**
117123
- * The address as the user typed it, for display.
117124
- */
117125
114731
  value: string
117126
- /**
117127
- * Whether this is the identifier the user signs in with and is contacted at.
117128
- */
117129
114732
  isPrimary: boolean
117130
- /**
117131
- * When this address was verified (ISO 8601). Null while it never was.
117132
- */
117133
114733
  verifiedAt: (string | null)
117134
- /**
117135
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117136
- */
117137
114734
  valueCanonical: string
117138
- /**
117139
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117140
- */
117141
114735
  verificationStatus: ("unverified" | "verified" | "expired")
117142
114736
  }[]
117143
- /**
117144
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117145
- */
117146
114737
  lockedUntil: (string | null)
117147
- /**
117148
- * When the user last signed in (ISO 8601). Null if they never have.
117149
- */
117150
114738
  lastSignInAt: (string | null)
117151
- /**
117152
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117153
- */
117154
- primaryEmail: (string | null)
117155
- /**
117156
- * Whether the user must set a new password at their next sign-in.
117157
- */
117158
114739
  requiresReset: boolean
117159
- /**
117160
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117161
- */
117162
- publicMetadata: {
117163
- [k: string]: unknown
117164
- }
117165
- /**
117166
- * Metadata the end user may write themselves. Treat it as untrusted.
117167
- */
117168
- unsafeMetadata: {
117169
- [k: string]: unknown
117170
- }
117171
- /**
117172
- * Metadata for the management plane only. Never reaches the end user or a token.
117173
- */
117174
- privateMetadata: {
117175
- [k: string]: unknown
117176
- }
117177
- /**
117178
- * Id of the primary identifier row. Null when there is no primary identifier.
117179
- */
117180
- primaryIdentifierId: (string | null)
117181
- /**
117182
- * 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.
117183
- */
114740
+ publicMetadata: UsersUsersCreateOutputPublicMetadata
114741
+ unsafeMetadata: UsersUsersCreateOutputPublicMetadata
114742
+ privateMetadata: UsersUsersCreateOutputPublicMetadata
117184
114743
  emailChangeLockedUntil: (string | null)
117185
114744
  }
114745
+ export interface UsersUsersCreateOutputPublicMetadata {
114746
+ [k: string]: unknown
114747
+ }
117186
114748
 
117187
114749
  export interface UsersUsersDeleteInput {
117188
114750
  /**
@@ -117192,126 +114754,37 @@ userId: string
117192
114754
  }
117193
114755
 
117194
114756
  export interface UsersUsersDeleteOutput {
117195
- /**
117196
- * Id of this end user. Pass it to any users_users_* tool.
117197
- */
117198
114757
  id: string
117199
- /**
117200
- * The user's display name. Null when nobody set one.
117201
- */
117202
114758
  name: (string | null)
117203
- /**
117204
- * When the user was banned (ISO 8601). Null while they are not banned.
117205
- */
117206
114759
  bannedAt: (string | null)
117207
- /**
117208
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117209
- */
117210
114760
  erasedAt: (string | null)
117211
- /**
117212
- * URL of the user's avatar. Null when there is none.
117213
- */
117214
114761
  imageUrl: (string | null)
117215
- /**
117216
- * Whether this is a test fixture — excluded from metering and from the default listing.
117217
- */
117218
114762
  testUser: boolean
117219
- /**
117220
- * When the user was created (ISO 8601).
117221
- */
117222
114763
  createdAt: string
117223
- /**
117224
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117225
- */
117226
114764
  deletedAt: (string | null)
117227
- /**
117228
- * Product this user belongs to. Never an input — it comes from the calling identity.
117229
- */
117230
114765
  productId: string
117231
- /**
117232
- * When the user was last changed (ISO 8601).
117233
- */
117234
114766
  updatedAt: string
117235
- /**
117236
- * Whether this user is still on the waitlist and cannot sign in yet.
117237
- */
117238
114767
  waitlisted: boolean
117239
- /**
117240
- * 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".
117241
- */
117242
114768
  identifiers: {
117243
- /**
117244
- * Id of this identifier row.
117245
- */
117246
114769
  id: string
117247
- /**
117248
- * What kind of identifier this is. Today always `email`.
117249
- */
117250
114770
  type: "email"
117251
- /**
117252
- * The address as the user typed it, for display.
117253
- */
117254
114771
  value: string
117255
- /**
117256
- * Whether this is the identifier the user signs in with and is contacted at.
117257
- */
117258
114772
  isPrimary: boolean
117259
- /**
117260
- * When this address was verified (ISO 8601). Null while it never was.
117261
- */
117262
114773
  verifiedAt: (string | null)
117263
- /**
117264
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117265
- */
117266
114774
  valueCanonical: string
117267
- /**
117268
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117269
- */
117270
114775
  verificationStatus: ("unverified" | "verified" | "expired")
117271
114776
  }[]
117272
- /**
117273
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117274
- */
117275
114777
  lockedUntil: (string | null)
117276
- /**
117277
- * When the user last signed in (ISO 8601). Null if they never have.
117278
- */
117279
114778
  lastSignInAt: (string | null)
117280
- /**
117281
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117282
- */
117283
- primaryEmail: (string | null)
117284
- /**
117285
- * Whether the user must set a new password at their next sign-in.
117286
- */
117287
114779
  requiresReset: boolean
117288
- /**
117289
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117290
- */
117291
- publicMetadata: {
117292
- [k: string]: unknown
117293
- }
117294
- /**
117295
- * Metadata the end user may write themselves. Treat it as untrusted.
117296
- */
117297
- unsafeMetadata: {
117298
- [k: string]: unknown
114780
+ publicMetadata: UsersUsersDeleteOutputPublicMetadata
114781
+ unsafeMetadata: UsersUsersDeleteOutputPublicMetadata
114782
+ privateMetadata: UsersUsersDeleteOutputPublicMetadata
114783
+ emailChangeLockedUntil: (string | null)
117299
114784
  }
117300
- /**
117301
- * Metadata for the management plane only. Never reaches the end user or a token.
117302
- */
117303
- privateMetadata: {
114785
+ export interface UsersUsersDeleteOutputPublicMetadata {
117304
114786
  [k: string]: unknown
117305
114787
  }
117306
- /**
117307
- * Id of the primary identifier row. Null when there is no primary identifier.
117308
- */
117309
- primaryIdentifierId: (string | null)
117310
- /**
117311
- * 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.
117312
- */
117313
- emailChangeLockedUntil: (string | null)
117314
- }
117315
114788
 
117316
114789
  export interface UsersUsersExportInput {
117317
114790
  /**
@@ -117339,129 +114812,40 @@ includeDeleted?: boolean
117339
114812
  export interface UsersUsersExportOutput {
117340
114813
  count: number
117341
114814
  users: {
117342
- /**
117343
- * Id of this end user. Pass it to any users_users_* tool.
117344
- */
117345
114815
  id: string
117346
- /**
117347
- * The user's display name. Null when nobody set one.
117348
- */
117349
114816
  name: (string | null)
117350
- /**
117351
- * When the user was banned (ISO 8601). Null while they are not banned.
117352
- */
117353
114817
  bannedAt: (string | null)
117354
- /**
117355
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117356
- */
117357
114818
  erasedAt: (string | null)
117358
- /**
117359
- * URL of the user's avatar. Null when there is none.
117360
- */
117361
114819
  imageUrl: (string | null)
117362
- /**
117363
- * Whether this is a test fixture — excluded from metering and from the default listing.
117364
- */
117365
114820
  testUser: boolean
117366
- /**
117367
- * When the user was created (ISO 8601).
117368
- */
117369
114821
  createdAt: string
117370
- /**
117371
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117372
- */
117373
114822
  deletedAt: (string | null)
117374
- /**
117375
- * Product this user belongs to. Never an input — it comes from the calling identity.
117376
- */
117377
114823
  productId: string
117378
- /**
117379
- * When the user was last changed (ISO 8601).
117380
- */
117381
114824
  updatedAt: string
117382
- /**
117383
- * Whether this user is still on the waitlist and cannot sign in yet.
117384
- */
117385
114825
  waitlisted: boolean
117386
- /**
117387
- * 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".
117388
- */
117389
114826
  identifiers: {
117390
- /**
117391
- * Id of this identifier row.
117392
- */
117393
114827
  id: string
117394
- /**
117395
- * What kind of identifier this is. Today always `email`.
117396
- */
117397
114828
  type: "email"
117398
- /**
117399
- * The address as the user typed it, for display.
117400
- */
117401
114829
  value: string
117402
- /**
117403
- * Whether this is the identifier the user signs in with and is contacted at.
117404
- */
117405
114830
  isPrimary: boolean
117406
- /**
117407
- * When this address was verified (ISO 8601). Null while it never was.
117408
- */
117409
114831
  verifiedAt: (string | null)
117410
- /**
117411
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117412
- */
117413
114832
  valueCanonical: string
117414
- /**
117415
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117416
- */
117417
114833
  verificationStatus: ("unverified" | "verified" | "expired")
117418
114834
  }[]
117419
- /**
117420
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117421
- */
117422
114835
  lockedUntil: (string | null)
117423
- /**
117424
- * When the user last signed in (ISO 8601). Null if they never have.
117425
- */
117426
114836
  lastSignInAt: (string | null)
117427
- /**
117428
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117429
- */
117430
- primaryEmail: (string | null)
117431
- /**
117432
- * Whether the user must set a new password at their next sign-in.
117433
- */
117434
114837
  requiresReset: boolean
117435
- /**
117436
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117437
- */
117438
- publicMetadata: {
117439
- [k: string]: unknown
117440
- }
117441
- /**
117442
- * Metadata the end user may write themselves. Treat it as untrusted.
117443
- */
117444
- unsafeMetadata: {
117445
- [k: string]: unknown
117446
- }
117447
- /**
117448
- * Metadata for the management plane only. Never reaches the end user or a token.
117449
- */
117450
- privateMetadata: {
117451
- [k: string]: unknown
117452
- }
117453
- /**
117454
- * Id of the primary identifier row. Null when there is no primary identifier.
117455
- */
117456
- primaryIdentifierId: (string | null)
117457
- /**
117458
- * 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.
117459
- */
114838
+ publicMetadata: UsersUsersExportOutputPublicMetadata
114839
+ unsafeMetadata: UsersUsersExportOutputPublicMetadata
114840
+ privateMetadata: UsersUsersExportOutputPublicMetadata
117460
114841
  emailChangeLockedUntil: (string | null)
117461
114842
  }[]
117462
114843
  exportedAt: string
117463
114844
  nextCursor: (string | null)
117464
114845
  }
114846
+ export interface UsersUsersExportOutputPublicMetadata {
114847
+ [k: string]: unknown
114848
+ }
117465
114849
 
117466
114850
  export interface UsersUsersGetInput {
117467
114851
  /**
@@ -117471,126 +114855,37 @@ userId: string
117471
114855
  }
117472
114856
 
117473
114857
  export interface UsersUsersGetOutput {
117474
- /**
117475
- * Id of this end user. Pass it to any users_users_* tool.
117476
- */
117477
114858
  id: string
117478
- /**
117479
- * The user's display name. Null when nobody set one.
117480
- */
117481
114859
  name: (string | null)
117482
- /**
117483
- * When the user was banned (ISO 8601). Null while they are not banned.
117484
- */
117485
114860
  bannedAt: (string | null)
117486
- /**
117487
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117488
- */
117489
114861
  erasedAt: (string | null)
117490
- /**
117491
- * URL of the user's avatar. Null when there is none.
117492
- */
117493
114862
  imageUrl: (string | null)
117494
- /**
117495
- * Whether this is a test fixture — excluded from metering and from the default listing.
117496
- */
117497
114863
  testUser: boolean
117498
- /**
117499
- * When the user was created (ISO 8601).
117500
- */
117501
114864
  createdAt: string
117502
- /**
117503
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117504
- */
117505
114865
  deletedAt: (string | null)
117506
- /**
117507
- * Product this user belongs to. Never an input — it comes from the calling identity.
117508
- */
117509
114866
  productId: string
117510
- /**
117511
- * When the user was last changed (ISO 8601).
117512
- */
117513
114867
  updatedAt: string
117514
- /**
117515
- * Whether this user is still on the waitlist and cannot sign in yet.
117516
- */
117517
114868
  waitlisted: boolean
117518
- /**
117519
- * 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".
117520
- */
117521
114869
  identifiers: {
117522
- /**
117523
- * Id of this identifier row.
117524
- */
117525
114870
  id: string
117526
- /**
117527
- * What kind of identifier this is. Today always `email`.
117528
- */
117529
114871
  type: "email"
117530
- /**
117531
- * The address as the user typed it, for display.
117532
- */
117533
114872
  value: string
117534
- /**
117535
- * Whether this is the identifier the user signs in with and is contacted at.
117536
- */
117537
114873
  isPrimary: boolean
117538
- /**
117539
- * When this address was verified (ISO 8601). Null while it never was.
117540
- */
117541
114874
  verifiedAt: (string | null)
117542
- /**
117543
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117544
- */
117545
114875
  valueCanonical: string
117546
- /**
117547
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117548
- */
117549
114876
  verificationStatus: ("unverified" | "verified" | "expired")
117550
114877
  }[]
117551
- /**
117552
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117553
- */
117554
114878
  lockedUntil: (string | null)
117555
- /**
117556
- * When the user last signed in (ISO 8601). Null if they never have.
117557
- */
117558
114879
  lastSignInAt: (string | null)
117559
- /**
117560
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117561
- */
117562
- primaryEmail: (string | null)
117563
- /**
117564
- * Whether the user must set a new password at their next sign-in.
117565
- */
117566
114880
  requiresReset: boolean
117567
- /**
117568
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117569
- */
117570
- publicMetadata: {
117571
- [k: string]: unknown
117572
- }
117573
- /**
117574
- * Metadata the end user may write themselves. Treat it as untrusted.
117575
- */
117576
- unsafeMetadata: {
117577
- [k: string]: unknown
114881
+ publicMetadata: UsersUsersGetOutputPublicMetadata
114882
+ unsafeMetadata: UsersUsersGetOutputPublicMetadata
114883
+ privateMetadata: UsersUsersGetOutputPublicMetadata
114884
+ emailChangeLockedUntil: (string | null)
117578
114885
  }
117579
- /**
117580
- * Metadata for the management plane only. Never reaches the end user or a token.
117581
- */
117582
- privateMetadata: {
114886
+ export interface UsersUsersGetOutputPublicMetadata {
117583
114887
  [k: string]: unknown
117584
114888
  }
117585
- /**
117586
- * Id of the primary identifier row. Null when there is no primary identifier.
117587
- */
117588
- primaryIdentifierId: (string | null)
117589
- /**
117590
- * 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.
117591
- */
117592
- emailChangeLockedUntil: (string | null)
117593
- }
117594
114889
 
117595
114890
  export interface UsersUsersImportInput {
117596
114891
  /**
@@ -117603,42 +114898,15 @@ users: [unknown, ...(unknown)[]]
117603
114898
  }
117604
114899
 
117605
114900
  export interface UsersUsersImportOutput {
117606
- /**
117607
- * How many rows could not be imported at all.
117608
- */
117609
114901
  failed: number
117610
- /**
117611
- * How many users were created.
117612
- */
117613
114902
  created: number
117614
- /**
117615
- * One row per submitted row, in the order you sent them.
117616
- */
117617
114903
  results: {
117618
- /**
117619
- * Zero-based index of the row in the `users` array you sent.
117620
- */
117621
114904
  row: number
117622
- /**
117623
- * Why it was skipped, or what went wrong. Null for a created row.
117624
- */
117625
114905
  reason: (string | null)
117626
- /**
117627
- * What happened to this row.
117628
- */
117629
114906
  status: ("created" | "skipped" | "failed")
117630
- /**
117631
- * The created user's id. Null for skipped and failed rows.
117632
- */
117633
114907
  userId: (string | null)
117634
114908
  }[]
117635
- /**
117636
- * How many rows were passed over — an address already in the directory, typically.
117637
- */
117638
114909
  skipped: number
117639
- /**
117640
- * How many rows you submitted.
117641
- */
117642
114910
  requested: number
117643
114911
  }
117644
114912
 
@@ -117666,21 +114934,9 @@ privateMetadata?: {
117666
114934
  }
117667
114935
 
117668
114936
  export interface UsersUsersInviteOutput {
117669
- /**
117670
- * False when the re-invite cooldown or the mail toolkit refused the send. The invite is still live.
117671
- */
117672
114937
  mailed: boolean
117673
- /**
117674
- * The invited user, created immediately and listed straight away — they simply cannot sign in until they accept.
117675
- */
117676
114938
  userId: string
117677
- /**
117678
- * False when this address had already been invited; the same user is returned.
117679
- */
117680
114939
  created: boolean
117681
- /**
117682
- * When the invite link stops working (ISO 8601).
117683
- */
117684
114940
  expiresAt: string
117685
114941
  }
117686
114942
 
@@ -117716,135 +114972,40 @@ includeWaitlisted?: boolean
117716
114972
  }
117717
114973
 
117718
114974
  export interface UsersUsersListOutput {
117719
- /**
117720
- * The page of users, newest first.
117721
- */
117722
114975
  users: {
117723
- /**
117724
- * Id of this end user. Pass it to any users_users_* tool.
117725
- */
117726
114976
  id: string
117727
- /**
117728
- * The user's display name. Null when nobody set one.
117729
- */
117730
114977
  name: (string | null)
117731
- /**
117732
- * When the user was banned (ISO 8601). Null while they are not banned.
117733
- */
117734
114978
  bannedAt: (string | null)
117735
- /**
117736
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117737
- */
117738
114979
  erasedAt: (string | null)
117739
- /**
117740
- * URL of the user's avatar. Null when there is none.
117741
- */
117742
114980
  imageUrl: (string | null)
117743
- /**
117744
- * Whether this is a test fixture — excluded from metering and from the default listing.
117745
- */
117746
114981
  testUser: boolean
117747
- /**
117748
- * When the user was created (ISO 8601).
117749
- */
117750
114982
  createdAt: string
117751
- /**
117752
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117753
- */
117754
114983
  deletedAt: (string | null)
117755
- /**
117756
- * Product this user belongs to. Never an input — it comes from the calling identity.
117757
- */
117758
114984
  productId: string
117759
- /**
117760
- * When the user was last changed (ISO 8601).
117761
- */
117762
114985
  updatedAt: string
117763
- /**
117764
- * Whether this user is still on the waitlist and cannot sign in yet.
117765
- */
117766
114986
  waitlisted: boolean
117767
- /**
117768
- * 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".
117769
- */
117770
114987
  identifiers: {
117771
- /**
117772
- * Id of this identifier row.
117773
- */
117774
114988
  id: string
117775
- /**
117776
- * What kind of identifier this is. Today always `email`.
117777
- */
117778
114989
  type: "email"
117779
- /**
117780
- * The address as the user typed it, for display.
117781
- */
117782
114990
  value: string
117783
- /**
117784
- * Whether this is the identifier the user signs in with and is contacted at.
117785
- */
117786
114991
  isPrimary: boolean
117787
- /**
117788
- * When this address was verified (ISO 8601). Null while it never was.
117789
- */
117790
114992
  verifiedAt: (string | null)
117791
- /**
117792
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117793
- */
117794
114993
  valueCanonical: string
117795
- /**
117796
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117797
- */
117798
114994
  verificationStatus: ("unverified" | "verified" | "expired")
117799
114995
  }[]
117800
- /**
117801
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117802
- */
117803
114996
  lockedUntil: (string | null)
117804
- /**
117805
- * When the user last signed in (ISO 8601). Null if they never have.
117806
- */
117807
114997
  lastSignInAt: (string | null)
117808
- /**
117809
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117810
- */
117811
- primaryEmail: (string | null)
117812
- /**
117813
- * Whether the user must set a new password at their next sign-in.
117814
- */
117815
114998
  requiresReset: boolean
117816
- /**
117817
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117818
- */
117819
- publicMetadata: {
117820
- [k: string]: unknown
117821
- }
117822
- /**
117823
- * Metadata the end user may write themselves. Treat it as untrusted.
117824
- */
117825
- unsafeMetadata: {
117826
- [k: string]: unknown
117827
- }
117828
- /**
117829
- * Metadata for the management plane only. Never reaches the end user or a token.
117830
- */
117831
- privateMetadata: {
117832
- [k: string]: unknown
117833
- }
117834
- /**
117835
- * Id of the primary identifier row. Null when there is no primary identifier.
117836
- */
117837
- primaryIdentifierId: (string | null)
117838
- /**
117839
- * 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.
117840
- */
114999
+ publicMetadata: UsersUsersListOutputPublicMetadata
115000
+ unsafeMetadata: UsersUsersListOutputPublicMetadata
115001
+ privateMetadata: UsersUsersListOutputPublicMetadata
117841
115002
  emailChangeLockedUntil: (string | null)
117842
115003
  }[]
117843
- /**
117844
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
117845
- */
117846
115004
  nextCursor: (string | null)
117847
115005
  }
115006
+ export interface UsersUsersListOutputPublicMetadata {
115007
+ [k: string]: unknown
115008
+ }
117848
115009
 
117849
115010
  export interface UsersUsersSetPrimaryIdentifierInput {
117850
115011
  /**
@@ -117862,13 +115023,7 @@ userId: string
117862
115023
  }
117863
115024
 
117864
115025
  export interface UsersUsersSetPrimaryIdentifierOutput {
117865
- /**
117866
- * Id of the scheduled change. It appears in the audit rows and in the abort link mailed to the old address.
117867
- */
117868
115026
  requestId: string
117869
- /**
117870
- * When the swap becomes applicable, if nobody aborts it first (ISO 8601). The delay is this product's `emailChange.overrideDelayHours`, 72 by default.
117871
- */
117872
115027
  scheduledFor: string
117873
115028
  }
117874
115029
 
@@ -117880,126 +115035,37 @@ userId: string
117880
115035
  }
117881
115036
 
117882
115037
  export interface UsersUsersUnbanOutput {
117883
- /**
117884
- * Id of this end user. Pass it to any users_users_* tool.
117885
- */
117886
115038
  id: string
117887
- /**
117888
- * The user's display name. Null when nobody set one.
117889
- */
117890
115039
  name: (string | null)
117891
- /**
117892
- * When the user was banned (ISO 8601). Null while they are not banned.
117893
- */
117894
115040
  bannedAt: (string | null)
117895
- /**
117896
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
117897
- */
117898
115041
  erasedAt: (string | null)
117899
- /**
117900
- * URL of the user's avatar. Null when there is none.
117901
- */
117902
115042
  imageUrl: (string | null)
117903
- /**
117904
- * Whether this is a test fixture — excluded from metering and from the default listing.
117905
- */
117906
115043
  testUser: boolean
117907
- /**
117908
- * When the user was created (ISO 8601).
117909
- */
117910
115044
  createdAt: string
117911
- /**
117912
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
117913
- */
117914
115045
  deletedAt: (string | null)
117915
- /**
117916
- * Product this user belongs to. Never an input — it comes from the calling identity.
117917
- */
117918
115046
  productId: string
117919
- /**
117920
- * When the user was last changed (ISO 8601).
117921
- */
117922
115047
  updatedAt: string
117923
- /**
117924
- * Whether this user is still on the waitlist and cannot sign in yet.
117925
- */
117926
115048
  waitlisted: boolean
117927
- /**
117928
- * 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".
117929
- */
117930
115049
  identifiers: {
117931
- /**
117932
- * Id of this identifier row.
117933
- */
117934
115050
  id: string
117935
- /**
117936
- * What kind of identifier this is. Today always `email`.
117937
- */
117938
115051
  type: "email"
117939
- /**
117940
- * The address as the user typed it, for display.
117941
- */
117942
115052
  value: string
117943
- /**
117944
- * Whether this is the identifier the user signs in with and is contacted at.
117945
- */
117946
115053
  isPrimary: boolean
117947
- /**
117948
- * When this address was verified (ISO 8601). Null while it never was.
117949
- */
117950
115054
  verifiedAt: (string | null)
117951
- /**
117952
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
117953
- */
117954
115055
  valueCanonical: string
117955
- /**
117956
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
117957
- */
117958
115056
  verificationStatus: ("unverified" | "verified" | "expired")
117959
115057
  }[]
117960
- /**
117961
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
117962
- */
117963
115058
  lockedUntil: (string | null)
117964
- /**
117965
- * When the user last signed in (ISO 8601). Null if they never have.
117966
- */
117967
115059
  lastSignInAt: (string | null)
117968
- /**
117969
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
117970
- */
117971
- primaryEmail: (string | null)
117972
- /**
117973
- * Whether the user must set a new password at their next sign-in.
117974
- */
117975
115060
  requiresReset: boolean
117976
- /**
117977
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
117978
- */
117979
- publicMetadata: {
117980
- [k: string]: unknown
117981
- }
117982
- /**
117983
- * Metadata the end user may write themselves. Treat it as untrusted.
117984
- */
117985
- unsafeMetadata: {
117986
- [k: string]: unknown
115061
+ publicMetadata: UsersUsersUnbanOutputPublicMetadata
115062
+ unsafeMetadata: UsersUsersUnbanOutputPublicMetadata
115063
+ privateMetadata: UsersUsersUnbanOutputPublicMetadata
115064
+ emailChangeLockedUntil: (string | null)
117987
115065
  }
117988
- /**
117989
- * Metadata for the management plane only. Never reaches the end user or a token.
117990
- */
117991
- privateMetadata: {
115066
+ export interface UsersUsersUnbanOutputPublicMetadata {
117992
115067
  [k: string]: unknown
117993
115068
  }
117994
- /**
117995
- * Id of the primary identifier row. Null when there is no primary identifier.
117996
- */
117997
- primaryIdentifierId: (string | null)
117998
- /**
117999
- * 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.
118000
- */
118001
- emailChangeLockedUntil: (string | null)
118002
- }
118003
115069
 
118004
115070
  export interface UsersUsersUpdateInput {
118005
115071
  /**
@@ -118049,126 +115115,37 @@ export interface UsersUsersUpdateInputPublicMetadata1 {
118049
115115
  }
118050
115116
 
118051
115117
  export interface UsersUsersUpdateOutput {
118052
- /**
118053
- * Id of this end user. Pass it to any users_users_* tool.
118054
- */
118055
115118
  id: string
118056
- /**
118057
- * The user's display name. Null when nobody set one.
118058
- */
118059
115119
  name: (string | null)
118060
- /**
118061
- * When the user was banned (ISO 8601). Null while they are not banned.
118062
- */
118063
115120
  bannedAt: (string | null)
118064
- /**
118065
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
118066
- */
118067
115121
  erasedAt: (string | null)
118068
- /**
118069
- * URL of the user's avatar. Null when there is none.
118070
- */
118071
115122
  imageUrl: (string | null)
118072
- /**
118073
- * Whether this is a test fixture — excluded from metering and from the default listing.
118074
- */
118075
115123
  testUser: boolean
118076
- /**
118077
- * When the user was created (ISO 8601).
118078
- */
118079
115124
  createdAt: string
118080
- /**
118081
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
118082
- */
118083
115125
  deletedAt: (string | null)
118084
- /**
118085
- * Product this user belongs to. Never an input — it comes from the calling identity.
118086
- */
118087
115126
  productId: string
118088
- /**
118089
- * When the user was last changed (ISO 8601).
118090
- */
118091
115127
  updatedAt: string
118092
- /**
118093
- * Whether this user is still on the waitlist and cannot sign in yet.
118094
- */
118095
115128
  waitlisted: boolean
118096
- /**
118097
- * 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".
118098
- */
118099
115129
  identifiers: {
118100
- /**
118101
- * Id of this identifier row.
118102
- */
118103
115130
  id: string
118104
- /**
118105
- * What kind of identifier this is. Today always `email`.
118106
- */
118107
115131
  type: "email"
118108
- /**
118109
- * The address as the user typed it, for display.
118110
- */
118111
115132
  value: string
118112
- /**
118113
- * Whether this is the identifier the user signs in with and is contacted at.
118114
- */
118115
115133
  isPrimary: boolean
118116
- /**
118117
- * When this address was verified (ISO 8601). Null while it never was.
118118
- */
118119
115134
  verifiedAt: (string | null)
118120
- /**
118121
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
118122
- */
118123
115135
  valueCanonical: string
118124
- /**
118125
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
118126
- */
118127
115136
  verificationStatus: ("unverified" | "verified" | "expired")
118128
115137
  }[]
118129
- /**
118130
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
118131
- */
118132
115138
  lockedUntil: (string | null)
118133
- /**
118134
- * When the user last signed in (ISO 8601). Null if they never have.
118135
- */
118136
115139
  lastSignInAt: (string | null)
118137
- /**
118138
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
118139
- */
118140
- primaryEmail: (string | null)
118141
- /**
118142
- * Whether the user must set a new password at their next sign-in.
118143
- */
118144
115140
  requiresReset: boolean
118145
- /**
118146
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
118147
- */
118148
- publicMetadata: {
118149
- [k: string]: unknown
118150
- }
118151
- /**
118152
- * Metadata the end user may write themselves. Treat it as untrusted.
118153
- */
118154
- unsafeMetadata: {
118155
- [k: string]: unknown
115141
+ publicMetadata: UsersUsersUpdateOutputPublicMetadata
115142
+ unsafeMetadata: UsersUsersUpdateOutputPublicMetadata
115143
+ privateMetadata: UsersUsersUpdateOutputPublicMetadata
115144
+ emailChangeLockedUntil: (string | null)
118156
115145
  }
118157
- /**
118158
- * Metadata for the management plane only. Never reaches the end user or a token.
118159
- */
118160
- privateMetadata: {
115146
+ export interface UsersUsersUpdateOutputPublicMetadata {
118161
115147
  [k: string]: unknown
118162
115148
  }
118163
- /**
118164
- * Id of the primary identifier row. Null when there is no primary identifier.
118165
- */
118166
- primaryIdentifierId: (string | null)
118167
- /**
118168
- * 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.
118169
- */
118170
- emailChangeLockedUntil: (string | null)
118171
- }
118172
115149
 
118173
115150
  export interface UsersWaitlistFunnelInput {
118174
115151
 
@@ -118183,64 +115160,6 @@ registered: number
118183
115160
  unconfirmed: number
118184
115161
  }
118185
115162
 
118186
- export interface UsersWaitlistGetInput {
118187
- /**
118188
- * The waitlisted user to read — the `userId` from `users_waitlist_list`.
118189
- */
118190
- userId: string
118191
- }
118192
-
118193
- export interface UsersWaitlistGetOutput {
118194
- /**
118195
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
118196
- */
118197
- status: ("pending" | "invited" | "registered" | "withdrawn")
118198
- /**
118199
- * The waitlisted user. Every users_users_* tool takes this id.
118200
- */
118201
- userId: string
118202
- /**
118203
- * When the entry joined the waitlist (ISO 8601).
118204
- */
118205
- createdAt: string
118206
- /**
118207
- * When the invite was sent (ISO 8601). Null while the entry is pending.
118208
- */
118209
- invitedAt: (string | null)
118210
- /**
118211
- * The email address that signed up.
118212
- */
118213
- identifier: string
118214
- /**
118215
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
118216
- */
118217
- attribution: {
118218
- [k: string]: unknown
118219
- }
118220
- /**
118221
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
118222
- */
118223
- confirmedAt: (string | null)
118224
- /**
118225
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
118226
- */
118227
- withdrawnAt: (string | null)
118228
- /**
118229
- * What was recorded to show this address consented: when, from where, and under which wording.
118230
- */
118231
- consentProof: {
118232
- [k: string]: unknown
118233
- }
118234
- /**
118235
- * When the invitee finished signing up (ISO 8601). Null until they do.
118236
- */
118237
- registeredAt: (string | null)
118238
- /**
118239
- * Id of the live invite token. Null while the entry has not been invited.
118240
- */
118241
- inviteTokenId: (string | null)
118242
- }
118243
-
118244
115163
  export interface UsersWaitlistImportInput {
118245
115164
  /**
118246
115165
  * The legacy signups to import, at most 500 per call — batch client-side beyond that.
@@ -118406,42 +115325,15 @@ unsafeMetadata?: {
118406
115325
  }
118407
115326
 
118408
115327
  export interface UsersWaitlistImportOutput {
118409
- /**
118410
- * How many could not be imported at all.
118411
- */
118412
115328
  failed: number
118413
- /**
118414
- * One row per submitted row, in the order you sent them.
118415
- */
118416
115329
  results: {
118417
- /**
118418
- * Zero-based index of the row in the array you sent.
118419
- */
118420
115330
  row: number
118421
- /**
118422
- * Why it was skipped, or what went wrong. Null for an imported row.
118423
- */
118424
115331
  reason: (string | null)
118425
- /**
118426
- * What happened to this row.
118427
- */
118428
115332
  status: ("imported" | "skipped" | "failed")
118429
- /**
118430
- * The waitlisted user this row created. Null for skipped and failed rows.
118431
- */
118432
115333
  userId: (string | null)
118433
115334
  }[]
118434
- /**
118435
- * How many were already on the list or otherwise passed over.
118436
- */
118437
115335
  skipped: number
118438
- /**
118439
- * How many became waitlist entries.
118440
- */
118441
115336
  imported: number
118442
- /**
118443
- * How many rows you submitted.
118444
- */
118445
115337
  requested: number
118446
115338
  }
118447
115339
 
@@ -118456,30 +115348,12 @@ userIds: [string, ...(string)[]]
118456
115348
  }
118457
115349
 
118458
115350
  export interface UsersWaitlistInviteOutput {
118459
- /**
118460
- * How many of the requested users were invited.
118461
- */
118462
115351
  invited: number
118463
- /**
118464
- * One row per user you asked for, in the order you sent them.
118465
- */
118466
115352
  results: {
118467
- /**
118468
- * Why this user was skipped. Null for an invited row.
118469
- */
118470
115353
  reason: (("suppressed" | "not_found" | "already_registered") | null)
118471
- /**
118472
- * Whether this user was invited or passed over.
118473
- */
118474
115354
  status: ("invited" | "skipped")
118475
- /**
118476
- * The user this row is about.
118477
- */
118478
115355
  userId: string
118479
115356
  }[]
118480
- /**
118481
- * How many were passed over — see each row's `reason`.
118482
- */
118483
115357
  skipped: number
118484
115358
  }
118485
115359
 
@@ -118503,62 +115377,23 @@ confirmed?: boolean
118503
115377
  }
118504
115378
 
118505
115379
  export interface UsersWaitlistListOutput {
118506
- /**
118507
- * The page of waitlist entries, newest first.
118508
- */
118509
115380
  entries: {
118510
- /**
118511
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
118512
- */
118513
115381
  status: ("pending" | "invited" | "registered" | "withdrawn")
118514
- /**
118515
- * The waitlisted user. Every users_users_* tool takes this id.
118516
- */
118517
115382
  userId: string
118518
- /**
118519
- * When the entry joined the waitlist (ISO 8601).
118520
- */
118521
115383
  createdAt: string
118522
- /**
118523
- * When the invite was sent (ISO 8601). Null while the entry is pending.
118524
- */
118525
115384
  invitedAt: (string | null)
118526
- /**
118527
- * The email address that signed up.
118528
- */
118529
115385
  identifier: string
118530
- /**
118531
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
118532
- */
118533
115386
  attribution: {
118534
115387
  [k: string]: unknown
118535
115388
  }
118536
- /**
118537
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
118538
- */
118539
115389
  confirmedAt: (string | null)
118540
- /**
118541
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
118542
- */
118543
115390
  withdrawnAt: (string | null)
118544
- /**
118545
- * What was recorded to show this address consented: when, from where, and under which wording.
118546
- */
118547
115391
  consentProof: {
118548
115392
  [k: string]: unknown
118549
115393
  }
118550
- /**
118551
- * When the invitee finished signing up (ISO 8601). Null until they do.
118552
- */
118553
115394
  registeredAt: (string | null)
118554
- /**
118555
- * Id of the live invite token. Null while the entry has not been invited.
118556
- */
118557
115395
  inviteTokenId: (string | null)
118558
115396
  }[]
118559
- /**
118560
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
118561
- */
118562
115397
  nextCursor: (string | null)
118563
115398
  }
118564
115399