@codeqr/ts 0.24.1 → 0.25.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.
Files changed (129) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +1 -1
  3. package/README.md +28 -28
  4. package/client.d.mts +10 -10
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +10 -10
  7. package/client.d.ts.map +1 -1
  8. package/client.js +38 -38
  9. package/client.mjs +36 -36
  10. package/core/api-promise.d.mts +2 -2
  11. package/core/api-promise.d.ts +2 -2
  12. package/core/error.d.mts +2 -2
  13. package/core/error.d.ts +2 -2
  14. package/core/error.js +4 -4
  15. package/core/error.mjs +2 -2
  16. package/core/resource.d.mts +3 -3
  17. package/core/resource.d.ts +3 -3
  18. package/index.d.mts +3 -3
  19. package/index.d.ts +3 -3
  20. package/index.js +4 -4
  21. package/index.mjs +3 -3
  22. package/internal/parse.d.mts +2 -2
  23. package/internal/parse.d.ts +2 -2
  24. package/internal/shims.js +1 -1
  25. package/internal/shims.mjs +1 -1
  26. package/internal/uploads.d.mts +4 -4
  27. package/internal/uploads.d.ts +4 -4
  28. package/internal/utils/base64.js +2 -2
  29. package/internal/utils/base64.mjs +3 -3
  30. package/internal/utils/log.d.mts +3 -3
  31. package/internal/utils/log.d.ts +3 -3
  32. package/internal/utils/path.js +1 -1
  33. package/internal/utils/path.mjs +2 -2
  34. package/internal/utils/values.js +5 -5
  35. package/internal/utils/values.mjs +6 -6
  36. package/package.json +3 -3
  37. package/resources/analytics.d.mts +38 -5
  38. package/resources/analytics.d.mts.map +1 -1
  39. package/resources/analytics.d.ts +38 -5
  40. package/resources/analytics.d.ts.map +1 -1
  41. package/resources/domains.d.mts +26 -26
  42. package/resources/domains.d.mts.map +1 -1
  43. package/resources/domains.d.ts +26 -26
  44. package/resources/domains.d.ts.map +1 -1
  45. package/resources/domains.js +8 -8
  46. package/resources/domains.js.map +1 -1
  47. package/resources/domains.mjs +8 -8
  48. package/resources/domains.mjs.map +1 -1
  49. package/resources/events.d.mts +29 -72
  50. package/resources/events.d.mts.map +1 -1
  51. package/resources/events.d.ts +29 -72
  52. package/resources/events.d.ts.map +1 -1
  53. package/resources/index.d.mts +4 -4
  54. package/resources/index.d.mts.map +1 -1
  55. package/resources/index.d.ts +4 -4
  56. package/resources/index.d.ts.map +1 -1
  57. package/resources/links/bulk.d.mts +14 -5
  58. package/resources/links/bulk.d.mts.map +1 -1
  59. package/resources/links/bulk.d.ts +14 -5
  60. package/resources/links/bulk.d.ts.map +1 -1
  61. package/resources/links/index.d.mts +1 -1
  62. package/resources/links/index.d.mts.map +1 -1
  63. package/resources/links/index.d.ts +1 -1
  64. package/resources/links/index.d.ts.map +1 -1
  65. package/resources/links/links.d.mts +263 -237
  66. package/resources/links/links.d.mts.map +1 -1
  67. package/resources/links/links.d.ts +263 -237
  68. package/resources/links/links.d.ts.map +1 -1
  69. package/resources/links/links.js +21 -21
  70. package/resources/links/links.js.map +1 -1
  71. package/resources/links/links.mjs +21 -21
  72. package/resources/links/links.mjs.map +1 -1
  73. package/resources/qrcodes/bulk.d.mts +84 -17
  74. package/resources/qrcodes/bulk.d.mts.map +1 -1
  75. package/resources/qrcodes/bulk.d.ts +84 -17
  76. package/resources/qrcodes/bulk.d.ts.map +1 -1
  77. package/resources/qrcodes/index.d.mts +1 -1
  78. package/resources/qrcodes/index.d.mts.map +1 -1
  79. package/resources/qrcodes/index.d.ts +1 -1
  80. package/resources/qrcodes/index.d.ts.map +1 -1
  81. package/resources/qrcodes/qrcodes.d.mts +409 -223
  82. package/resources/qrcodes/qrcodes.d.mts.map +1 -1
  83. package/resources/qrcodes/qrcodes.d.ts +409 -223
  84. package/resources/qrcodes/qrcodes.d.ts.map +1 -1
  85. package/resources/qrcodes/qrcodes.js +11 -11
  86. package/resources/qrcodes/qrcodes.js.map +1 -1
  87. package/resources/qrcodes/qrcodes.mjs +11 -11
  88. package/resources/qrcodes/qrcodes.mjs.map +1 -1
  89. package/resources/tags.d.mts +12 -12
  90. package/resources/tags.d.mts.map +1 -1
  91. package/resources/tags.d.ts +12 -12
  92. package/resources/tags.d.ts.map +1 -1
  93. package/resources/tags.js +6 -6
  94. package/resources/tags.js.map +1 -1
  95. package/resources/tags.mjs +6 -6
  96. package/resources/tags.mjs.map +1 -1
  97. package/resources/track.d.mts +12 -0
  98. package/resources/track.d.mts.map +1 -1
  99. package/resources/track.d.ts +12 -0
  100. package/resources/track.d.ts.map +1 -1
  101. package/src/client.ts +21 -21
  102. package/src/core/api-promise.ts +4 -4
  103. package/src/core/error.ts +2 -2
  104. package/src/core/resource.ts +3 -3
  105. package/src/index.ts +3 -3
  106. package/src/internal/parse.ts +2 -2
  107. package/src/internal/shims.ts +1 -1
  108. package/src/internal/uploads.ts +5 -5
  109. package/src/internal/utils/base64.ts +3 -3
  110. package/src/internal/utils/log.ts +3 -3
  111. package/src/internal/utils/path.ts +2 -2
  112. package/src/internal/utils/values.ts +6 -6
  113. package/src/resources/analytics.ts +45 -5
  114. package/src/resources/domains.ts +37 -37
  115. package/src/resources/events.ts +48 -82
  116. package/src/resources/index.ts +4 -4
  117. package/src/resources/links/bulk.ts +23 -6
  118. package/src/resources/links/index.ts +1 -1
  119. package/src/resources/links/links.ts +328 -257
  120. package/src/resources/qrcodes/bulk.ts +103 -17
  121. package/src/resources/qrcodes/index.ts +1 -1
  122. package/src/resources/qrcodes/qrcodes.ts +629 -368
  123. package/src/resources/tags.ts +16 -16
  124. package/src/resources/track.ts +14 -0
  125. package/src/version.ts +1 -1
  126. package/version.d.mts +1 -1
  127. package/version.d.ts +1 -1
  128. package/version.js +1 -1
  129. package/version.mjs +1 -1
