@opusdns/api 0.206.0 → 0.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/openapi.yaml CHANGED
@@ -7350,7 +7350,7 @@ info:
7350
7350
  '
7351
7351
  summary: OpusDNS - your gateway to a seamless domain management experience.
7352
7352
  title: OpusDNS API
7353
- version: 2026-02-25-211607
7353
+ version: 2026-02-26-130807
7354
7354
  x-logo:
7355
7355
  altText: OpusDNS API Reference
7356
7356
  url: https://d24lr4zqs1tgqh.cloudfront.net/c9505a20-5ae1-406c-b060-d392569caebf.jpg
@@ -10482,9 +10482,106 @@ paths:
10482
10482
  '200':
10483
10483
  content:
10484
10484
  application/json:
10485
+ examples:
10486
+ domain_forwards_list:
10487
+ description: Paginated list of domain forwards with multiple protocols
10488
+ and redirect configurations
10489
+ summary: Domain forwards list
10490
+ value:
10491
+ pagination:
10492
+ current_page: 1
10493
+ has_next_page: false
10494
+ has_previous_page: false
10495
+ page_size: 10
10496
+ total_items: 3
10497
+ total_pages: 1
10498
+ results:
10499
+ - created_on: '2025-02-20T10:30:45'
10500
+ domain_forward_id: domain_forward_01jx0000000000000000000001
10501
+ enabled: true
10502
+ hostname: example.com.
10503
+ http:
10504
+ created_on: '2025-02-20T10:30:45'
10505
+ redirects:
10506
+ - protected: false
10507
+ redirect_code: 301
10508
+ request_hostname: example.com.
10509
+ request_path: /
10510
+ request_protocol: http
10511
+ target_hostname: example.com
10512
+ target_path: /
10513
+ target_protocol: https
10514
+ updated_on: '2025-02-20T10:30:45'
10515
+ https:
10516
+ created_on: '2025-02-20T10:30:45'
10517
+ redirects:
10518
+ - protected: false
10519
+ redirect_code: 302
10520
+ request_hostname: example.com.
10521
+ request_path: /
10522
+ request_protocol: https
10523
+ target_hostname: www.example.com
10524
+ target_path: /
10525
+ target_protocol: https
10526
+ updated_on: '2025-02-20T10:30:45'
10527
+ updated_on: '2025-02-20T10:30:45'
10528
+ - created_on: '2025-02-20T10:30:45'
10529
+ domain_forward_id: domain_forward_01jx0000000000000000000002
10530
+ enabled: false
10531
+ hostname: api.example.com.
10532
+ https:
10533
+ created_on: '2025-02-20T10:30:45'
10534
+ redirects:
10535
+ - protected: false
10536
+ redirect_code: 308
10537
+ request_hostname: api.example.com.
10538
+ request_path: /v1
10539
+ request_protocol: https
10540
+ target_hostname: api-v2.example.com
10541
+ target_path: /v1
10542
+ target_protocol: https
10543
+ updated_on: '2025-02-20T10:30:45'
10544
+ updated_on: '2025-02-20T10:30:45'
10545
+ - created_on: '2025-02-20T10:30:45'
10546
+ domain_forward_id: domain_forward_01jx0000000000000000000003
10547
+ enabled: true
10548
+ hostname: old.example.com.
10549
+ http:
10550
+ created_on: '2025-02-20T10:30:45'
10551
+ redirects:
10552
+ - protected: false
10553
+ redirect_code: 301
10554
+ request_hostname: old.example.com.
10555
+ request_path: /blog
10556
+ request_protocol: http
10557
+ target_hostname: example.com
10558
+ target_path: /news
10559
+ target_protocol: https
10560
+ - protected: false
10561
+ redirect_code: 301
10562
+ request_hostname: old.example.com.
10563
+ request_path: /
10564
+ request_protocol: http
10565
+ target_hostname: example.com
10566
+ target_path: /
10567
+ target_protocol: https
10568
+ updated_on: '2025-02-20T10:30:45'
10569
+ https:
10570
+ created_on: '2025-02-20T10:30:45'
10571
+ redirects:
10572
+ - protected: false
10573
+ redirect_code: 301
10574
+ request_hostname: old.example.com.
10575
+ request_path: /
10576
+ request_protocol: https
10577
+ target_hostname: example.com
10578
+ target_path: /
10579
+ target_protocol: https
10580
+ updated_on: '2025-02-20T10:30:45'
10581
+ updated_on: '2025-02-20T10:30:45'
10485
10582
  schema:
10486
10583
  $ref: '#/components/schemas/Pagination_DomainForward_'
10487
- description: Successful Response
10584
+ description: List of domain forwards retrieved successfully
10488
10585
  '401':
10489
10586
  content:
10490
10587
  application/problem+json:
@@ -10534,7 +10631,7 @@ paths:
10534
10631
  required: true
10535
10632
  responses:
10536
10633
  '204':
10537
- description: Successful Response
10634
+ description: Domain forward redirects updated successfully.
10538
10635
  '401':
10539
10636
  content:
10540
10637
  application/problem+json:
@@ -10591,10 +10688,12 @@ paths:
10591
10688
  content:
10592
10689
  application/json:
10593
10690
  examples:
10594
- domain_forward:
10595
- description: Create a HTTP domain forward with redirect from HTTP
10596
- to HTTPS and HTTPS to auth.example.com
10597
- summary: HTTP domain forward
10691
+ http_and_https_forwards:
10692
+ description: Create a domain forward with both HTTP and HTTPS protocols
10693
+ configured. HTTP requests are redirected with 301 (Moved Permanently)
10694
+ to HTTPS, while HTTPS requests are redirected with 302 (Found) to
10695
+ a different target (e.g., auth service).
10696
+ summary: HTTP and HTTPS domain forwards
10598
10697
  value:
10599
10698
  enabled: false
10600
10699
  hostname: example.com.
@@ -10612,10 +10711,11 @@ paths:
10612
10711
  target_hostname: auth.example.com
10613
10712
  target_path: /
10614
10713
  target_protocol: https
10615
- http_to_https:
10616
- description: Create a HTTP domain forward with redirect from HTTP
10617
- to HTTPS
10618
- summary: HTTP to HTTPS
10714
+ http_to_https_only:
10715
+ description: Create a domain forward with only HTTPS protocol configured.
10716
+ This is useful for HTTPS-only services where you want to redirect
10717
+ HTTPS traffic without handling HTTP.
10718
+ summary: HTTPS-only forward
10619
10719
  value:
10620
10720
  enabled: false
10621
10721
  hostname: example.com.
@@ -10634,17 +10734,18 @@ paths:
10634
10734
  content:
10635
10735
  application/json:
10636
10736
  examples:
10637
- http_domain_forward_response:
10638
- description: Response when creating a HTTP domain forward with redirect
10639
- from HTTP to HTTPS and HTTPS to auth.example.com
10640
- summary: Response for HTTP domain forward
10737
+ http_and_https_response:
10738
+ description: Response when creating a domain forward with both HTTP
10739
+ and HTTPS protocols. The forward is created but initially disabled
10740
+ (enabled=false) until DNS records are provisioned.
10741
+ summary: Response for HTTP and HTTPS forwards
10641
10742
  value:
10642
- created_on: '2025-11-14T09:01:38'
10743
+ created_on: '2025-02-20T10:30:45'
10643
10744
  domain_forward_id: domain_forward_01jx0000000000000000000001
10644
10745
  enabled: false
10645
10746
  hostname: example.com.
10646
10747
  http:
10647
- created_on: '2025-11-14T09:01:38'
10748
+ created_on: '2025-02-20T10:30:45'
10648
10749
  redirects:
10649
10750
  - protected: false
10650
10751
  redirect_code: 301
@@ -10654,9 +10755,9 @@ paths:
10654
10755
  target_hostname: example.com
10655
10756
  target_path: /
10656
10757
  target_protocol: https