@@ -23,21 +23,6 @@ export class Qrcodes extends APIResource {
23
23
  return this._client.post('/qrcodes', { body, ...options });
24
24
  }
25
25
 
26
- /**
27
- * Retrieve a paginated list of QR Codes for the authenticated workspace.
28
- *
29
- * @example
30
- * ```ts
31
- * const qrCodes = await client.qrcodes.list();
32
- * ```
33
- */
34
- list(
35
- query: QrcodeListParams | null | undefined = {},
36
- options?: RequestOptions,
37
- ): APIPromise<QrcodeListResponse> {
38
- return this._client.get('/qrcodes', { query, ...options });
39
- }
40
-
41
26
  /**
42
27
  * Retrieve the info for a QR Code.
43
28
  *
@@ -71,6 +56,21 @@ export class Qrcodes extends APIResource {
71
56
  return this._client.put(path`/qrcodes/${qrcodeID}`, { body, ...options });
72
57
  }
73
58
 
59
+ /**
60
+ * Retrieve a paginated list of QR Codes for the authenticated workspace.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * const qrCodes = await client.qrcodes.list();
65
+ * ```
66
+ */
67
+ list(
68
+ query: QrcodeListParams | null | undefined = {},
69
+ options?: RequestOptions,
70
+ ): APIPromise<QrcodeListResponse> {
71
+ return this._client.get('/qrcodes', { query, ...options });
72
+ }
73
+
74
74
  /**
75
75
  * Delete a QR Code for the authenticated workspace.
76
76
  *
@@ -96,7 +96,8 @@ export interface QrCode {
96
96
  android: string | null;
97
97
 
98
98
  /**
99
- * If the QR code is archived.
99
+ * If the QR code is archived. Archiving hides it from the default dashboard
100
+ * listing; the code keeps redirecting and keeps counting scans.
100
101
  */
101
102
  archived: boolean;
102
103
 
@@ -247,15 +248,10 @@ export interface QrCode {
247
248
  level: string;
248
249
 
249
250
  /**
250
- * The logo of the QR code.
251
+ * @deprecated [DEPRECATED (use `src` instead)]: Not read by any renderer.
251
252
  */
252
253
  logo: string | null;
253
254
 
254
- /**
255
- * The notification token of the QR code.
256
- */
257
- notificationToken: string | null;
258
-
259
255
  /**
260
256
  * The password required to access the destination URL of the QR code.
261
257
  */
@@ -392,9 +388,9 @@ export interface QrCode {
392
388
  url: string | null;
393
389
 
394
390
  /**
395
- * For dynamic QR codes with phone, email, or sms types: if true (default), shows
396
- * an action page with buttons. If false, redirects directly to tel:/mailto:/sms:
397
- * URI.
391
+ * Kept for compatibility. A dynamic phone, email or SMS code is always served the
392
+ * display page, whose buttons open the dialler, the mail client or the SMS app;
393
+ * setting this to false changes nothing about what a scan gets.
398
394
  */
399
395
  useDisplayPage: boolean;
400
396
 
@@ -433,6 +429,14 @@ export interface QrCode {
433
429
  */
434
430
  vcard: { [key: string]: string } | null;
435
431
 
432
+ /**
433
+ * The customizations of the wallet passes saved from this QR code (name, logo and
434
+ * the text under the QR code), or `null` when there are none. Applied only on the
435
+ * Business plan and above, outside a trial; otherwise the passes use the workspace
436
+ * branding.
437
+ */
438
+ walletPass: QrCode.WalletPass | null;
439
+
436
440
  /**
437
441
  * The WhatsApp click-to-chat info: E.164 number (digits only) and optional
438
442
  * prefilled message.
@@ -470,13 +474,59 @@ export interface QrCode {
470
474
 
471
475
  export namespace QrCode {
472
476
  export interface Rule {
473
- attribute: 'device' | 'country' | 'utm_source' | 'utm_medium' | 'utm_campaign' | 'referrer' | 'language';
477
+ attribute?:
478
+ | 'device'
479
+ | 'country'
480
+ | 'utm_source'
481
+ | 'utm_medium'
482
+ | 'utm_campaign'
483
+ | 'referrer'
484
+ | 'language'
485
+ | 'city'
486
+ | 'region'
487
+ | 'continent'
488
+ | 'utm_term'
489
+ | 'utm_content';
490
+
491
+ operator?: 'equals' | 'not_equals';
492
+
493
+ split?: Array<Rule.Split>;
494
+
495
+ url?: string;
496
+
497
+ value?: string;
498
+ }
499
+
500
+ export namespace Rule {
501
+ export interface Split {
502
+ url: string;
503
+
504
+ weight: number;
505
+ }
506
+ }
474
507
 
475
- operator: 'equals' | 'not_equals';
508
+ /**
509
+ * The customizations of the wallet passes saved from this QR code (name, logo and
510
+ * the text under the QR code), or `null` when there are none. Applied only on the
511
+ * Business plan and above, outside a trial; otherwise the passes use the workspace
512
+ * branding.
513
+ */
514
+ export interface WalletPass {
515
+ /**
516
+ * The text shown under the QR code on the pass.
517
+ */
518
+ barcodeText?: string | null;
476
519
 
477
- url: string;
520
+ /**
521
+ * The URL of the logo shown on the pass. Always an image stored by CodeQR: a logo
522
+ * sent as an external URL is returned as the URL of its copy.
523
+ */
524
+ logo?: string | null;
478
525
 
479
- value: string;
526
+ /**
527
+ * The name shown at the top of the pass.
528
+ */
529
+ name?: string | null;
480
530
  }
481
531
 
482
532
  /**
@@ -540,7 +590,8 @@ export interface QrcodeCreateParams {
540
590
  android?: string | null;
541
591
 
542
592
  /**
543
- * If the QR code is archived.
593
+ * If the QR code is archived. Archiving hides it from the default dashboard
594
+ * listing; the code keeps redirecting and keeps counting scans.
544
595
  */
545
596
  archived?: boolean;
546
597
 
@@ -555,15 +606,10 @@ export interface QrcodeCreateParams {
555
606
  */
556
607
  comments?: string | null;
557
608
 
558
- /**
559
- * The static content of the QR code.
560
- */
561
- contentStatic?: string | null;
562
-
563
609
  /**
564
610
  * The cryptocurrency information of the QR code.
565
611
  */
566
- crypto?: { [key: string]: string } | null;
612
+ crypto?: QrcodeCreateParams.Crypto | null;
567
613
 
568
614
  /**
569
615
  * The description of the QR code generated via `api.codeqr.io/metatags`. Will be
@@ -718,7 +764,8 @@ export interface QrcodeCreateParams {
718
764
  level?: string;
719
765
 
720
766
  /**
721
- * The logo of the QR code.
767
+ * @deprecated [DEPRECATED (use `src` instead)]: Not read by any renderer. Set
768
+ * `src` to an image uploaded via `POST /qrcodes/logo`.
722
769
  */
723
770
  logo?: string | null;
724
771
 
@@ -747,6 +794,11 @@ export interface QrcodeCreateParams {
747
794
  */
748
795
  phone?: string | null;
749
796
 
797
+ /**
798
+ * The Pix information of the QR code (key, name, city, amount, description).
799
+ */
800
+ pix?: unknown;
801
+
750
802
  /**
751
803
  * The prefix for the randomly generated key. If provided, the key will be prefixed
752
804
  * with this value.
@@ -820,7 +872,8 @@ export interface QrcodeCreateParams {
820
872
  tagIds?: string | Array<string>;
821
873
 
822
874
  /**
823
- * The unique name of the tags assigned to the QR code (case insensitive).
875
+ * The unique name of the tags assigned to the QR code (case insensitive). Ignored
876
+ * when `tagIds` is also present.
824
877
  */
825
878
  tagNames?: string | Array<string>;
826
879
 
@@ -858,9 +911,9 @@ export interface QrcodeCreateParams {
858
911
  useAsTemplate?: boolean;
859
912
 
860
913
  /**
861
- * For dynamic QR codes with phone, email, or sms types: if true (default), shows
862
- * an action page with buttons. If false, redirects directly to tel:/mailto:/sms:
863
- * URI.
914
+ * Kept for compatibility. A dynamic phone, email or SMS code is always served the
915
+ * display page, whose buttons open the dialler, the mail client or the SMS app;
916
+ * setting this to false changes nothing about what a scan gets.
864
917
  */
865
918
  useDisplayPage?: boolean;
866
919
 
@@ -869,6 +922,19 @@ export interface QrcodeCreateParams {
869
922
  */
870
923
  vcard?: { [key: string]: string } | null;
871
924
 
925
+ /**
926
+ * Customizes the Google Wallet and Apple Wallet passes saved from this QR code.
927
+ * `name` and `logo` replace the workspace name and logo; left out (or `null`), the
928
+ * pass shows the workspace value. `barcodeText` sets the text under the QR code.
929
+ * On update: omit `walletPass` to keep the stored value, send `null` to clear it,
930
+ * or send an object to replace the stored one as a whole — fields missing from the
931
+ * object are cleared, not merged. Available on the Business plan and above,
932
+ * outside a trial: elsewhere a new value is refused with `403 forbidden` (`null`
933
+ * is always accepted) and a stored value is ignored, so the passes show the
934
+ * workspace name and logo.
935
+ */
936
+ walletPass?: QrcodeCreateParams.WalletPass | null;
937
+
872
938
  /**
873
939
  * An array of webhook IDs to trigger when the link is clicked. These webhooks will
874
940
  * receive click event data.
@@ -894,6 +960,27 @@ export interface QrcodeCreateParams {
894
960
  }
895
961
 
896
962
  export namespace QrcodeCreateParams {
963
+ /**
964
+ * The cryptocurrency information of the QR code.
965
+ */
966
+ export interface Crypto {
967
+ /**
968
+ * The wallet address, as the display page reads it.
969
+ */
970
+ address?: string;
971
+
972
+ amount?: string;
973
+
974
+ cryptocurrency?: 'bitcoin' | 'bitcoincash' | 'ethereum' | 'litecoin' | 'dash' | 'dogecoin';
975
+
976
+ /**
977
+ * The wallet address.
978
+ */
979
+ email?: string;
980
+
981
+ message?: string;
982
+ }
983
+
897
984
  /**
898
985
  * Typographic styles applied to the frame label text. Every key is enum-gated —
899
986
  * unknown keys or out-of-enum values are rejected to prevent SVG attribute
@@ -1435,13 +1522,69 @@ export namespace QrcodeCreateParams {
1435
1522
  }
1436
1523
 
1437
1524
  export interface Rule {
1438
- attribute: 'device' | 'country' | 'utm_source' | 'utm_medium' | 'utm_campaign' | 'referrer' | 'language';
1525
+ attribute?:
1526
+ | 'device'
1527
+ | 'country'
1528
+ | 'utm_source'
1529
+ | 'utm_medium'
1530
+ | 'utm_campaign'
1531
+ | 'referrer'
1532
+ | 'language'
1533
+ | 'city'
1534
+ | 'region'
1535
+ | 'continent'
1536
+ | 'utm_term'
1537
+ | 'utm_content';
1538
+
1539
+ operator?: 'equals' | 'not_equals';
1540
+
1541
+ split?: Array<Rule.Split>;
1542
+
1543
+ url?: string;
1544
+
1545
+ value?: string;
1546
+ }
1547
+
1548
+ export namespace Rule {
1549
+ export interface Split {
1550
+ url: string;
1551
+
1552
+ weight: number;
1553
+ }
1554
+ }
1439
1555
 
1440
- operator: 'equals' | 'not_equals';
1556
+ /**
1557
+ * Customizes the Google Wallet and Apple Wallet passes saved from this QR code.
1558
+ * `name` and `logo` replace the workspace name and logo; left out (or `null`), the
1559
+ * pass shows the workspace value. `barcodeText` sets the text under the QR code.
1560
+ * On update: omit `walletPass` to keep the stored value, send `null` to clear it,
1561
+ * or send an object to replace the stored one as a whole — fields missing from the
1562
+ * object are cleared, not merged. Available on the Business plan and above,
1563
+ * outside a trial: elsewhere a new value is refused with `403 forbidden` (`null`
1564
+ * is always accepted) and a stored value is ignored, so the passes show the
1565
+ * workspace name and logo.
1566
+ */
1567
+ export interface WalletPass {
1568
+ /**
1569
+ * The text shown under the QR code on the pass, such as the member's name or card
1570
+ * number. The QR code's title is never shown there. Trimmed; 1 to 40 characters.
1571
+ */
1572
+ barcodeText?: string | null;
1441
1573
 
1442
- url: string;
1574
+ /**
1575
+ * The logo shown on the pass, in place of the workspace logo. Either the URL of an
1576
+ * image uploaded via `POST /qrcodes/logo`, or any https URL serving a PNG, JPEG or
1577
+ * WebP image of up to 2 MB without a redirect. An external image is copied to
1578
+ * CodeQR storage when the QR code is written, and the response returns the URL of
1579
+ * the copy, not the URL sent.
1580
+ */
1581
+ logo?: string | null;
1443
1582
 
1444
- value: string;
1583
+ /**
1584
+ * The name shown at the top of the pass, in place of the workspace name. Trimmed;
1585
+ * 1 to 64 characters.
1586
+ */
1587
+ name?: string | null;
1445
1588
  }
1446
1589
 
1447
1590
  /**
@@ -1455,410 +1598,188 @@ export namespace QrcodeCreateParams {
1455
1598
  }
1456
1599
  }
1457
1600
 
1458
- export interface QrcodeListParams {
1601
+ export interface QrcodeRetrieveParams {
1459
1602
  /**
1460
- * The comments to filter by.
1603
+ * The domain of the QR code to be retrieved. For example, for
1604
+ * `codeqr.link/github`, the domain is `codeqr.link`.
1461
1605
  */
1462
- comments?: string;
1606
+ domain: string;
1463
1607
 
1464
1608
  /**
1465
- * Filter QR codes created after this date
1609
+ * The key of the QR code to be retrieved. For example, for `codeqr.link/github`,
1610
+ * the key is `github`.
1466
1611
  */
1467
- createdAfter?: string;
1612
+ key: string;
1468
1613
 
1469
1614
  /**
1470
- * Filter QR codes created before this date
1615
+ * The slug of the project to which the QR code belongs. For example, for
1616
+ * `app.codeqr.io/acme`, the projectSlug is `acme`.
1471
1617
  */
1472
- createdBefore?: string;
1618
+ projectSlug: string;
1473
1619
 
1474
1620
  /**
1475
- * The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR
1476
- * codes of the project will be returned.
1621
+ * This is the ID of the QR code in your database. It must be prefixed with `ext_`
1622
+ * when passed as a query parameter.
1477
1623
  */
1478
- domain?: string;
1624
+ externalId?: string;
1479
1625
 
1480
1626
  /**
1481
- * Filter QR codes expiring after this date
1627
+ * The unique ID of the QR code.
1482
1628
  */
1483
- expiresAfter?: string;
1629
+ qrCodeId?: string;
1630
+ }
1484
1631
 
1632
+ export interface QrcodeUpdateParams {
1485
1633
  /**
1486
- * The date and time the QR code will expire in ISO-8601 format. Must be in the
1487
- * future.
1634
+ * The destination URL for Android for the QR code for device targeting Android.
1488
1635
  */
1489
- expiresAt?: string | null;
1636
+ android?: string | null;
1490
1637
 
1491
1638
  /**
1492
- * Filter QR codes expiring before this date
1639
+ * If the QR code is archived. Archiving hides it from the default dashboard
1640
+ * listing; the code keeps redirecting and keeps counting scans.
1493
1641
  */
1494
- expiresBefore?: string;
1642
+ archived?: boolean;
1495
1643
 
1496
1644
  /**
1497
- * The folder ID to filter the QR codes by.
1645
+ * The background color of the QR code (hex or CSS keyword). Invalid values are
1646
+ * coerced to default.
1498
1647
  */
1499
- folderId?: string;
1648
+ bgColor?: string;
1500
1649
 
1501
1650
  /**
1502
- * Filter by QR code format - static or dynamic
1651
+ * The comments for the QR code.
1503
1652
  */
1504
- format?: 'static' | 'dynamic';
1653
+ comments?: string | null;
1505
1654
 
1506
1655
  /**
1507
- * Filter QR codes with/without comments
1656
+ * The cryptocurrency information of the QR code.
1508
1657
  */
1509
- hasComments?: boolean;
1658
+ crypto?: QrcodeUpdateParams.Crypto | null;
1510
1659
 
1511
1660
  /**
1512
- * Filter QR codes with/without custom social media cards
1661
+ * The description of the QR code generated via `api.codeqr.io/metatags`. Will be
1662
+ * used for custom link preview if `proxy` is true.
1513
1663
  */
1514
- hasCustomSocial?: boolean;
1664
+ description?: string | null;
1515
1665
 
1516
1666
  /**
1517
- * Filter QR codes with/without device targeting
1667
+ * Allow search engines to index your QR code. The default is `false` if not
1668
+ * provided. Learn more: https://codeqr.link/noindex
1518
1669
  */
1519
- hasDevice?: boolean;
1670
+ doIndex?: boolean;
1520
1671
 
1521
1672
  /**
1522
- * Filter QR codes with/without expiration date
1673
+ * The domain of the QR code. If not provided, the main domain of the project will
1674
+ * be used (or `codeqr.link` if the project does not have domains).
1523
1675
  */
1524
- hasExpiration?: boolean;
1676
+ domain?: string;
1525
1677
 
1526
1678
  /**
1527
- * Filter QR codes with/without geo-targeting
1679
+ * The email information of the QR code.
1528
1680
  */
1529
- hasGeo?: boolean;
1681
+ email?: { [key: string]: string } | null;
1530
1682
 
1531
1683
  /**
1532
- * Filter QR codes with/without password protection
1684
+ * If the QR code should have excavated areas.
1533
1685
  */
1534
- hasPassword?: boolean;
1686
+ excavate?: boolean;
1535
1687
 
1536
1688
  /**
1537
- * Filter QR codes with/without tags
1689
+ * The URL to redirect when the QR code expires.
1538
1690
  */
1539
- hasTags?: boolean;
1691
+ expiredUrl?: string | null;
1540
1692
 
1541
1693
  /**
1542
- * Filter QR codes with/without UTM parameters
1694
+ * The date and time the QR code will expire in ISO-8601 format. Must be in the
1695
+ * future.
1543
1696
  */
1544
- hasUTM?: boolean;
1697
+ expiresAt?: string | null;
1545
1698
 
1546
1699
  /**
1547
- * The page number for pagination.
1700
+ * This is the ID of the QR code in your database. If defined, it can be used to
1701
+ * identify the QR code in the future. It must be prefixed with `ext_` when passed
1702
+ * as a query parameter.
1548
1703
  */
1549
- page?: number;
1704
+ externalId?: string | null;
1550
1705
 
1551
1706
  /**
1552
- * The number of items per page.
1707
+ * The FaceTime information of the QR code.
1553
1708
  */
1554
- pageSize?: number;
1709
+ facetime?: { [key: string]: string } | null;
1555
1710
 
1556
1711
  /**
1557
- * The password to filter by.
1712
+ * The foreground color of the QR code (hex or CSS keyword). Invalid values are
1713
+ * coerced to default.
1558
1714
  */
1559
- password?: string;
1715
+ fgColor?: string;
1560
1716
 
1561
1717
  /**
1562
- * The slug of the project to which the QR code belongs. For example, for
1563
- * `app.codeqr.io/acme`, the projectSlug is `acme`.
1718
+ * If the QR code is filled.
1564
1719
  */
1565
- projectSlug?: string;
1720
+ filled?: boolean;
1566
1721
 
1567
1722
  /**
1568
- * Maximum number of scans
1723
+ * If the QR code is flexible.
1569
1724
  */
1570
- scansMax?: number;
1725
+ flexible?: boolean;
1571
1726
 
1572
1727
  /**
1573
- * Minimum number of scans
1728
+ * The unique ID of the folder assigned to the QR code. Omit or set to null for no
1729
+ * folder.
1574
1730
  */
1575
- scansMin?: number;
1731
+ folderId?: string | null;
1576
1732
 
1577
1733
  /**
1578
- * The search term to filter the QR codes. The search term will be matched against
1579
- * the QR code slug, title, and the destination URL.
1734
+ * The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5,
1735
+ * frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at
1736
+ * render.
1580
1737
  */
1581
- search?: string;
1738
+ frame?: string;
1582
1739
 
1583
1740
  /**
1584
- * If should include archived QR codes in the response. The default is `false` if
1585
- * not provided.
1741
+ * The color of the frame (hex or CSS keyword). Invalid values are coerced to
1742
+ * default.
1586
1743
  */
1587
- showArchived?: boolean;
1744
+ frameColor?: string;
1588
1745
 
1589
1746
  /**
1590
- * The field to order the QR codes. The default is `createdAt`, and the order of
1591
- * sorting is always descending.
1747
+ * Label text rendered inside the frame (e.g. "SCAN ME", a product SKU). Maximum
1748
+ * 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar
1749
+ * grows vertically to fit.
1592
1750
  */
1593
- sort?: 'createdAt' | 'scans' | 'lastClicked';
1751
+ frameText?: string;
1594
1752
 
1595
1753
  /**
1596
- * @deprecated [DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned
1597
- * to the QR code.
1754
+ * Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS
1755
+ * keyword from the allowlist). When omitted, a contrasting color is derived
1756
+ * automatically from `frameColor`.
1598
1757
  */
1599
- tagId?: string;
1758
+ frameTextColor?: string | null;
1600
1759
 
1601
1760
  /**
1602
- * The IDs of the tags to filter the QR codes.
1761
+ * Typographic styles applied to the frame label text. Every key is enum-gated —
1762
+ * unknown keys or out-of-enum values are rejected to prevent SVG attribute
1763
+ * injection. All fields are optional; omitted keys fall back to the default
1764
+ * (normal weight, normal style, sans family, medium size).
1603
1765
  */
1604
- tagIds?: string | Array<string>;
1766
+ frameTextStyles?: QrcodeUpdateParams.FrameTextStyles | null;
1605
1767
 
1606
1768
  /**
1607
- * The unique name of the tags assigned to the QR code (case insensitive).
1769
+ * Geographic segmentation information for the QR code in the JSON format
1770
+ * `{[COUNTRY]: https://example.com }`.
1608
1771
  */
1609
- tagNames?: string | Array<string>;
1772
+ geo?: QrcodeUpdateParams.Geo | null;
1610
1773
 
1611
1774
  /**
1612
- * If should include QR codes with conversion tracking enabled. The default is
1613
- * `false` if not provided.
1775
+ * Logo height in pixels. When omitted, a proportional size is used based on the QR
1776
+ * code size (about 10–20% depending on size).
1614
1777
  */
1615
- trackConversion?: boolean;
1778
+ height?: number;
1616
1779
 
1617
1780
  /**
1618
- * Filter by QR code type
1619
- */
1620
- type?:
1621
- | 'url'
1622
- | 'text'
1623
- | 'email'
1624
- | 'wifi'
1625
- | 'phone'
1626
- | 'vcard'
1627
- | 'crypto'
1628
- | 'sms'
1629
- | 'facetime'
1630
- | 'geo'
1631
- | 'latlog'
1632
- | 'pix'
1633
- | 'whatsapp';
1634
-
1635
- /**
1636
- * Filter QR codes marked as templates.
1637
- */
1638
- useAsTemplate?: boolean;
1639
-
1640
- /**
1641
- * The ID of the user to filter by.
1642
- */
1643
- userId?: string;
1644
-
1645
- /**
1646
- * Filter by UTM campaign value
1647
- */
1648
- utm_campaign?: string;
1649
-
1650
- /**
1651
- * Filter by UTM content value
1652
- */
1653
- utm_content?: string;
1654
-
1655
- /**
1656
- * Filter by UTM medium value
1657
- */
1658
- utm_medium?: string;
1659
-
1660
- /**
1661
- * Filter by UTM source value
1662
- */
1663
- utm_source?: string;
1664
-
1665
- /**
1666
- * Filter by UTM term value
1667
- */
1668
- utm_term?: string;
1669
-
1670
- /**
1671
- * If should include tags in the response. The default is `false` if not provided.
1672
- */
1673
- withTags?: boolean;
1674
- }
1675
-
1676
- export interface QrcodeRetrieveParams {
1677
- /**
1678
- * The domain of the QR code to be retrieved. For example, for
1679
- * `codeqr.link/github`, the domain is `codeqr.link`.
1680
- */
1681
- domain: string;
1682
-
1683
- /**
1684
- * The key of the QR code to be retrieved. For example, for `codeqr.link/github`,
1685
- * the key is `github`.
1686
- */
1687
- key: string;
1688
-
1689
- /**
1690
- * The slug of the project to which the QR code belongs. For example, for
1691
- * `app.codeqr.io/acme`, the projectSlug is `acme`.
1692
- */
1693
- projectSlug: string;
1694
-
1695
- /**
1696
- * This is the ID of the QR code in your database. It must be prefixed with `ext_`
1697
- * when passed as a query parameter.
1698
- */
1699
- externalId?: string;
1700
-
1701
- /**
1702
- * The unique ID of the QR code.
1703
- */
1704
- qrCodeId?: string;
1705
- }
1706
-
1707
- export interface QrcodeUpdateParams {
1708
- /**
1709
- * The destination URL for Android for the QR code for device targeting Android.
1710
- */
1711
- android?: string | null;
1712
-
1713
- /**
1714
- * If the QR code is archived.
1715
- */
1716
- archived?: boolean;
1717
-
1718
- /**
1719
- * The background color of the QR code (hex or CSS keyword). Invalid values are
1720
- * coerced to default.
1721
- */
1722
- bgColor?: string;
1723
-
1724
- /**
1725
- * The comments for the QR code.
1726
- */
1727
- comments?: string | null;
1728
-
1729
- /**
1730
- * The static content of the QR code.
1731
- */
1732
- contentStatic?: string | null;
1733
-
1734
- /**
1735
- * The cryptocurrency information of the QR code.
1736
- */
1737
- crypto?: { [key: string]: string } | null;
1738
-
1739
- /**
1740
- * The description of the QR code generated via `api.codeqr.io/metatags`. Will be
1741
- * used for custom link preview if `proxy` is true.
1742
- */
1743
- description?: string | null;
1744
-
1745
- /**
1746
- * Allow search engines to index your QR code. The default is `false` if not
1747
- * provided. Learn more: https://codeqr.link/noindex
1748
- */
1749
- doIndex?: boolean;
1750
-
1751
- /**
1752
- * The domain of the QR code. If not provided, the main domain of the project will
1753
- * be used (or `codeqr.link` if the project does not have domains).
1754
- */
1755
- domain?: string;
1756
-
1757
- /**
1758
- * The email information of the QR code.
1759
- */
1760
- email?: { [key: string]: string } | null;
1761
-
1762
- /**
1763
- * If the QR code should have excavated areas.
1764
- */
1765
- excavate?: boolean;
1766
-
1767
- /**
1768
- * The URL to redirect when the QR code expires.
1769
- */
1770
- expiredUrl?: string | null;
1771
-
1772
- /**
1773
- * The date and time the QR code will expire in ISO-8601 format. Must be in the
1774
- * future.
1775
- */
1776
- expiresAt?: string | null;
1777
-
1778
- /**
1779
- * This is the ID of the QR code in your database. If defined, it can be used to
1780
- * identify the QR code in the future. It must be prefixed with `ext_` when passed
1781
- * as a query parameter.
1782
- */
1783
- externalId?: string | null;
1784
-
1785
- /**
1786
- * The FaceTime information of the QR code.
1787
- */
1788
- facetime?: { [key: string]: string } | null;
1789
-
1790
- /**
1791
- * The foreground color of the QR code (hex or CSS keyword). Invalid values are
1792
- * coerced to default.
1793
- */
1794
- fgColor?: string;
1795
-
1796
- /**
1797
- * If the QR code is filled.
1798
- */
1799
- filled?: boolean;
1800
-
1801
- /**
1802
- * If the QR code is flexible.
1803
- */
1804
- flexible?: boolean;
1805
-
1806
- /**
1807
- * The unique ID of the folder assigned to the QR code. Omit or set to null for no
1808
- * folder.
1809
- */
1810
- folderId?: string | null;
1811
-
1812
- /**
1813
- * The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5,
1814
- * frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at
1815
- * render.
1816
- */
1817
- frame?: string;
1818
-
1819
- /**
1820
- * The color of the frame (hex or CSS keyword). Invalid values are coerced to
1821
- * default.
1822
- */
1823
- frameColor?: string;
1824
-
1825
- /**
1826
- * Label text rendered inside the frame (e.g. "SCAN ME", a product SKU). Maximum
1827
- * 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar
1828
- * grows vertically to fit.
1829
- */
1830
- frameText?: string;
1831
-
1832
- /**
1833
- * Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS
1834
- * keyword from the allowlist). When omitted, a contrasting color is derived
1835
- * automatically from `frameColor`.
1836
- */
1837
- frameTextColor?: string | null;
1838
-
1839
- /**
1840
- * Typographic styles applied to the frame label text. Every key is enum-gated —
1841
- * unknown keys or out-of-enum values are rejected to prevent SVG attribute
1842
- * injection. All fields are optional; omitted keys fall back to the default
1843
- * (normal weight, normal style, sans family, medium size).
1844
- */
1845
- frameTextStyles?: QrcodeUpdateParams.FrameTextStyles | null;
1846
-
1847
- /**
1848
- * Geographic segmentation information for the QR code in the JSON format
1849
- * `{[COUNTRY]: https://example.com }`.
1850
- */
1851
- geo?: QrcodeUpdateParams.Geo | null;
1852
-
1853
- /**
1854
- * Logo height in pixels. When omitted, a proportional size is used based on the QR
1855
- * code size (about 10–20% depending on size).
1856
- */
1857
- height?: number;
1858
-
1859
- /**
1860
- * The image of the QR code generated via `api.codeqr.io/metatags`. Will be used
1861
- * for custom link preview if `proxy` is true.
1781
+ * The image of the QR code generated via `api.codeqr.io/metatags`. Will be used
1782
+ * for custom link preview if `proxy` is true.
1862
1783
  */
1863
1784
  image?: string | null;
1864
1785
 
@@ -1889,7 +1810,8 @@ export interface QrcodeUpdateParams {
1889
1810
  level?: string;
1890
1811
 
1891
1812
  /**
1892
- * The logo of the QR code.
1813
+ * @deprecated [DEPRECATED (use `src` instead)]: Not read by any renderer. Set
1814
+ * `src` to an image uploaded via `POST /qrcodes/logo`.
1893
1815
  */
1894
1816
  logo?: string | null;
1895
1817
 
@@ -1918,6 +1840,11 @@ export interface QrcodeUpdateParams {
1918
1840
  */
1919
1841
  phone?: string | null;
1920
1842
 
1843
+ /**
1844
+ * The Pix information of the QR code (key, name, city, amount, description).
1845
+ */
1846
+ pix?: unknown;
1847
+
1921
1848
  /**
1922
1849
  * The prefix for the randomly generated key. If provided, the key will be prefixed
1923
1850
  * with this value.
@@ -1991,7 +1918,8 @@ export interface QrcodeUpdateParams {
1991
1918
  tagIds?: string | Array<string>;
1992
1919
 
1993
1920
  /**
1994
- * The unique name of the tags assigned to the QR code (case insensitive).
1921
+ * The unique name of the tags assigned to the QR code (case insensitive). Ignored
1922
+ * when `tagIds` is also present.
1995
1923
  */
1996
1924
  tagNames?: string | Array<string>;
1997
1925
 
@@ -2047,17 +1975,55 @@ export interface QrcodeUpdateParams {
2047
1975
  useAsTemplate?: boolean;
2048
1976
 
2049
1977
  /**
2050
- * For dynamic QR codes with phone, email, or sms types: if true (default), shows
2051
- * an action page with buttons. If false, redirects directly to tel:/mailto:/sms:
2052
- * URI.
1978
+ * Kept for compatibility. A dynamic phone, email or SMS code is always served the
1979
+ * display page, whose buttons open the dialler, the mail client or the SMS app;
1980
+ * setting this to false changes nothing about what a scan gets.
2053
1981
  */
2054
1982
  useDisplayPage?: boolean;
2055
1983
 
1984
+ /**
1985
+ * The utm_campaign of the destination URL.
1986
+ */
1987
+ utm_campaign?: string | null;
1988
+
1989
+ /**
1990
+ * The utm_content of the destination URL.
1991
+ */
1992
+ utm_content?: string | null;
1993
+
1994
+ /**
1995
+ * The utm_medium of the destination URL.
1996
+ */
1997
+ utm_medium?: string | null;
1998
+
1999
+ /**
2000
+ * The utm_source of the destination URL.
2001
+ */
2002
+ utm_source?: string | null;
2003
+
2004
+ /**
2005
+ * The utm_term of the destination URL.
2006
+ */
2007
+ utm_term?: string | null;
2008
+
2056
2009
  /**
2057
2010
  * The vCard information of the QR code.
2058
2011
  */
2059
2012
  vcard?: { [key: string]: string } | null;
2060
2013
 
2014
+ /**
2015
+ * Customizes the Google Wallet and Apple Wallet passes saved from this QR code.
2016
+ * `name` and `logo` replace the workspace name and logo; left out (or `null`), the
2017
+ * pass shows the workspace value. `barcodeText` sets the text under the QR code.
2018
+ * On update: omit `walletPass` to keep the stored value, send `null` to clear it,
2019
+ * or send an object to replace the stored one as a whole — fields missing from the
2020
+ * object are cleared, not merged. Available on the Business plan and above,
2021
+ * outside a trial: elsewhere a new value is refused with `403 forbidden` (`null`
2022
+ * is always accepted) and a stored value is ignored, so the passes show the
2023
+ * workspace name and logo.
2024
+ */
2025
+ walletPass?: QrcodeUpdateParams.WalletPass | null;
2026
+
2061
2027
  /**
2062
2028
  * An array of webhook IDs to trigger when the link is clicked. These webhooks will
2063
2029
  * receive click event data.
@@ -2083,6 +2049,27 @@ export interface QrcodeUpdateParams {
2083
2049
  }
2084
2050
 
2085
2051
  export namespace QrcodeUpdateParams {
2052
+ /**
2053
+ * The cryptocurrency information of the QR code.
2054
+ */
2055
+ export interface Crypto {
2056
+ /**
2057
+ * The wallet address, as the display page reads it.
2058
+ */
2059
+ address?: string;
2060
+
2061
+ amount?: string;
2062
+
2063
+ cryptocurrency?: 'bitcoin' | 'bitcoincash' | 'ethereum' | 'litecoin' | 'dash' | 'dogecoin';
2064
+
2065
+ /**
2066
+ * The wallet address.
2067
+ */
2068
+ email?: string;
2069
+
2070
+ message?: string;
2071
+ }
2072
+
2086
2073
  /**
2087
2074
  * Typographic styles applied to the frame label text. Every key is enum-gated —
2088
2075
  * unknown keys or out-of-enum values are rejected to prevent SVG attribute
@@ -2624,13 +2611,69 @@ export namespace QrcodeUpdateParams {
2624
2611
  }
2625
2612
 
2626
2613
  export interface Rule {
2627
- attribute: 'device' | 'country' | 'utm_source' | 'utm_medium' | 'utm_campaign' | 'referrer' | 'language';
2614
+ attribute?:
2615
+ | 'device'
2616
+ | 'country'
2617
+ | 'utm_source'
2618
+ | 'utm_medium'
2619
+ | 'utm_campaign'
2620
+ | 'referrer'
2621
+ | 'language'
2622
+ | 'city'
2623
+ | 'region'
2624
+ | 'continent'
2625
+ | 'utm_term'
2626
+ | 'utm_content';
2627
+
2628
+ operator?: 'equals' | 'not_equals';
2629
+
2630
+ split?: Array<Rule.Split>;
2631
+
2632
+ url?: string;
2633
+
2634
+ value?: string;
2635
+ }
2628
2636
 
2629
- operator: 'equals' | 'not_equals';
2637
+ export namespace Rule {
2638
+ export interface Split {
2639
+ url: string;
2630
2640
 
2631
- url: string;
2641
+ weight: number;
2642
+ }
2643
+ }
2644
+
2645
+ /**
2646
+ * Customizes the Google Wallet and Apple Wallet passes saved from this QR code.
2647
+ * `name` and `logo` replace the workspace name and logo; left out (or `null`), the
2648
+ * pass shows the workspace value. `barcodeText` sets the text under the QR code.
2649
+ * On update: omit `walletPass` to keep the stored value, send `null` to clear it,
2650
+ * or send an object to replace the stored one as a whole — fields missing from the
2651
+ * object are cleared, not merged. Available on the Business plan and above,
2652
+ * outside a trial: elsewhere a new value is refused with `403 forbidden` (`null`
2653
+ * is always accepted) and a stored value is ignored, so the passes show the
2654
+ * workspace name and logo.
2655
+ */
2656
+ export interface WalletPass {
2657
+ /**
2658
+ * The text shown under the QR code on the pass, such as the member's name or card
2659
+ * number. The QR code's title is never shown there. Trimmed; 1 to 40 characters.
2660
+ */
2661
+ barcodeText?: string | null;
2632
2662
 
2633
- value: string;
2663
+ /**
2664
+ * The logo shown on the pass, in place of the workspace logo. Either the URL of an
2665
+ * image uploaded via `POST /qrcodes/logo`, or any https URL serving a PNG, JPEG or
2666
+ * WebP image of up to 2 MB without a redirect. An external image is copied to
2667
+ * CodeQR storage when the QR code is written, and the response returns the URL of
2668
+ * the copy, not the URL sent.
2669
+ */
2670
+ logo?: string | null;
2671
+
2672
+ /**
2673
+ * The name shown at the top of the pass, in place of the workspace name. Trimmed;
2674
+ * 1 to 64 characters.
2675
+ */
2676
+ name?: string | null;
2634
2677
  }
2635
2678
 
2636
2679
  /**
@@ -2644,6 +2687,224 @@ export namespace QrcodeUpdateParams {
2644
2687
  }
2645
2688
  }
2646
2689
 
2690
+ export interface QrcodeListParams {
2691
+ /**
2692
+ * The comments to filter by.
2693
+ */
2694
+ comments?: string;
2695
+
2696
+ /**
2697
+ * Filter QR codes created after this date
2698
+ */
2699
+ createdAfter?: string;
2700
+
2701
+ /**
2702
+ * Filter QR codes created before this date
2703
+ */
2704
+ createdBefore?: string;
2705
+
2706
+ /**
2707
+ * The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR
2708
+ * codes of the project will be returned.
2709
+ */
2710
+ domain?: string;
2711
+
2712
+ /**
2713
+ * Filter QR codes expiring after this date
2714
+ */
2715
+ expiresAfter?: string;
2716
+
2717
+ /**
2718
+ * The date and time the QR code will expire in ISO-8601 format. Must be in the
2719
+ * future.
2720
+ */
2721
+ expiresAt?: string | null;
2722
+
2723
+ /**
2724
+ * Filter QR codes expiring before this date
2725
+ */
2726
+ expiresBefore?: string;
2727
+
2728
+ /**
2729
+ * The folder ID to filter the QR codes by.
2730
+ */
2731
+ folderId?: string;
2732
+
2733
+ /**
2734
+ * Filter by QR code format - static or dynamic
2735
+ */
2736
+ format?: 'static' | 'dynamic';
2737
+
2738
+ /**
2739
+ * Filter QR codes with/without comments
2740
+ */
2741
+ hasComments?: boolean;
2742
+
2743
+ /**
2744
+ * Filter QR codes with/without custom social media cards
2745
+ */
2746
+ hasCustomSocial?: boolean;
2747
+
2748
+ /**
2749
+ * Filter QR codes with/without device targeting
2750
+ */
2751
+ hasDevice?: boolean;
2752
+
2753
+ /**
2754
+ * Filter QR codes with/without expiration date
2755
+ */
2756
+ hasExpiration?: boolean;
2757
+
2758
+ /**
2759
+ * Filter QR codes with/without geo-targeting
2760
+ */
2761
+ hasGeo?: boolean;
2762
+
2763
+ /**
2764
+ * Filter QR codes with/without password protection
2765
+ */
2766
+ hasPassword?: boolean;
2767
+
2768
+ /**
2769
+ * Filter QR codes with/without tags
2770
+ */
2771
+ hasTags?: boolean;
2772
+
2773
+ /**
2774
+ * Filter QR codes with/without UTM parameters
2775
+ */
2776
+ hasUTM?: boolean;
2777
+
2778
+ /**
2779
+ * The page number for pagination.
2780
+ */
2781
+ page?: number;
2782
+
2783
+ /**
2784
+ * The number of items per page.
2785
+ */
2786
+ pageSize?: number;
2787
+
2788
+ /**
2789
+ * The password to filter by.
2790
+ */
2791
+ password?: string;
2792
+
2793
+ /**
2794
+ * The slug of the project to which the QR code belongs. For example, for
2795
+ * `app.codeqr.io/acme`, the projectSlug is `acme`.
2796
+ */
2797
+ projectSlug?: string;
2798
+
2799
+ /**
2800
+ * Maximum number of scans
2801
+ */
2802
+ scansMax?: number;
2803
+
2804
+ /**
2805
+ * Minimum number of scans
2806
+ */
2807
+ scansMin?: number;
2808
+
2809
+ /**
2810
+ * The search term to filter the QR codes. The search term will be matched against
2811
+ * the QR code slug, title, and the destination URL.
2812
+ */
2813
+ search?: string;
2814
+
2815
+ /**
2816
+ * If should include archived QR codes in the response. The default is `false` if
2817
+ * not provided.
2818
+ */
2819
+ showArchived?: boolean;
2820
+
2821
+ /**
2822
+ * The field to order the QR codes. The default is `createdAt`, and the order of
2823
+ * sorting is always descending.
2824
+ */
2825
+ sort?: 'createdAt' | 'scans' | 'lastClicked';
2826
+
2827
+ /**
2828
+ * @deprecated [DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned
2829
+ * to the QR code.
2830
+ */
2831
+ tagId?: string;
2832
+
2833
+ /**
2834
+ * The IDs of the tags to filter the QR codes.
2835
+ */
2836
+ tagIds?: string | Array<string>;
2837
+
2838
+ /**
2839
+ * The unique name of the tags assigned to the QR code (case insensitive).
2840
+ */
2841
+ tagNames?: string | Array<string>;
2842
+
2843
+ /**
2844
+ * If should include QR codes with conversion tracking enabled. The default is
2845
+ * `false` if not provided.
2846
+ */
2847
+ trackConversion?: boolean;
2848
+
2849
+ /**
2850
+ * Filter by QR code type
2851
+ */
2852
+ type?:
2853
+ | 'url'
2854
+ | 'text'
2855
+ | 'email'
2856
+ | 'wifi'
2857
+ | 'phone'
2858
+ | 'vcard'
2859
+ | 'crypto'
2860
+ | 'sms'
2861
+ | 'facetime'
2862
+ | 'geo'
2863
+ | 'latlog'
2864
+ | 'pix'
2865
+ | 'whatsapp';
2866
+
2867
+ /**
2868
+ * Filter QR codes marked as templates.
2869
+ */
2870
+ useAsTemplate?: boolean;
2871
+
2872
+ /**
2873
+ * The ID of the user to filter by.
2874
+ */
2875
+ userId?: string;
2876
+
2877
+ /**
2878
+ * Filter by UTM campaign value
2879
+ */
2880
+ utm_campaign?: string;
2881
+
2882
+ /**
2883
+ * Filter by UTM content value
2884
+ */
2885
+ utm_content?: string;
2886
+
2887
+ /**
2888
+ * Filter by UTM medium value
2889
+ */
2890
+ utm_medium?: string;
2891
+
2892
+ /**
2893
+ * Filter by UTM source value
2894
+ */
2895
+ utm_source?: string;
2896
+
2897
+ /**
2898
+ * Filter by UTM term value
2899
+ */
2900
+ utm_term?: string;
2901
+
2902
+ /**
2903
+ * If should include tags in the response. The default is `false` if not provided.
2904
+ */
2905
+ withTags?: boolean;
2906
+ }
2907
+
2647
2908
  Qrcodes.Bulk = Bulk;
2648
2909
 
2649
2910
  export declare namespace Qrcodes {
@@ -2652,9 +2913,9 @@ export declare namespace Qrcodes {
2652
2913
  type QrcodeListResponse as QrcodeListResponse,
2653
2914
  type QrcodeDeleteResponse as QrcodeDeleteResponse,
2654
2915
  type QrcodeCreateParams as QrcodeCreateParams,
2655
- type QrcodeListParams as QrcodeListParams,
2656
2916
  type QrcodeRetrieveParams as QrcodeRetrieveParams,
2657
2917
  type QrcodeUpdateParams as QrcodeUpdateParams,
2918
+ type QrcodeListParams as QrcodeListParams,
2658
2919
  };
2659
2920
 
2660
2921
  export {