10657
- updated_on: '2025-11-14T09:01:38'
10758
+ updated_on: '2025-02-20T10:30:45'
10658
10759
  https:
10659
- created_on: '2025-11-14T09:01:38'
10760
+ created_on: '2025-02-20T10:30:45'
10660
10761
  redirects:
10661
10762
  - protected: false
10662
10763
  redirect_code: 302
@@ -10666,18 +10767,19 @@ paths:
10666
10767
  target_hostname: auth.example.com
10667
10768
  target_path: /
10668
10769
  target_protocol: https
10669
- updated_on: '2025-11-14T09:01:38'
10670
- updated_on: '2025-11-14T09:01:38'
10671
- http_to_https_response:
10672
- description: Response when creating a HTTP to HTTPS domain forward
10673
- summary: Response for HTTP to HTTPS
10770
+ updated_on: '2025-02-20T10:30:45'
10771
+ updated_on: '2025-02-20T10:30:45'
10772
+ https_only_response:
10773
+ description: Response when creating a HTTPS-only domain forward
10774
+ with minimal protocol configuration.
10775
+ summary: Response for HTTPS-only forward
10674
10776
  value:
10675
- created_on: '2025-11-14T09:01:38'
10777
+ created_on: '2025-02-20T10:30:45'
10676
10778
  domain_forward_id: domain_forward_01jx0000000000000000000002
10677
10779
  enabled: false
10678
10780
  hostname: example.com.
10679
10781
  http:
10680
- created_on: '2025-11-14T09:01:38'
10782
+ created_on: '2025-02-20T10:30:45'
10681
10783
  redirects:
10682
10784
  - protected: false
10683
10785
  redirect_code: 301
@@ -10687,8 +10789,8 @@ paths:
10687
10789
  target_hostname: example.com
10688
10790
  target_path: /
10689
10791
  target_protocol: https
10690
- updated_on: '2025-11-14T09:01:38'
10691
- updated_on: '2025-11-14T09:01:38'
10792
+ updated_on: '2025-02-20T10:30:45'
10793
+ updated_on: '2025-02-20T10:30:45'
10692
10794
  schema:
10693
10795
  $ref: '#/components/schemas/DomainForward'
10694
10796
  description: Domain forward created successfully
@@ -10740,7 +10842,7 @@ paths:
10740
10842
  type: domain-forward-already-exists
10741
10843
  schema:
10742
10844
  $ref: '#/components/schemas/Problem'
10743
- description: Domain forward already exists
10845
+ description: Domain forward already exists for this hostname
10744
10846
  '422':
10745
10847
  content:
10746
10848
  application/problem+json:
@@ -10755,6 +10857,8 @@ paths:
10755
10857
  - domain_forward
10756
10858
  /v1/domain-forwards/metrics:
10757
10859
  get:
10860
+ description: Retrieves overall metrics for domain forwards including total and
10861
+ unique visit counts.
10758
10862
  operationId: metrics_v1_domain_forwards_metrics_get
10759
10863
  parameters:
10760
10864
  - in: query
@@ -10804,9 +10908,59 @@ paths:
10804
10908
  '200':
10805
10909
  content:
10806
10910
  application/json:
10911
+ examples:
10912
+ basic_metrics:
10913
+ description: Basic metrics showing 1 invoked forward with 1,250
10914
+ total visits
10915
+ summary: Basic metrics example
10916
+ value:
10917
+ configured_forwards: 3
10918
+ invoked_forwards: 1
10919
+ total_visits: 1250
10920
+ unique_visits: 847
10921
+ comprehensive_metrics:
10922
+ description: Comprehensive metrics showing 5 invoked forwards with
10923
+ 15,842 total visits
10924
+ summary: Comprehensive metrics example
10925
+ value:
10926
+ configured_forwards: 12
10927
+ invoked_forwards: 5
10928
+ total_visits: 15842
10929
+ unique_visits: 9234
10807
10930
  schema:
10808
10931
  $ref: '#/components/schemas/DomainForwardMetricsResponse'
10809
- description: Successful Response
10932
+ description: Domain forward metrics retrieved successfully
10933
+ '400':
10934
+ content:
10935
+ application/json:
10936
+ example:
10937
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
10938
+ for exact match or 'domain' to filter by domain including all subdomains.
10939
+ description: Invalid query parameters
10940
+ '401':
10941
+ content:
10942
+ application/problem+json:
10943
+ example:
10944
+ code: ERROR_AUTHENTICATION
10945
+ detail: Additional error context.
10946
+ status: 401
10947
+ title: Authentication Error
10948
+ type: authentication
10949
+ schema:
10950
+ $ref: '#/components/schemas/Problem'
10951
+ description: Unauthorized
10952
+ '403':
10953
+ content:
10954
+ application/problem+json:
10955
+ example:
10956
+ code: ERROR_PERMISSION_DENIED
10957
+ detail: Insufficient permissions to perform this action
10958
+ status: 403
10959
+ title: Permission Denied
10960
+ type: permission-denied
10961
+ schema:
10962
+ $ref: '#/components/schemas/Problem'
10963
+ description: Forbidden
10810
10964
  '422':
10811
10965
  content:
10812
10966
  application/problem+json:
@@ -10816,11 +10970,13 @@ paths:
10816
10970
  security:
10817
10971
  - OAuth2PasswordBearer: []
10818
10972
  - APIKeyHeader: []
10819
- summary: Metrics
10973
+ summary: Get domain forward metrics
10820
10974
  tags:
10821
10975
  - domain_forward
10822
10976
  /v1/domain-forwards/metrics/browser:
10823
10977
  get:
10978
+ description: Retrieves visitor traffic broken down by browser type (Chrome,
10979
+ Safari, Firefox, etc.) with total and unique visit counts.
10824
10980
  operationId: browser_stats_v1_domain_forwards_metrics_browser_get
10825
10981
  parameters:
10826
10982
  - in: query
@@ -10870,9 +11026,82 @@ paths:
10870
11026
  '200':
10871
11027
  content:
10872
11028
  application/json:
11029
+ examples:
11030
+ basic_browser_stats:
11031
+ description: Shows top 4 browsers with visit counts and unique visitor
11032
+ counts
11033
+ summary: Basic browser statistics
11034
+ value:
11035
+ results:
11036
+ - key: Chrome
11037
+ total: 450
11038
+ unique: 320
11039
+ - key: Safari
11040
+ total: 280
11041
+ unique: 195
11042
+ - key: Firefox
11043
+ total: 195
11044
+ unique: 145
11045
+ - key: Edge
11046
+ total: 145
11047
+ unique: 107
11048
+ comprehensive_browser_stats:
11049
+ description: Shows extended browser list with detailed visitor tracking
11050
+ summary: Comprehensive browser statistics
11051
+ value:
11052
+ results:
11053
+ - key: Chrome
11054
+ total: 6200
11055
+ unique: 4125
11056
+ - key: Safari
11057
+ total: 3850
11058
+ unique: 2680
11059
+ - key: Firefox
11060
+ total: 2680
11061
+ unique: 1950
11062
+ - key: Edge
11063
+ total: 1890
11064
+ unique: 1375
11065
+ - key: Opera
11066
+ total: 890
11067
+ unique: 620
11068
+ - key: Samsung Internet
11069
+ total: 452
11070
+ unique: 325
10873
11071
  schema:
10874
11072
  $ref: '#/components/schemas/DomainForwardBrowserStatsResponse'
10875
- description: Successful Response
11073
+ description: Browser statistics retrieved successfully
11074
+ '400':
11075
+ content:
11076
+ application/json:
11077
+ example:
11078
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11079
+ for exact match or 'domain' to filter by domain including all subdomains.
11080
+ description: Invalid query parameters
11081
+ '401':
11082
+ content:
11083
+ application/problem+json:
11084
+ example:
11085
+ code: ERROR_AUTHENTICATION
11086
+ detail: Additional error context.
11087
+ status: 401
11088
+ title: Authentication Error
11089
+ type: authentication
11090
+ schema:
11091
+ $ref: '#/components/schemas/Problem'
11092
+ description: Unauthorized
11093
+ '403':
11094
+ content:
11095
+ application/problem+json:
11096
+ example:
11097
+ code: ERROR_PERMISSION_DENIED
11098
+ detail: Insufficient permissions to perform this action
11099
+ status: 403
11100
+ title: Permission Denied
11101
+ type: permission-denied
11102
+ schema:
11103
+ $ref: '#/components/schemas/Problem'
11104
+ description: Forbidden
10876
11105
  '422':
10877
11106
  content:
10878
11107
  application/problem+json:
@@ -10882,11 +11111,13 @@ paths:
10882
11111
  security:
10883
11112
  - OAuth2PasswordBearer: []
10884
11113
  - APIKeyHeader: []
10885
- summary: Browser Stats
11114
+ summary: Get browser statistics
10886
11115
  tags:
10887
11116
  - domain_forward
10888
11117
  /v1/domain-forwards/metrics/geo:
10889
11118
  get:
11119
+ description: Retrieves visitor traffic broken down by geographic location (country
11120
+ code) with visit counts.
10890
11121
  operationId: geo_stats_v1_domain_forwards_metrics_geo_get
10891
11122
  parameters:
10892
11123
  - in: query
@@ -10936,9 +11167,75 @@ paths:
10936
11167
  '200':
10937
11168
  content:
10938
11169
  application/json:
11170
+ examples:
11171
+ basic_geo_stats:
11172
+ description: Shows visits by country for top 4 regions
11173
+ summary: Basic geographic statistics
11174
+ value:
11175
+ results:
11176
+ - key: US
11177
+ total: 450
11178
+ - key: GB
11179
+ total: 220
11180
+ - key: DE
11181
+ total: 180
11182
+ - key: FR
11183
+ total: 145
11184
+ comprehensive_geo_stats:
11185
+ description: Shows detailed geographic distribution across 8 countries
11186
+ summary: Comprehensive geographic statistics
11187
+ value:
11188
+ results:
11189
+ - key: US
11190
+ total: 5800
11191
+ - key: GB
11192
+ total: 2100
11193
+ - key: DE
11194
+ total: 1850
11195
+ - key: FR
11196
+ total: 1450
11197
+ - key: CA
11198
+ total: 980
11199
+ - key: AU
11200
+ total: 750
11201
+ - key: JP
11202
+ total: 620
11203
+ - key: IN
11204
+ total: 520
10939
11205
  schema:
10940
11206
  $ref: '#/components/schemas/DomainForwardGeoStatsResponse'
10941
- description: Successful Response
11207
+ description: Geographic statistics retrieved successfully
11208
+ '400':
11209
+ content:
11210
+ application/json:
11211
+ example:
11212
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11213
+ for exact match or 'domain' to filter by domain including all subdomains.
11214
+ description: Invalid query parameters
11215
+ '401':
11216
+ content:
11217
+ application/problem+json:
11218
+ example:
11219
+ code: ERROR_AUTHENTICATION
11220
+ detail: Additional error context.
11221
+ status: 401
11222
+ title: Authentication Error
11223
+ type: authentication
11224
+ schema:
11225
+ $ref: '#/components/schemas/Problem'
11226
+ description: Unauthorized
11227
+ '403':
11228
+ content:
11229
+ application/problem+json:
11230
+ example:
11231
+ code: ERROR_PERMISSION_DENIED
11232
+ detail: Insufficient permissions to perform this action
11233
+ status: 403
11234
+ title: Permission Denied
11235
+ type: permission-denied
11236
+ schema:
11237
+ $ref: '#/components/schemas/Problem'
11238
+ description: Forbidden
10942
11239
  '422':
10943
11240
  content:
10944
11241
  application/problem+json:
@@ -10948,11 +11245,13 @@ paths:
10948
11245
  security:
10949
11246
  - OAuth2PasswordBearer: []
10950
11247
  - APIKeyHeader: []
10951
- summary: Geo Stats
11248
+ summary: Get geographic statistics
10952
11249
  tags:
10953
11250
  - domain_forward
10954
11251
  /v1/domain-forwards/metrics/platform:
10955
11252
  get:
11253
+ description: Retrieves visitor traffic broken down by platform (Windows, Macintosh,
11254
+ iOS, Android, Linux) with total and unique visit counts.
10956
11255
  operationId: platform_stats_v1_domain_forwards_metrics_platform_get
10957
11256
  parameters:
10958
11257
  - in: query
@@ -11002,9 +11301,80 @@ paths:
11002
11301
  '200':
11003
11302
  content:
11004
11303
  application/json:
11304
+ examples:
11305
+ basic_platform_stats:
11306
+ description: Shows distribution of visits across desktop and mobile
11307
+ platforms
11308
+ summary: Basic platform statistics
11309
+ value:
11310
+ results:
11311
+ - key: Windows
11312
+ total: 520
11313
+ unique: 380
11314
+ - key: Macintosh
11315
+ total: 350
11316
+ unique: 245
11317
+ - key: iOS
11318
+ total: 280
11319
+ unique: 200
11320
+ - key: Android
11321
+ total: 100
11322
+ unique: 75
11323
+ comprehensive_platform_stats:
11324
+ description: Shows detailed platform breakdown including Linux and
11325
+ other systems
11326
+ summary: Comprehensive platform statistics
11327
+ value:
11328
+ results:
11329
+ - key: Windows
11330
+ total: 7200
11331
+ unique: 5100
11332
+ - key: Macintosh
11333
+ total: 4800
11334
+ unique: 3400
11335
+ - key: iOS
11336
+ total: 2100
11337
+ unique: 1500
11338
+ - key: Android
11339
+ total: 1250
11340
+ unique: 900
11341
+ - key: Linux
11342
+ total: 492
11343
+ unique: 350
11005
11344
  schema:
11006
11345
  $ref: '#/components/schemas/DomainForwardPlatformStatsResponse'
11007
- description: Successful Response
11346
+ description: Platform statistics retrieved successfully
11347
+ '400':
11348
+ content:
11349
+ application/json:
11350
+ example:
11351
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11352
+ for exact match or 'domain' to filter by domain including all subdomains.
11353
+ description: Invalid query parameters
11354
+ '401':
11355
+ content:
11356
+ application/problem+json:
11357
+ example:
11358
+ code: ERROR_AUTHENTICATION
11359
+ detail: Additional error context.
11360
+ status: 401
11361
+ title: Authentication Error
11362
+ type: authentication
11363
+ schema:
11364
+ $ref: '#/components/schemas/Problem'
11365
+ description: Unauthorized
11366
+ '403':
11367
+ content:
11368
+ application/problem+json:
11369
+ example:
11370
+ code: ERROR_PERMISSION_DENIED
11371
+ detail: Insufficient permissions to perform this action
11372
+ status: 403
11373
+ title: Permission Denied
11374
+ type: permission-denied
11375
+ schema:
11376
+ $ref: '#/components/schemas/Problem'
11377
+ description: Forbidden
11008
11378
  '422':
11009
11379
  content:
11010
11380
  application/problem+json:
@@ -11014,11 +11384,13 @@ paths:
11014
11384
  security:
11015
11385
  - OAuth2PasswordBearer: []
11016
11386
  - APIKeyHeader: []
11017
- summary: Platform Stats
11387
+ summary: Get platform statistics
11018
11388
  tags:
11019
11389
  - domain_forward
11020
11390
  /v1/domain-forwards/metrics/referrer:
11021
11391
  get:
11392
+ description: Retrieves visitor referral sources (where traffic came from) with
11393
+ total and unique visit counts.
11022
11394
  operationId: referrer_stats_v1_domain_forwards_metrics_referrer_get
11023
11395
  parameters:
11024
11396
  - in: query
@@ -11068,9 +11440,82 @@ paths:
11068
11440
  '200':
11069
11441
  content:
11070
11442
  application/json:
11443
+ examples:
11444
+ basic_referrer_stats:
11445
+ description: Shows top referral sources directing traffic to forwards
11446
+ summary: Basic referrer statistics
11447
+ value:
11448
+ results:
11449
+ - key: https://google.com
11450
+ total: 450
11451
+ unique: 325
11452
+ - key: https://twitter.com
11453
+ total: 280
11454
+ unique: 195
11455
+ - key: direct
11456
+ total: 240
11457
+ unique: 180
11458
+ - key: https://reddit.com
11459
+ total: 95
11460
+ unique: 75
11461
+ comprehensive_referrer_stats:
11462
+ description: Shows extended list of referral sources including unique
11463
+ visitor counts
11464
+ summary: Comprehensive referrer statistics
11465
+ value:
11466
+ results:
11467
+ - key: https://google.com
11468
+ total: 5800
11469
+ unique: 4200
11470
+ - key: https://twitter.com
11471
+ total: 3200
11472
+ unique: 2300
11473
+ - key: direct
11474
+ total: 2900
11475
+ unique: 2100
11476
+ - key: https://reddit.com
11477
+ total: 1450
11478
+ unique: 1050
11479
+ - key: https://linkedin.com
11480
+ total: 980
11481
+ unique: 720
11482
+ - key: https://facebook.com
11483
+ total: 512
11484
+ unique: 380
11071
11485
  schema:
11072
11486
  $ref: '#/components/schemas/DomainForwardReferrerStatsResponse'
11073
- description: Successful Response
11487
+ description: Referrer statistics retrieved successfully
11488
+ '400':
11489
+ content:
11490
+ application/json:
11491
+ example:
11492
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11493
+ for exact match or 'domain' to filter by domain including all subdomains.
11494
+ description: Invalid query parameters
11495
+ '401':
11496
+ content:
11497
+ application/problem+json:
11498
+ example:
11499
+ code: ERROR_AUTHENTICATION
11500
+ detail: Additional error context.
11501
+ status: 401
11502
+ title: Authentication Error
11503
+ type: authentication
11504
+ schema:
11505
+ $ref: '#/components/schemas/Problem'
11506
+ description: Unauthorized
11507
+ '403':
11508
+ content:
11509
+ application/problem+json:
11510
+ example:
11511
+ code: ERROR_PERMISSION_DENIED
11512
+ detail: Insufficient permissions to perform this action
11513
+ status: 403
11514
+ title: Permission Denied
11515
+ type: permission-denied
11516
+ schema:
11517
+ $ref: '#/components/schemas/Problem'
11518
+ description: Forbidden
11074
11519
  '422':
11075
11520
  content:
11076
11521
  application/problem+json:
@@ -11080,11 +11525,13 @@ paths:
11080
11525
  security:
11081
11526
  - OAuth2PasswordBearer: []
11082
11527
  - APIKeyHeader: []
11083
- summary: Referrer Stats
11528
+ summary: Get referrer statistics
11084
11529
  tags:
11085
11530
  - domain_forward
11086
11531
  /v1/domain-forwards/metrics/status-code:
11087
11532
  get:
11533
+ description: Retrieves distribution of HTTP redirect status codes (301, 302,
11534
+ 307, 308) used across forwards.
11088
11535
  operationId: status_code_stats_v1_domain_forwards_metrics_status_code_get
11089
11536
  parameters:
11090
11537
  - in: query
@@ -11134,9 +11581,68 @@ paths:
11134
11581
  '200':
11135
11582
  content:
11136
11583
  application/json:
11584
+ examples:
11585
+ basic_status_code_stats:
11586
+ description: Shows distribution of HTTP redirect status codes (301,
11587
+ 302, 307, 308)
11588
+ summary: Basic status code statistics
11589
+ value:
11590
+ results:
11591
+ - key: '301'
11592
+ total: 520
11593
+ - key: '302'
11594
+ total: 430
11595
+ - key: '307'
11596
+ total: 285
11597
+ - key: '308'
11598
+ total: 15
11599
+ comprehensive_status_code_stats:
11600
+ description: Shows detailed redirect code usage patterns at scale
11601
+ summary: Comprehensive status code statistics
11602
+ value:
11603
+ results:
11604
+ - key: '301'
11605
+ total: 6800
11606
+ - key: '302'
11607
+ total: 5200
11608
+ - key: '307'
11609
+ total: 2850
11610
+ - key: '308'
11611
+ total: 992
11137
11612
  schema:
11138
11613
  $ref: '#/components/schemas/DomainForwardStatusCodeStatsResponse'
11139
- description: Successful Response
11614
+ description: Status code statistics retrieved successfully
11615
+ '400':
11616
+ content:
11617
+ application/json:
11618
+ example:
11619
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11620
+ for exact match or 'domain' to filter by domain including all subdomains.
11621
+ description: Invalid query parameters
11622
+ '401':
11623
+ content:
11624
+ application/problem+json:
11625
+ example:
11626
+ code: ERROR_AUTHENTICATION
11627
+ detail: Additional error context.
11628
+ status: 401
11629
+ title: Authentication Error
11630
+ type: authentication
11631
+ schema:
11632
+ $ref: '#/components/schemas/Problem'
11633
+ description: Unauthorized
11634
+ '403':
11635
+ content:
11636
+ application/problem+json:
11637
+ example:
11638
+ code: ERROR_PERMISSION_DENIED
11639
+ detail: Insufficient permissions to perform this action
11640
+ status: 403
11641
+ title: Permission Denied
11642
+ type: permission-denied
11643
+ schema:
11644
+ $ref: '#/components/schemas/Problem'
11645
+ description: Forbidden
11140
11646
  '422':
11141
11647
  content:
11142
11648
  application/problem+json:
@@ -11146,11 +11652,13 @@ paths:
11146
11652
  security:
11147
11653
  - OAuth2PasswordBearer: []
11148
11654
  - APIKeyHeader: []
11149
- summary: Status Code Stats
11655
+ summary: Get HTTP status code statistics
11150
11656
  tags:
11151
11657
  - domain_forward
11152
11658
  /v1/domain-forwards/metrics/time-series:
11153
11659
  get:
11660
+ description: Retrieves visit counts bucketed by time intervals (hourly, daily)
11661
+ for the specified time range.
11154
11662
  operationId: time_series_v1_domain_forwards_metrics_time_series_get
11155
11663
  parameters:
11156
11664
  - in: query
@@ -11200,9 +11708,114 @@ paths:
11200
11708
  '200':
11201
11709
  content:
11202
11710
  application/json:
11711
+ examples:
11712
+ daily_time_series:
11713
+ description: Shows visit counts bucketed by day over a 7-day period
11714
+ summary: Daily time series example
11715
+ value:
11716
+ results:
11717
+ - timestamp: '2025-02-20T12:00:00'
11718
+ total: 2500
11719
+ - timestamp: '2025-02-19T12:00:00'
11720
+ total: 2350
11721
+ - timestamp: '2025-02-18T12:00:00'
11722
+ total: 2200
11723
+ - timestamp: '2025-02-17T12:00:00'
11724
+ total: 2050
11725
+ - timestamp: '2025-02-16T12:00:00'
11726
+ total: 1900
11727
+ - timestamp: '2025-02-15T12:00:00'
11728
+ total: 1750
11729
+ - timestamp: '2025-02-14T12:00:00'
11730
+ total: 1600
11731
+ hourly_time_series:
11732
+ description: Shows visit counts bucketed by hour over a 24-hour
11733
+ period
11734
+ summary: Hourly time series example
11735
+ value:
11736
+ results:
11737
+ - timestamp: '2025-02-20T12:00:00'
11738
+ total: 150
11739
+ - timestamp: '2025-02-20T11:00:00'
11740
+ total: 140
11741
+ - timestamp: '2025-02-20T10:00:00'
11742
+ total: 130
11743
+ - timestamp: '2025-02-20T09:00:00'
11744
+ total: 120
11745
+ - timestamp: '2025-02-20T08:00:00'
11746
+ total: 110
11747
+ - timestamp: '2025-02-20T07:00:00'
11748
+ total: 100
11749
+ - timestamp: '2025-02-20T06:00:00'
11750
+ total: 90
11751
+ - timestamp: '2025-02-20T05:00:00'
11752
+ total: 80
11753
+ - timestamp: '2025-02-20T04:00:00'
11754
+ total: 70
11755
+ - timestamp: '2025-02-20T03:00:00'
11756
+ total: 60
11757
+ - timestamp: '2025-02-20T02:00:00'
11758
+ total: 50
11759
+ - timestamp: '2025-02-20T01:00:00'
11760
+ total: 40
11761
+ - timestamp: '2025-02-20T00:00:00'
11762
+ total: 30
11763
+ - timestamp: '2025-02-19T23:00:00'
11764
+ total: 20
11765
+ - timestamp: '2025-02-19T22:00:00'
11766
+ total: 10
11767
+ - timestamp: '2025-02-19T21:00:00'
11768
+ total: 0
11769
+ - timestamp: '2025-02-19T20:00:00'
11770
+ total: -10
11771
+ - timestamp: '2025-02-19T19:00:00'
11772
+ total: -20
11773
+ - timestamp: '2025-02-19T18:00:00'
11774
+ total: -30
11775
+ - timestamp: '2025-02-19T17:00:00'
11776
+ total: -40
11777
+ - timestamp: '2025-02-19T16:00:00'
11778
+ total: -50
11779
+ - timestamp: '2025-02-19T15:00:00'
11780
+ total: -60
11781
+ - timestamp: '2025-02-19T14:00:00'
11782
+ total: -70
11783
+ - timestamp: '2025-02-19T13:00:00'
11784
+ total: -80
11203
11785
  schema:
11204
11786
  $ref: '#/components/schemas/DomainForwardMetricsTimeSeriesResponse'
11205
- description: Successful Response
11787
+ description: Time series metrics retrieved successfully
11788
+ '400':
11789
+ content:
11790
+ application/json:
11791
+ example:
11792
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11793
+ for exact match or 'domain' to filter by domain including all subdomains.
11794
+ description: Invalid query parameters
11795
+ '401':
11796
+ content:
11797
+ application/problem+json:
11798
+ example:
11799
+ code: ERROR_AUTHENTICATION
11800
+ detail: Additional error context.
11801
+ status: 401
11802
+ title: Authentication Error
11803
+ type: authentication
11804
+ schema:
11805
+ $ref: '#/components/schemas/Problem'
11806
+ description: Unauthorized
11807
+ '403':
11808
+ content:
11809
+ application/problem+json:
11810
+ example:
11811
+ code: ERROR_PERMISSION_DENIED
11812
+ detail: Insufficient permissions to perform this action
11813
+ status: 403
11814
+ title: Permission Denied
11815
+ type: permission-denied
11816
+ schema:
11817
+ $ref: '#/components/schemas/Problem'
11818
+ description: Forbidden
11206
11819
  '422':
11207
11820
  content:
11208
11821
  application/problem+json:
@@ -11212,11 +11825,13 @@ paths:
11212
11825
  security:
11213
11826
  - OAuth2PasswordBearer: []
11214
11827
  - APIKeyHeader: []
11215
- summary: Time Series
11828
+ summary: Get domain forward time series metrics
11216
11829
  tags:
11217
11830
  - domain_forward
11218
11831
  /v1/domain-forwards/metrics/user-agent:
11219
11832
  get:
11833
+ description: Retrieves visitor traffic broken down by user agent string with
11834
+ total and unique visit counts.
11220
11835
  operationId: user_agent_stats_v1_domain_forwards_metrics_user_agent_get
11221
11836
  parameters:
11222
11837
  - in: query
@@ -11266,9 +11881,74 @@ paths:
11266
11881
  '200':
11267
11882
  content:
11268
11883
  application/json:
11884
+ examples:
11885
+ basic_user_agent_stats:
11886
+ description: Shows top 3 user agents with visit distribution
11887
+ summary: Basic user agent statistics
11888
+ value:
11889
+ results:
11890
+ - key: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
11891
+ total: 320
11892
+ unique: 245
11893
+ - key: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
11894
+ total: 220
11895
+ unique: 165
11896
+ - key: Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X)
11897
+ AppleWebKit/605.1.15
11898
+ total: 180
11899
+ unique: 140
11900
+ comprehensive_user_agent_stats:
11901
+ description: Shows extended user agent list with detailed metrics
11902
+ summary: Comprehensive user agent statistics
11903
+ value:
11904
+ results:
11905
+ - key: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
11906
+ total: 4200
11907
+ unique: 3100
11908
+ - key: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
11909
+ total: 2850
11910
+ unique: 2100
11911
+ - key: Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X)
11912
+ AppleWebKit/605.1.15
11913
+ total: 1850
11914
+ unique: 1350
11915
+ - key: Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36
11916
+ total: 920
11917
+ unique: 680
11269
11918
  schema:
11270
11919
  $ref: '#/components/schemas/DomainForwardUserAgentStatsResponse'
11271
- description: Successful Response
11920
+ description: User agent statistics retrieved successfully
11921
+ '400':
11922
+ content:
11923
+ application/json:
11924
+ example:
11925
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
11926
+ for exact match or 'domain' to filter by domain including all subdomains.
11927
+ description: Invalid query parameters
11928
+ '401':
11929
+ content:
11930
+ application/problem+json:
11931
+ example:
11932
+ code: ERROR_AUTHENTICATION
11933
+ detail: Additional error context.
11934
+ status: 401
11935
+ title: Authentication Error
11936
+ type: authentication
11937
+ schema:
11938
+ $ref: '#/components/schemas/Problem'
11939
+ description: Unauthorized
11940
+ '403':
11941
+ content:
11942
+ application/problem+json:
11943
+ example:
11944
+ code: ERROR_PERMISSION_DENIED
11945
+ detail: Insufficient permissions to perform this action
11946
+ status: 403
11947
+ title: Permission Denied
11948
+ type: permission-denied
11949
+ schema:
11950
+ $ref: '#/components/schemas/Problem'
11951
+ description: Forbidden
11272
11952
  '422':
11273
11953
  content:
11274
11954
  application/problem+json:
@@ -11278,11 +11958,13 @@ paths:
11278
11958
  security:
11279
11959
  - OAuth2PasswordBearer: []
11280
11960
  - APIKeyHeader: []
11281
- summary: User Agent Stats
11961
+ summary: Get user agent statistics
11282
11962
  tags:
11283
11963
  - domain_forward
11284
11964
  /v1/domain-forwards/metrics/visits-by-key:
11285
11965
  get:
11966
+ description: Retrieves visit metrics grouped by a specified key (url, fqdn,
11967
+ domain, or forward) with total and unique visit counts.
11286
11968
  operationId: visits_by_key_v1_domain_forwards_metrics_visits_by_key_get
11287
11969
  parameters:
11288
11970
  - description: 'Grouping key: url, fqdn, domain, or forward'
@@ -11340,9 +12022,87 @@ paths:
11340
12022
  '200':
11341
12023
  content:
11342
12024
  application/json:
12025
+ examples:
12026
+ visits_by_domain:
12027
+ description: Shows visit distribution when grouped by domain
12028
+ summary: Visits grouped by domain
12029
+ value:
12030
+ results:
12031
+ - key: example.com
12032
+ total: 1065
12033
+ unique: 770
12034
+ - key: subdomain.example.com
12035
+ total: 520
12036
+ unique: 380
12037
+ - key: api.example.com
12038
+ total: 310
12039
+ unique: 220
12040
+ visits_by_forward:
12041
+ description: Shows visit distribution when grouped by source-to-destination
12042
+ forward mapping
12043
+ summary: Visits grouped by forward
12044
+ value:
12045
+ results:
12046
+ - key: example.com -> dest1.example.com
12047
+ total: 680
12048
+ unique: 480
12049
+ - key: subdomain.example.com -> dest2.example.com
12050
+ total: 520
12051
+ unique: 380
12052
+ - key: api.example.com -> api-v2.example.com
12053
+ total: 310
12054
+ unique: 220
12055
+ visits_by_url:
12056
+ description: Shows visit distribution when grouped by request URL
12057
+ summary: Visits grouped by URL
12058
+ value:
12059
+ results:
12060
+ - key: example.com/
12061
+ total: 450
12062
+ unique: 320
12063
+ - key: example.com/about
12064
+ total: 280
12065
+ unique: 195
12066
+ - key: example.com/blog
12067
+ total: 240
12068
+ unique: 180
12069
+ - key: example.com/contact
12070
+ total: 95
12071
+ unique: 75
11343
12072
  schema:
11344
12073
  $ref: '#/components/schemas/DomainForwardVisitsByKeyResponse'
11345
- description: Successful Response
12074
+ description: Visits by key statistics retrieved successfully
12075
+ '400':
12076
+ content:
12077
+ application/json:
12078
+ example:
12079
+ detail: Cannot specify both 'hostname' and 'domain'. Use 'hostname'
12080
+ for exact match or 'domain' to filter by domain including all subdomains.
12081
+ description: Invalid query parameters
12082
+ '401':
12083
+ content:
12084
+ application/problem+json:
12085
+ example:
12086
+ code: ERROR_AUTHENTICATION
12087
+ detail: Additional error context.
12088
+ status: 401
12089
+ title: Authentication Error
12090
+ type: authentication
12091
+ schema:
12092
+ $ref: '#/components/schemas/Problem'
12093
+ description: Unauthorized
12094
+ '403':
12095
+ content:
12096
+ application/problem+json:
12097
+ example:
12098
+ code: ERROR_PERMISSION_DENIED
12099
+ detail: Insufficient permissions to perform this action
12100
+ status: 403
12101
+ title: Permission Denied
12102
+ type: permission-denied
12103
+ schema:
12104
+ $ref: '#/components/schemas/Problem'
12105
+ description: Forbidden
11346
12106
  '422':
11347
12107
  content:
11348
12108
  application/problem+json:
@@ -11352,7 +12112,7 @@ paths:
11352
12112
  security:
11353
12113
  - OAuth2PasswordBearer: []
11354
12114
  - APIKeyHeader: []
11355
- summary: Visits By Key
12115
+ summary: Get visits grouped by key
11356
12116
  tags:
11357
12117
  - domain_forward
11358
12118
  /v1/domain-forwards/{hostname}:
@@ -11370,7 +12130,7 @@ paths:
11370
12130
  type: string
11371
12131
  responses:
11372
12132
  '204':
11373
- description: Successful Response
12133
+ description: Domain forward deleted successfully. No content returned.
11374
12134
  '401':
11375
12135
  content:
11376
12136
  application/problem+json:
@@ -11435,9 +12195,44 @@ paths:
11435
12195
  '200':
11436
12196
  content:
11437
12197
  application/json:
12198
+ examples:
12199
+ single_domain_forward:
12200
+ description: Detailed view of a single domain forward with all protocols
12201
+ and redirects
12202
+ summary: Single domain forward
12203
+ value:
12204
+ created_on: '2025-02-20T10:30:45'
12205
+ domain_forward_id: domain_forward_01jx0000000000000000000001
12206
+ enabled: true
12207
+ hostname: example.com.
12208
+ http:
12209
+ created_on: '2025-02-20T10:30:45'
12210
+ redirects:
12211
+ - protected: false
12212
+ redirect_code: 301
12213
+ request_hostname: example.com.
12214
+ request_path: /
12215
+ request_protocol: http
12216
+ target_hostname: example.com
12217
+ target_path: /
12218
+ target_protocol: https
12219
+ updated_on: '2025-02-20T10:30:45'
12220
+ https:
12221
+ created_on: '2025-02-20T10:30:45'
12222
+ redirects:
12223
+ - protected: false
12224
+ redirect_code: 302
12225
+ request_hostname: example.com.
12226
+ request_path: /
12227
+ request_protocol: https
12228
+ target_hostname: www.example.com
12229
+ target_path: /
12230
+ target_protocol: https
12231
+ updated_on: '2025-02-20T10:30:45'
12232
+ updated_on: '2025-02-20T10:30:45'
11438
12233
  schema:
11439
12234
  $ref: '#/components/schemas/DomainForward'
11440
- description: Successful Response
12235
+ description: Domain forward retrieved successfully
11441
12236
  '401':
11442
12237
  content:
11443
12238
  application/problem+json:
@@ -11509,9 +12304,27 @@ paths:
11509
12304
  '201':
11510
12305
  content:
11511
12306
  application/json:
12307
+ examples:
12308
+ created_protocol_set:
12309
+ description: New domain forward protocol set with HTTP redirects
12310
+ summary: Protocol set created
12311
+ value:
12312
+ created_on: '2025-02-20T10:30:45'
12313
+ hostname: example.com.
12314
+ protocol: http
12315
+ redirects:
12316
+ - protected: false
12317
+ redirect_code: 301
12318
+ request_hostname: example.com.
12319
+ request_path: /
12320
+ request_protocol: http
12321
+ target_hostname: example.com
12322
+ target_path: /
12323
+ target_protocol: https
12324
+ updated_on: '2025-02-20T10:30:45'
11512
12325
  schema:
11513
12326
  $ref: '#/components/schemas/DomainForwardSetResponse'
11514
- description: Successful Response
12327
+ description: Domain forward protocol set created successfully
11515
12328
  '401':
11516
12329
  content:
11517
12330
  application/problem+json:
@@ -11588,7 +12401,8 @@ paths:
11588
12401
  type: string
11589
12402
  responses:
11590
12403
  '204':
11591
- description: Successful Response
12404
+ description: Domain forward disabled successfully. DNS records have been
12405
+ removed but configuration is preserved.
11592
12406
  '401':
11593
12407
  content:
11594
12408
  application/problem+json:
@@ -11640,7 +12454,8 @@ paths:
11640
12454
  type: string
11641
12455
  responses:
11642
12456
  '204':
11643
- description: Successful Response
12457
+ description: Domain forward enabled successfully. DNS records have been
12458
+ created.
11644
12459
  '401':
11645
12460
  content:
11646
12461
  application/problem+json:
@@ -11697,7 +12512,8 @@ paths:
11697
12512
  type: string
11698
12513
  responses:
11699
12514
  '204':
11700
- description: Successful Response
12515
+ description: Domain forward protocol set deleted successfully. No content
12516
+ returned.
11701
12517
  '401':
11702
12518
  content:
11703
12519
  application/problem+json:
@@ -11768,9 +12584,44 @@ paths:
11768
12584
  '200':
11769
12585
  content:
11770
12586
  application/json:
12587
+ examples:
12588
+ http_protocol_set:
12589
+ description: Domain forward set containing HTTP protocol redirects
12590
+ summary: HTTP protocol set
12591
+ value:
12592
+ created_on: '2025-02-20T10:30:45'
12593
+ hostname: example.com.
12594
+ protocol: http
12595
+ redirects:
12596
+ - protected: false
12597
+ redirect_code: 301
12598
+ request_hostname: example.com.
12599
+ request_path: /
12600
+ request_protocol: http
12601
+ target_hostname: example.com
12602
+ target_path: /
12603
+ target_protocol: https
12604
+ updated_on: '2025-02-20T10:30:45'
12605
+ https_protocol_set:
12606
+ description: Domain forward set containing HTTPS protocol redirects
12607
+ summary: HTTPS protocol set
12608
+ value:
12609
+ created_on: '2025-02-20T10:30:45'
12610
+ hostname: example.com.
12611
+ protocol: https
12612
+ redirects:
12613
+ - protected: false
12614
+ redirect_code: 302
12615
+ request_hostname: example.com.
12616
+ request_path: /
12617
+ request_protocol: https
12618
+ target_hostname: www.example.com
12619
+ target_path: /
12620
+ target_protocol: https
12621
+ updated_on: '2025-02-20T10:30:45'
11771
12622
  schema:
11772
12623
  $ref: '#/components/schemas/DomainForwardSetResponse'
11773
- description: Successful Response
12624
+ description: Domain forward set retrieved successfully
11774
12625
  '401':
11775
12626
  content:
11776
12627
  application/problem+json:
@@ -11848,9 +12699,27 @@ paths:
11848
12699
  '201':
11849
12700
  content:
11850
12701
  application/json:
12702
+ examples:
12703
+ created_protocol_set:
12704
+ description: New domain forward protocol set with HTTP redirects
12705
+ summary: Protocol set created
12706
+ value:
12707
+ created_on: '2025-02-20T10:30:45'
12708
+ hostname: example.com.
12709
+ protocol: http
12710
+ redirects:
12711
+ - protected: false
12712
+ redirect_code: 301
12713
+ request_hostname: example.com.
12714
+ request_path: /
12715
+ request_protocol: http
12716
+ target_hostname: example.com
12717
+ target_path: /
12718
+ target_protocol: https
12719
+ updated_on: '2025-02-20T10:30:45'
11851
12720
  schema:
11852
12721
  $ref: '#/components/schemas/DomainForwardSetResponse'
11853
- description: Successful Response
12722
+ description: Domain forward protocol set created successfully
11854
12723
  '401':
11855
12724
  content:
11856
12725
  application/problem+json:
@@ -11940,9 +12809,28 @@ paths:
11940
12809
  '200':
11941
12810
  content:
11942
12811
  application/json:
12812
+ examples:
12813
+ updated_protocol_set:
12814
+ description: Updated domain forward protocol set with new redirect
12815
+ configuration
12816
+ summary: Protocol set updated
12817
+ value:
12818
+ created_on: '2025-02-20T10:30:45'
12819
+ hostname: example.com.
12820
+ protocol: https
12821
+ redirects:
12822
+ - protected: false
12823
+ redirect_code: 302
12824
+ request_hostname: example.com.
12825
+ request_path: /
12826
+ request_protocol: https
12827
+ target_hostname: www.example.com
12828
+ target_path: /
12829
+ target_protocol: https
12830
+ updated_on: '2025-02-20T10:30:45'
11943
12831
  schema:
11944
12832
  $ref: '#/components/schemas/DomainForwardSetResponse'
11945
- description: Successful Response
12833
+ description: Domain forward protocol set updated successfully
11946
12834
  '401':
11947
12835
  content:
11948
12836
  application/problem+json:
@@ -13454,6 +14342,32 @@ paths:
13454
14342
  requestBody:
13455
14343
  content:
13456
14344
  application/json:
14345
+ examples:
14346
+ catch_all:
14347
+ description: Use '*' as alias to forward all unmatched emails for
14348
+ the hostname.
14349
+ summary: Catch-all email forwarding
14350
+ value:
14351
+ aliases:
14352
+ - alias: '*'
14353
+ forward_to:
14354
+ - inbox@example.net
14355
+ enabled: true
14356
+ hostname: example.com.
14357
+ email_forward:
14358
+ description: Create email forwarding with named aliases for a hostname.
14359
+ summary: Standard email forwarding setup
14360
+ value:
14361
+ aliases:
14362
+ - alias: sales
14363
+ forward_to:
14364
+ - sales-team@example.net
14365
+ - alias: support
14366
+ forward_to:
14367
+ - support@example.net
14368
+ - oncall@example.net
14369
+ enabled: false
14370
+ hostname: mail.example.com.
13457
14371
  schema:
13458
14372
  $ref: '#/components/schemas/EmailForwardCreate'
13459
14373
  required: true
@@ -13461,9 +14375,45 @@ paths:
13461
14375
  '201':
13462
14376
  content:
13463
14377
  application/json:
14378
+ examples:
14379
+ catch_all_email_forwarding_response:
14380
+ description: Response when creating email forwarding with a catch-all
14381
+ alias.
14382
+ summary: Response for catch-all email forwarding setup
14383
+ value:
14384
+ aliases:
14385
+ - alias: '*'
14386
+ email_forward_alias_id: email_forward_alias_01jx0000000000000000000003
14387
+ forward_to:
14388
+ - inbox@example.net
14389
+ created_on: '2025-11-14T09:01:38'
14390
+ email_forward_id: email_forward_01jx0000000000000000000002
14391
+ enabled: true
14392
+ hostname: example.com.
14393
+ updated_on: '2025-11-14T09:01:38'
14394
+ standard_email_forwarding_response:
14395
+ description: Response when creating email forwarding with named
14396
+ aliases.
14397
+ summary: Response for standard email forwarding setup
14398
+ value:
14399
+ aliases:
14400
+ - alias: sales
14401
+ email_forward_alias_id: email_forward_alias_01jx0000000000000000000001
14402
+ forward_to:
14403
+ - sales-team@example.net
14404
+ - alias: support
14405
+ email_forward_alias_id: email_forward_alias_01jx0000000000000000000002
14406
+ forward_to:
14407
+ - support@example.net
14408
+ - oncall@example.net
14409
+ created_on: '2025-11-14T09:01:38'
14410
+ email_forward_id: email_forward_01jx0000000000000000000001
14411
+ enabled: false
14412
+ hostname: mail.example.com.
14413
+ updated_on: '2025-11-14T09:01:38'
13464
14414
  schema:
13465
14415
  $ref: '#/components/schemas/EmailForwardResponse'
13466
- description: Successful Response
14416
+ description: Email forwarding created successfully
13467
14417
  '401':
13468
14418
  content:
13469
14419
  application/problem+json:
@@ -13492,27 +14442,27 @@ paths:
13492
14442
  content:
13493
14443
  application/problem+json:
13494
14444
  example:
13495
- code: ERROR_EMAIL_FORWARD_NOT_FOUND
13496
- detail: 'Email forward not found for hostname: Additional error context.'
14445
+ code: ERROR_ZONE_NOT_FOUND
14446
+ detail: Zone not found
13497
14447
  status: 404
13498
- title: Email Forward Error
13499
- type: email-forward-not-found
14448
+ title: DNS Error
14449
+ type: dns-zone-not-found
14450
+ zone_name: Zone example.com. not found
13500
14451
  schema:
13501
14452
  $ref: '#/components/schemas/Problem'
13502
- description: Not Found
14453
+ description: DNS zone was not found
13503
14454
  '409':
13504
14455
  content:
13505
14456
  application/problem+json:
13506
14457
  example:
13507
14458
  code: ERROR_EMAIL_FORWARD_ALREADY_EXISTS
13508
- detail: 'Email forward already exists for hostname: Additional error
13509
- context.'
14459
+ detail: 'Email forward already exists for hostname: mail.example.com'
13510
14460
  status: 409
13511
14461
  title: Email Forward Error
13512
14462
  type: email-forward-already-exists
13513
14463
  schema:
13514
14464
  $ref: '#/components/schemas/Problem'
13515
- description: Conflict
14465
+ description: Email forwarding configuration already exists
13516
14466
  '422':
13517
14467
  content:
13518
14468
  application/problem+json:
@@ -13529,7 +14479,7 @@ paths:
13529
14479
  delete:
13530
14480
  description: Permanently deletes the email forward configuration including all
13531
14481
  aliases. If enabled, automatically disables first (removes DNS records and
13532
- unregisters from ImprovMX).
14482
+ unregisters from the email forwarding provider).
13533
14483
  operationId: delete_email_forward_v1_email_forwards__email_forward_id__delete
13534
14484
  parameters:
13535
14485
  - in: path
@@ -13583,8 +14533,8 @@ paths:
13583
14533
  tags:
13584
14534
  - email_forward
13585
14535
  get:
13586
- description: Retrieves the email forward configuration for the specified zone
13587
- including all aliases
14536
+ description: Retrieves the email forward configuration for the specified email
14537
+ forward including all aliases
13588
14538
  operationId: get_email_forward_v1_email_forwards__email_forward_id__get
13589
14539
  parameters:
13590
14540
  - in: path
@@ -13655,7 +14605,9 @@ paths:
13655
14605
  - email_forward
13656
14606
  /v1/email-forwards/{email_forward_id}/aliases:
13657
14607
  post:
13658
- description: Creates a new email forward alias for the specified hostname.
14608
+ description: Creates a new email forward alias for the specified email forward.
14609
+ Use '*' as the alias name to configure a catch-all alias that forwards all
14610
+ unmatched emails for the domain.
13659
14611
  operationId: create_email_forward_alias_v1_email_forwards__email_forward_id__aliases_post
13660
14612
  parameters:
13661
14613
  - in: path
@@ -13672,6 +14624,22 @@ paths:
13672
14624
  requestBody:
13673
14625
  content:
13674
14626
  application/json:
14627
+ examples:
14628
+ catch_all_alias:
14629
+ description: Use '*' to configure a catch-all alias.
14630
+ summary: Catch-all alias
14631
+ value:
14632
+ alias: '*'
14633
+ forward_to:
14634
+ - catchall@example.net
14635
+ named_alias:
14636
+ description: Create a regular alias for email forwarding.
14637
+ summary: Named alias
14638
+ value:
14639
+ alias: support
14640
+ forward_to:
14641
+ - support@example.net
14642
+ - oncall@example.net
13675
14643
  schema:
13676
14644
  $ref: '#/components/schemas/EmailForwardAliasCreate'
13677
14645
  required: true
@@ -13679,9 +14647,27 @@ paths:
13679
14647
  '201':
13680
14648
  content:
13681
14649
  application/json:
14650
+ examples:
14651
+ catch_all_alias_response:
14652
+ description: Response when creating a catch-all alias.
14653
+ summary: Response for catch-all alias
14654
+ value:
14655
+ alias: '*'
14656
+ email_forward_alias_id: email_forward_alias_01jx0000000000000000000005
14657
+ forward_to:
14658
+ - catchall@example.net
14659
+ named_alias_response:
14660
+ description: Response when creating a regular alias.
14661
+ summary: Response for named alias
14662
+ value:
14663
+ alias: support
14664
+ email_forward_alias_id: email_forward_alias_01jx0000000000000000000004
14665
+ forward_to:
14666
+ - support@example.net
14667
+ - oncall@example.net
13682
14668
  schema:
13683
14669
  $ref: '#/components/schemas/EmailForwardAlias'
13684
- description: Successful Response
14670
+ description: Email forwarding alias created successfully
13685
14671
  '401':
13686
14672
  content:
13687
14673
  application/problem+json:
@@ -13711,25 +14697,25 @@ paths:
13711
14697
  application/problem+json:
13712
14698
  example:
13713
14699
  code: ERROR_EMAIL_FORWARD_NOT_FOUND
13714
- detail: 'Email forward not found for hostname: Additional error context.'
14700
+ detail: 'Email forward not found for ID: email_forward_01jx0000000000000000000009'
13715
14701
  status: 404
13716
14702
  title: Email Forward Error
13717
14703
  type: email-forward-not-found
13718
14704
  schema:
13719
14705
  $ref: '#/components/schemas/Problem'
13720
- description: Not Found
14706
+ description: Email forwarding configuration was not found
13721
14707
  '409':
13722
14708
  content:
13723
14709
  application/problem+json:
13724
14710
  example:
13725
14711
  code: ERROR_EMAIL_FORWARD_ALIAS_ALREADY_EXISTS
13726
- detail: Additional error context.
14712
+ detail: Alias already exists
13727
14713
  status: 409
13728
14714
  title: Email Forward Error
13729
14715
  type: email-forward-alias-already-exists
13730
14716
  schema:
13731
14717
  $ref: '#/components/schemas/Problem'
13732
- description: Conflict
14718
+ description: Email forwarding alias already exists
13733
14719
  '422':
13734
14720
  content:
13735
14721
  application/problem+json:
@@ -13744,7 +14730,8 @@ paths:
13744
14730
  - email_forward
13745
14731
  /v1/email-forwards/{email_forward_id}/aliases/{alias_id}:
13746
14732
  delete:
13747
- description: Deletes a specific email forward alias for the specified zone
14733
+ description: Deletes a specific email forward alias specified by email_forward_alias_id
14734
+ for the specified email forward
13748
14735
  operationId: delete_email_forward_alias_v1_email_forwards__email_forward_id__aliases__alias_id__delete
13749
14736
  parameters:
13750
14737
  - in: path
@@ -13800,11 +14787,12 @@ paths:
13800
14787
  content:
13801
14788
  application/problem+json:
13802
14789
  example:
13803
- code: ERROR_EMAIL_FORWARD_NOT_FOUND
13804
- detail: 'Email forward not found for hostname: Additional error context.'
14790
+ code: ERROR_EMAIL_FORWARD_ALIAS_NOT_FOUND
14791
+ detail: Alias could not be found
14792
+ email_forward_id: Additional error context.
13805
14793
  status: 404
13806
14794
  title: Email Forward Error
13807
- type: email-forward-not-found
14795
+ type: email-forward-alias-not-found
13808
14796
  schema:
13809
14797
  $ref: '#/components/schemas/Problem'
13810
14798
  description: Not Found
@@ -13822,6 +14810,7 @@ paths:
13822
14810
  - email_forward
13823
14811
  put:
13824
14812
  description: Updates the forward_to address for a specific email forward alias
14813
+ specified by email_forward_alias_id
13825
14814
  operationId: update_email_forward_alias_v1_email_forwards__email_forward_id__aliases__alias_id__put
13826
14815
  parameters:
13827
14816
  - in: path
@@ -13887,11 +14876,12 @@ paths:
13887
14876
  content:
13888
14877
  application/problem+json:
13889
14878
  example:
13890
- code: ERROR_EMAIL_FORWARD_NOT_FOUND
13891
- detail: 'Email forward not found for hostname: Additional error context.'
14879
+ code: ERROR_EMAIL_FORWARD_ALIAS_NOT_FOUND
14880
+ detail: Alias could not be found
14881
+ email_forward_id: Additional error context.
13892
14882
  status: 404
13893
14883
  title: Email Forward Error
13894
- type: email-forward-not-found
14884
+ type: email-forward-alias-not-found
13895
14885
  schema:
13896
14886
  $ref: '#/components/schemas/Problem'
13897
14887
  description: Not Found
@@ -13910,7 +14900,7 @@ paths:
13910
14900
  /v1/email-forwards/{email_forward_id}/disable:
13911
14901
  patch:
13912
14902
  description: Disables email forwarding by removing MX and SPF DNS records and
13913
- unregistering the domain from the email forward provider. The email forward
14903
+ unregistering the domain from the email forwarding provider. The email forward
13914
14904
  configuration is preserved but disabled.
13915
14905
  operationId: disable_email_forward_v1_email_forwards__email_forward_id__disable_patch
13916
14906
  parameters:
@@ -13979,7 +14969,7 @@ paths:
13979
14969
  /v1/email-forwards/{email_forward_id}/enable:
13980
14970
  patch:
13981
14971
  description: Enables email forwarding by creating necessary MX and SPF DNS records
13982
- and registering the domain with the email forward provider.
14972
+ and registering the domain with the email forwarding provider.
13983
14973
  operationId: enable_email_forward_v1_email_forwards__email_forward_id__enable_patch
13984
14974
  parameters:
13985
14975
  - in: path