carrier-python 0.1.15__py3-none-any.whl

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.
@@ -0,0 +1,3042 @@
1
+ [
2
+ {
3
+ "id": "list_reseller_accounts",
4
+ "method": "GET",
5
+ "path": "/v1/accounts",
6
+ "tag": "Accounts",
7
+ "summary": "List all reseller sub-accounts",
8
+ "security": "bearer",
9
+ "body": false,
10
+ "bodyRequired": false,
11
+ "pathParams": [],
12
+ "queryParams": [],
13
+ "headerParams": []
14
+ },
15
+ {
16
+ "id": "get_reseller_info",
17
+ "method": "GET",
18
+ "path": "/v1/reseller",
19
+ "tag": "Reseller",
20
+ "summary": "Get authenticated reseller profile and balance",
21
+ "security": "bearer",
22
+ "body": false,
23
+ "bodyRequired": false,
24
+ "pathParams": [],
25
+ "queryParams": [],
26
+ "headerParams": []
27
+ },
28
+ {
29
+ "id": "esim_status_per_account",
30
+ "method": "GET",
31
+ "path": "/v1/accounts/{accountId}/esim-status",
32
+ "tag": "Accounts",
33
+ "summary": "Get eSIM provisioning status counts for an account",
34
+ "security": "bearer",
35
+ "body": false,
36
+ "bodyRequired": false,
37
+ "pathParams": [
38
+ {
39
+ "name": "accountId",
40
+ "required": true
41
+ }
42
+ ],
43
+ "queryParams": [],
44
+ "headerParams": []
45
+ },
46
+ {
47
+ "id": "list_sponsors",
48
+ "method": "GET",
49
+ "path": "/v1/sponsors",
50
+ "tag": "Reseller",
51
+ "summary": "List sponsor entries for the reseller",
52
+ "security": "bearer",
53
+ "body": false,
54
+ "bodyRequired": false,
55
+ "pathParams": [],
56
+ "queryParams": [],
57
+ "headerParams": []
58
+ },
59
+ {
60
+ "id": "list_steering_lists",
61
+ "method": "GET",
62
+ "path": "/v1/steering-lists",
63
+ "tag": "Network",
64
+ "summary": "List network steering lists for the reseller",
65
+ "security": "bearer",
66
+ "body": false,
67
+ "bodyRequired": false,
68
+ "pathParams": [],
69
+ "queryParams": [],
70
+ "headerParams": []
71
+ },
72
+ {
73
+ "id": "get_subscriber",
74
+ "method": "GET",
75
+ "path": "/v1/subscribers/{iccid}",
76
+ "tag": "Subscribers",
77
+ "summary": "Get subscriber details by ICCID",
78
+ "security": "bearer",
79
+ "body": false,
80
+ "bodyRequired": false,
81
+ "pathParams": [
82
+ {
83
+ "name": "iccid",
84
+ "required": true
85
+ }
86
+ ],
87
+ "queryParams": [],
88
+ "headerParams": []
89
+ },
90
+ {
91
+ "id": "list_subscribers",
92
+ "method": "GET",
93
+ "path": "/v1/subscribers",
94
+ "tag": "Subscribers",
95
+ "summary": "List subscribers with optional filters",
96
+ "security": "bearer",
97
+ "body": false,
98
+ "bodyRequired": false,
99
+ "pathParams": [],
100
+ "queryParams": [
101
+ {
102
+ "name": "q",
103
+ "required": false
104
+ }
105
+ ],
106
+ "headerParams": []
107
+ },
108
+ {
109
+ "id": "create_subscriber",
110
+ "method": "POST",
111
+ "path": "/v1/subscribers",
112
+ "tag": "Subscribers",
113
+ "summary": "Subscriber creation is not available on the OCS",
114
+ "security": "bearer",
115
+ "body": false,
116
+ "bodyRequired": false,
117
+ "pathParams": [],
118
+ "queryParams": [],
119
+ "headerParams": []
120
+ },
121
+ {
122
+ "id": "get_sim_provider_status",
123
+ "method": "GET",
124
+ "path": "/v1/subscribers/{iccid}/sim-status",
125
+ "tag": "Subscribers",
126
+ "summary": "Get SIM provider status for a subscriber",
127
+ "security": "bearer",
128
+ "body": false,
129
+ "bodyRequired": false,
130
+ "pathParams": [
131
+ {
132
+ "name": "iccid",
133
+ "required": true
134
+ }
135
+ ],
136
+ "queryParams": [],
137
+ "headerParams": []
138
+ },
139
+ {
140
+ "id": "change_sim_status",
141
+ "method": "PUT",
142
+ "path": "/v1/subscribers/{iccid}/sim-status",
143
+ "tag": "Subscribers",
144
+ "summary": "Change SIM card status at the platform level (admin only)",
145
+ "security": "bearer",
146
+ "body": true,
147
+ "bodyRequired": true,
148
+ "pathParams": [
149
+ {
150
+ "name": "iccid",
151
+ "required": true
152
+ }
153
+ ],
154
+ "queryParams": [],
155
+ "headerParams": [
156
+ {
157
+ "name": "X-Confirm-Token",
158
+ "required": false
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ "id": "get_subscriber_location",
164
+ "method": "GET",
165
+ "path": "/v1/subscribers/{iccid}/location",
166
+ "tag": "Subscribers",
167
+ "summary": "Get last known location of a subscriber",
168
+ "security": "bearer",
169
+ "body": false,
170
+ "bodyRequired": false,
171
+ "pathParams": [
172
+ {
173
+ "name": "iccid",
174
+ "required": true
175
+ }
176
+ ],
177
+ "queryParams": [],
178
+ "headerParams": []
179
+ },
180
+ {
181
+ "id": "hlr_get_bitrate",
182
+ "method": "GET",
183
+ "path": "/v1/subscribers/{iccid}/bitrate",
184
+ "tag": "Subscribers",
185
+ "summary": "Get HLR bitrate limit for a subscriber",
186
+ "security": "bearer",
187
+ "body": false,
188
+ "bodyRequired": false,
189
+ "pathParams": [
190
+ {
191
+ "name": "iccid",
192
+ "required": true
193
+ }
194
+ ],
195
+ "queryParams": [],
196
+ "headerParams": []
197
+ },
198
+ {
199
+ "id": "hlr_set_bitrate",
200
+ "method": "PUT",
201
+ "path": "/v1/subscribers/{iccid}/bitrate",
202
+ "tag": "Subscribers",
203
+ "summary": "Set HLR bitrate limit for a subscriber",
204
+ "security": "bearer",
205
+ "body": true,
206
+ "bodyRequired": true,
207
+ "pathParams": [
208
+ {
209
+ "name": "iccid",
210
+ "required": true
211
+ }
212
+ ],
213
+ "queryParams": [],
214
+ "headerParams": []
215
+ },
216
+ {
217
+ "id": "list_subscriber_packages",
218
+ "method": "GET",
219
+ "path": "/v1/subscribers/{iccid}/packages",
220
+ "tag": "Subscribers",
221
+ "summary": "List active data packages for a subscriber",
222
+ "security": "bearer",
223
+ "body": false,
224
+ "bodyRequired": false,
225
+ "pathParams": [
226
+ {
227
+ "name": "iccid",
228
+ "required": true
229
+ }
230
+ ],
231
+ "queryParams": [],
232
+ "headerParams": []
233
+ },
234
+ {
235
+ "id": "assign_package",
236
+ "method": "POST",
237
+ "path": "/v1/subscribers/{iccid}/packages",
238
+ "tag": "Subscribers",
239
+ "summary": "Assign a one-time data package to a subscriber",
240
+ "security": "bearer",
241
+ "body": true,
242
+ "bodyRequired": true,
243
+ "pathParams": [
244
+ {
245
+ "name": "iccid",
246
+ "required": true
247
+ }
248
+ ],
249
+ "queryParams": [],
250
+ "headerParams": []
251
+ },
252
+ {
253
+ "id": "clean_all_packages",
254
+ "method": "DELETE",
255
+ "path": "/v1/subscribers/{iccid}/packages",
256
+ "tag": "Subscribers",
257
+ "summary": "Remove all packages from a subscriber (admin only)",
258
+ "security": "bearer",
259
+ "body": false,
260
+ "bodyRequired": false,
261
+ "pathParams": [
262
+ {
263
+ "name": "iccid",
264
+ "required": true
265
+ }
266
+ ],
267
+ "queryParams": [],
268
+ "headerParams": [
269
+ {
270
+ "name": "X-Confirm-Token",
271
+ "required": false
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "id": "list_package_templates",
277
+ "method": "GET",
278
+ "path": "/v1/package-templates",
279
+ "tag": "Packages",
280
+ "summary": "List available package templates",
281
+ "security": "bearer",
282
+ "body": false,
283
+ "bodyRequired": false,
284
+ "pathParams": [],
285
+ "queryParams": [],
286
+ "headerParams": []
287
+ },
288
+ {
289
+ "id": "create_package_template",
290
+ "method": "POST",
291
+ "path": "/v1/package-templates",
292
+ "tag": "Packages",
293
+ "summary": "Create a new package template",
294
+ "security": "bearer",
295
+ "body": true,
296
+ "bodyRequired": true,
297
+ "pathParams": [],
298
+ "queryParams": [],
299
+ "headerParams": []
300
+ },
301
+ {
302
+ "id": "list_location_zones",
303
+ "method": "GET",
304
+ "path": "/v1/location-zones",
305
+ "tag": "Network",
306
+ "summary": "List location zones for the reseller",
307
+ "security": "bearer",
308
+ "body": false,
309
+ "bodyRequired": false,
310
+ "pathParams": [],
311
+ "queryParams": [],
312
+ "headerParams": []
313
+ },
314
+ {
315
+ "id": "create_location_zone",
316
+ "method": "POST",
317
+ "path": "/v1/location-zones",
318
+ "tag": "Network",
319
+ "summary": "Create a new location zone",
320
+ "security": "bearer",
321
+ "body": true,
322
+ "bodyRequired": true,
323
+ "pathParams": [],
324
+ "queryParams": [],
325
+ "headerParams": []
326
+ },
327
+ {
328
+ "id": "list_detailed_location_zones",
329
+ "method": "GET",
330
+ "path": "/v1/location-zones/detailed",
331
+ "tag": "Network",
332
+ "summary": "List location zones with full country/network detail",
333
+ "security": "bearer",
334
+ "body": false,
335
+ "bodyRequired": false,
336
+ "pathParams": [],
337
+ "queryParams": [],
338
+ "headerParams": []
339
+ },
340
+ {
341
+ "id": "list_destination_prefixes",
342
+ "method": "GET",
343
+ "path": "/v1/destination-prefixes",
344
+ "tag": "Network",
345
+ "summary": "List destination prefixes for routing configuration",
346
+ "security": "bearer",
347
+ "body": false,
348
+ "bodyRequired": false,
349
+ "pathParams": [],
350
+ "queryParams": [],
351
+ "headerParams": []
352
+ },
353
+ {
354
+ "id": "subscriber_usage",
355
+ "method": "POST",
356
+ "path": "/v1/subscribers/{iccid}/usage",
357
+ "tag": "Subscribers",
358
+ "summary": "Get subscriber data usage over a date range",
359
+ "security": "bearer",
360
+ "body": true,
361
+ "bodyRequired": true,
362
+ "pathParams": [
363
+ {
364
+ "name": "iccid",
365
+ "required": true
366
+ }
367
+ ],
368
+ "queryParams": [],
369
+ "headerParams": []
370
+ },
371
+ {
372
+ "id": "subscriber_network_events",
373
+ "method": "POST",
374
+ "path": "/v1/subscribers/{iccid}/network-events",
375
+ "tag": "Subscribers",
376
+ "summary": "Get subscriber network events over a date range",
377
+ "security": "bearer",
378
+ "body": true,
379
+ "bodyRequired": true,
380
+ "pathParams": [
381
+ {
382
+ "name": "iccid",
383
+ "required": true
384
+ }
385
+ ],
386
+ "queryParams": [],
387
+ "headerParams": []
388
+ },
389
+ {
390
+ "id": "subscriber_active_period",
391
+ "method": "GET",
392
+ "path": "/v1/subscribers/{iccid}/active-period",
393
+ "tag": "Subscribers",
394
+ "summary": "Get the active period for a subscriber",
395
+ "security": "bearer",
396
+ "body": false,
397
+ "bodyRequired": false,
398
+ "pathParams": [
399
+ {
400
+ "name": "iccid",
401
+ "required": true
402
+ }
403
+ ],
404
+ "queryParams": [],
405
+ "headerParams": []
406
+ },
407
+ {
408
+ "id": "get_tariff",
409
+ "method": "GET",
410
+ "path": "/v1/tariffs/{resellerId}",
411
+ "tag": "Network",
412
+ "summary": "Get tariff rules for a reseller",
413
+ "security": "bearer",
414
+ "body": false,
415
+ "bodyRequired": false,
416
+ "pathParams": [
417
+ {
418
+ "name": "resellerId",
419
+ "required": true
420
+ }
421
+ ],
422
+ "queryParams": [],
423
+ "headerParams": []
424
+ },
425
+ {
426
+ "id": "list_network_profiles",
427
+ "method": "GET",
428
+ "path": "/v1/network-profiles",
429
+ "tag": "Network",
430
+ "summary": "List network profiles available to the reseller",
431
+ "security": "bearer",
432
+ "body": false,
433
+ "bodyRequired": false,
434
+ "pathParams": [],
435
+ "queryParams": [],
436
+ "headerParams": []
437
+ },
438
+ {
439
+ "id": "modify_subscriber_balance",
440
+ "method": "PUT",
441
+ "path": "/v1/subscribers/{iccid}/balance",
442
+ "tag": "Subscribers",
443
+ "summary": "Add or set the prepaid balance for a subscriber",
444
+ "security": "bearer",
445
+ "body": true,
446
+ "bodyRequired": true,
447
+ "pathParams": [
448
+ {
449
+ "name": "iccid",
450
+ "required": true
451
+ }
452
+ ],
453
+ "queryParams": [],
454
+ "headerParams": []
455
+ },
456
+ {
457
+ "id": "modify_subscriber_status",
458
+ "method": "PUT",
459
+ "path": "/v1/subscribers/{iccid}/status",
460
+ "tag": "Subscribers",
461
+ "summary": "Activate, suspend, or deactivate a subscriber",
462
+ "security": "bearer",
463
+ "body": true,
464
+ "bodyRequired": true,
465
+ "pathParams": [
466
+ {
467
+ "name": "iccid",
468
+ "required": true
469
+ }
470
+ ],
471
+ "queryParams": [],
472
+ "headerParams": []
473
+ },
474
+ {
475
+ "id": "modify_subscriber_contact_info",
476
+ "method": "PUT",
477
+ "path": "/v1/subscribers/{iccid}/contact",
478
+ "tag": "Subscribers",
479
+ "summary": "Update subscriber contact information",
480
+ "security": "bearer",
481
+ "body": true,
482
+ "bodyRequired": true,
483
+ "pathParams": [
484
+ {
485
+ "name": "iccid",
486
+ "required": true
487
+ }
488
+ ],
489
+ "queryParams": [],
490
+ "headerParams": []
491
+ },
492
+ {
493
+ "id": "set_subscriber_traffic_restrictions",
494
+ "method": "PUT",
495
+ "path": "/v1/subscribers/{iccid}/traffic-restrictions",
496
+ "tag": "Subscribers",
497
+ "summary": "Set data/voice/SMS traffic restrictions for a subscriber",
498
+ "security": "bearer",
499
+ "body": true,
500
+ "bodyRequired": true,
501
+ "pathParams": [
502
+ {
503
+ "name": "iccid",
504
+ "required": true
505
+ }
506
+ ],
507
+ "queryParams": [],
508
+ "headerParams": []
509
+ },
510
+ {
511
+ "id": "modify_subscriber_steering_list",
512
+ "method": "PUT",
513
+ "path": "/v1/subscribers/{iccid}/steering-list",
514
+ "tag": "Subscribers",
515
+ "summary": "Assign a steering list to a subscriber",
516
+ "security": "bearer",
517
+ "body": true,
518
+ "bodyRequired": true,
519
+ "pathParams": [
520
+ {
521
+ "name": "iccid",
522
+ "required": true
523
+ }
524
+ ],
525
+ "queryParams": [],
526
+ "headerParams": []
527
+ },
528
+ {
529
+ "id": "move_subscriber_range_to_account",
530
+ "method": "POST",
531
+ "path": "/v1/accounts/{accountId}/move-subscribers",
532
+ "tag": "Accounts",
533
+ "summary": "Move a subscriber range to a different account",
534
+ "security": "bearer",
535
+ "body": true,
536
+ "bodyRequired": true,
537
+ "pathParams": [
538
+ {
539
+ "name": "accountId",
540
+ "required": true
541
+ }
542
+ ],
543
+ "queryParams": [],
544
+ "headerParams": []
545
+ },
546
+ {
547
+ "id": "assign_recurring_package",
548
+ "method": "POST",
549
+ "path": "/v1/subscribers/{iccid}/packages/recurring",
550
+ "tag": "Subscribers",
551
+ "summary": "Assign a recurring data package to a subscriber",
552
+ "security": "bearer",
553
+ "body": true,
554
+ "bodyRequired": true,
555
+ "pathParams": [
556
+ {
557
+ "name": "iccid",
558
+ "required": true
559
+ }
560
+ ],
561
+ "queryParams": [],
562
+ "headerParams": []
563
+ },
564
+ {
565
+ "id": "modify_package_limits",
566
+ "method": "PUT",
567
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}/limits",
568
+ "tag": "Subscribers",
569
+ "summary": "Modify data limits for an assigned package",
570
+ "security": "bearer",
571
+ "body": true,
572
+ "bodyRequired": true,
573
+ "pathParams": [
574
+ {
575
+ "name": "iccid",
576
+ "required": true
577
+ },
578
+ {
579
+ "name": "packageId",
580
+ "required": true
581
+ }
582
+ ],
583
+ "queryParams": [],
584
+ "headerParams": []
585
+ },
586
+ {
587
+ "id": "modify_package_expiry",
588
+ "method": "PUT",
589
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}/expiry",
590
+ "tag": "Subscribers",
591
+ "summary": "Modify the expiry date of an assigned package",
592
+ "security": "bearer",
593
+ "body": true,
594
+ "bodyRequired": true,
595
+ "pathParams": [
596
+ {
597
+ "name": "iccid",
598
+ "required": true
599
+ },
600
+ {
601
+ "name": "packageId",
602
+ "required": true
603
+ }
604
+ ],
605
+ "queryParams": [],
606
+ "headerParams": []
607
+ },
608
+ {
609
+ "id": "modify_package_status",
610
+ "method": "PUT",
611
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}/status",
612
+ "tag": "Subscribers",
613
+ "summary": "Pause or resume an assigned package",
614
+ "security": "bearer",
615
+ "body": true,
616
+ "bodyRequired": true,
617
+ "pathParams": [
618
+ {
619
+ "name": "iccid",
620
+ "required": true
621
+ },
622
+ {
623
+ "name": "packageId",
624
+ "required": true
625
+ }
626
+ ],
627
+ "queryParams": [],
628
+ "headerParams": []
629
+ },
630
+ {
631
+ "id": "stop_resume_recurring_package",
632
+ "method": "PUT",
633
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}/recurring-status",
634
+ "tag": "Subscribers",
635
+ "summary": "Stop or resume a recurring package subscription",
636
+ "security": "bearer",
637
+ "body": true,
638
+ "bodyRequired": true,
639
+ "pathParams": [
640
+ {
641
+ "name": "iccid",
642
+ "required": true
643
+ },
644
+ {
645
+ "name": "packageId",
646
+ "required": true
647
+ }
648
+ ],
649
+ "queryParams": [],
650
+ "headerParams": []
651
+ },
652
+ {
653
+ "id": "modify_account_balance",
654
+ "method": "PUT",
655
+ "path": "/v1/accounts/{accountId}/balance",
656
+ "tag": "Accounts",
657
+ "summary": "Modify account-level balance (admin only)",
658
+ "security": "bearer",
659
+ "body": true,
660
+ "bodyRequired": true,
661
+ "pathParams": [
662
+ {
663
+ "name": "accountId",
664
+ "required": true
665
+ }
666
+ ],
667
+ "queryParams": [],
668
+ "headerParams": [
669
+ {
670
+ "name": "X-Confirm-Token",
671
+ "required": false
672
+ }
673
+ ]
674
+ },
675
+ {
676
+ "id": "delete_subscriber_package",
677
+ "method": "DELETE",
678
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}",
679
+ "tag": "Subscribers",
680
+ "summary": "Delete a subscriber package (admin only)",
681
+ "security": "bearer",
682
+ "body": false,
683
+ "bodyRequired": false,
684
+ "pathParams": [
685
+ {
686
+ "name": "iccid",
687
+ "required": true
688
+ },
689
+ {
690
+ "name": "packageId",
691
+ "required": true
692
+ }
693
+ ],
694
+ "queryParams": [],
695
+ "headerParams": [
696
+ {
697
+ "name": "X-Confirm-Token",
698
+ "required": false
699
+ }
700
+ ]
701
+ },
702
+ {
703
+ "id": "modify_template_core",
704
+ "method": "PUT",
705
+ "path": "/v1/package-templates/{templateId}/core",
706
+ "tag": "Packages",
707
+ "summary": "Modify core settings of a package template (admin only)",
708
+ "security": "bearer",
709
+ "body": true,
710
+ "bodyRequired": true,
711
+ "pathParams": [
712
+ {
713
+ "name": "templateId",
714
+ "required": true
715
+ }
716
+ ],
717
+ "queryParams": [],
718
+ "headerParams": [
719
+ {
720
+ "name": "X-Confirm-Token",
721
+ "required": false
722
+ }
723
+ ]
724
+ },
725
+ {
726
+ "id": "modify_template_recurring",
727
+ "method": "PUT",
728
+ "path": "/v1/package-templates/{templateId}/recurring",
729
+ "tag": "Packages",
730
+ "summary": "Modify recurring settings of a package template (admin only)",
731
+ "security": "bearer",
732
+ "body": true,
733
+ "bodyRequired": true,
734
+ "pathParams": [
735
+ {
736
+ "name": "templateId",
737
+ "required": true
738
+ }
739
+ ],
740
+ "queryParams": [],
741
+ "headerParams": [
742
+ {
743
+ "name": "X-Confirm-Token",
744
+ "required": false
745
+ }
746
+ ]
747
+ },
748
+ {
749
+ "id": "modify_template_throttling",
750
+ "method": "PUT",
751
+ "path": "/v1/package-templates/{templateId}/throttling",
752
+ "tag": "Packages",
753
+ "summary": "Modify throttling settings of a package template (admin only)",
754
+ "security": "bearer",
755
+ "body": true,
756
+ "bodyRequired": true,
757
+ "pathParams": [
758
+ {
759
+ "name": "templateId",
760
+ "required": true
761
+ }
762
+ ],
763
+ "queryParams": [],
764
+ "headerParams": [
765
+ {
766
+ "name": "X-Confirm-Token",
767
+ "required": false
768
+ }
769
+ ]
770
+ },
771
+ {
772
+ "id": "send_sms",
773
+ "method": "POST",
774
+ "path": "/v1/subscribers/{iccid}/sms",
775
+ "tag": "Subscribers",
776
+ "summary": "Send an MT SMS to a subscriber (admin only)",
777
+ "security": "bearer",
778
+ "body": true,
779
+ "bodyRequired": true,
780
+ "pathParams": [
781
+ {
782
+ "name": "iccid",
783
+ "required": true
784
+ }
785
+ ],
786
+ "queryParams": [],
787
+ "headerParams": [
788
+ {
789
+ "name": "X-Confirm-Token",
790
+ "required": false
791
+ }
792
+ ]
793
+ },
794
+ {
795
+ "id": "fleet_health",
796
+ "method": "POST",
797
+ "path": "/v1/intelligence/fleet-health",
798
+ "tag": "Intelligence",
799
+ "summary": "Aggregate fleet health: active/suspended/inactive counts, low balance alerts",
800
+ "security": "bearer",
801
+ "body": true,
802
+ "bodyRequired": false,
803
+ "pathParams": [],
804
+ "queryParams": [],
805
+ "headerParams": []
806
+ },
807
+ {
808
+ "id": "churn_risk",
809
+ "method": "POST",
810
+ "path": "/v1/intelligence/churn-risk",
811
+ "tag": "Intelligence",
812
+ "summary": "Identify subscribers at churn risk based on usage patterns",
813
+ "security": "bearer",
814
+ "body": true,
815
+ "bodyRequired": false,
816
+ "pathParams": [],
817
+ "queryParams": [],
818
+ "headerParams": []
819
+ },
820
+ {
821
+ "id": "audit_network_coverage",
822
+ "method": "POST",
823
+ "path": "/v1/intelligence/audit-network-coverage",
824
+ "tag": "Intelligence",
825
+ "summary": "Audit network coverage against location zones",
826
+ "security": "bearer",
827
+ "body": true,
828
+ "bodyRequired": false,
829
+ "pathParams": [],
830
+ "queryParams": [],
831
+ "headerParams": []
832
+ },
833
+ {
834
+ "id": "diagnose_subscriber",
835
+ "method": "POST",
836
+ "path": "/v1/intelligence/diagnose-subscriber",
837
+ "tag": "Intelligence",
838
+ "summary": "Deep-dive diagnostic for a single subscriber",
839
+ "security": "bearer",
840
+ "body": true,
841
+ "bodyRequired": false,
842
+ "pathParams": [],
843
+ "queryParams": [],
844
+ "headerParams": []
845
+ },
846
+ {
847
+ "id": "detect_usage_anomalies",
848
+ "method": "POST",
849
+ "path": "/v1/intelligence/detect-usage-anomalies",
850
+ "tag": "Intelligence",
851
+ "summary": "Detect unusual usage spikes or drops across the fleet",
852
+ "security": "bearer",
853
+ "body": true,
854
+ "bodyRequired": false,
855
+ "pathParams": [],
856
+ "queryParams": [],
857
+ "headerParams": []
858
+ },
859
+ {
860
+ "id": "optimize_package",
861
+ "method": "POST",
862
+ "path": "/v1/intelligence/optimize-package",
863
+ "tag": "Intelligence",
864
+ "summary": "Recommend optimal package based on subscriber usage history",
865
+ "security": "bearer",
866
+ "body": true,
867
+ "bodyRequired": false,
868
+ "pathParams": [],
869
+ "queryParams": [],
870
+ "headerParams": []
871
+ },
872
+ {
873
+ "id": "marketing_intelligence",
874
+ "method": "POST",
875
+ "path": "/v1/intelligence/marketing-intelligence",
876
+ "tag": "Intelligence",
877
+ "summary": "Segment subscribers for targeted campaigns",
878
+ "security": "bearer",
879
+ "body": true,
880
+ "bodyRequired": false,
881
+ "pathParams": [],
882
+ "queryParams": [],
883
+ "headerParams": []
884
+ },
885
+ {
886
+ "id": "high_cost_subscribers",
887
+ "method": "POST",
888
+ "path": "/v1/intelligence/high-cost-subscribers",
889
+ "tag": "Intelligence",
890
+ "summary": "Identify highest-cost subscribers for cost optimization",
891
+ "security": "bearer",
892
+ "body": true,
893
+ "bodyRequired": false,
894
+ "pathParams": [],
895
+ "queryParams": [],
896
+ "headerParams": []
897
+ },
898
+ {
899
+ "id": "high_cost_subscribers_method_guard",
900
+ "method": "GET",
901
+ "path": "/v1/intelligence/high-cost-subscribers",
902
+ "tag": "Intelligence",
903
+ "summary": "GET is not supported. Use POST.",
904
+ "security": "bearer",
905
+ "body": false,
906
+ "bodyRequired": false,
907
+ "pathParams": [],
908
+ "queryParams": [],
909
+ "headerParams": []
910
+ },
911
+ {
912
+ "id": "detect_country_entry",
913
+ "method": "POST",
914
+ "path": "/v1/intelligence/detect-country-entry",
915
+ "tag": "Intelligence",
916
+ "summary": "Resolve a subscriber's current country from networkInfo.lastMcc and diff it against expectedCountry",
917
+ "security": "bearer",
918
+ "body": true,
919
+ "bodyRequired": true,
920
+ "pathParams": [],
921
+ "queryParams": [],
922
+ "headerParams": []
923
+ },
924
+ {
925
+ "id": "list_intelligence_schedules",
926
+ "method": "GET",
927
+ "path": "/v1/intelligence/schedules",
928
+ "tag": "Intelligence",
929
+ "summary": "List scheduled intelligence reports for the caller's organization",
930
+ "security": "bearer",
931
+ "body": false,
932
+ "bodyRequired": false,
933
+ "pathParams": [],
934
+ "queryParams": [],
935
+ "headerParams": []
936
+ },
937
+ {
938
+ "id": "create_intelligence_schedule",
939
+ "method": "POST",
940
+ "path": "/v1/intelligence/schedules",
941
+ "tag": "Intelligence",
942
+ "summary": "Schedule one of the 8 composites. Returns the webhook secret once.",
943
+ "security": "bearer",
944
+ "body": true,
945
+ "bodyRequired": true,
946
+ "pathParams": [],
947
+ "queryParams": [],
948
+ "headerParams": []
949
+ },
950
+ {
951
+ "id": "delete_intelligence_schedule",
952
+ "method": "DELETE",
953
+ "path": "/v1/intelligence/schedules/{id}",
954
+ "tag": "Intelligence",
955
+ "summary": "Delete a scheduled report and its share link",
956
+ "security": "bearer",
957
+ "body": false,
958
+ "bodyRequired": false,
959
+ "pathParams": [
960
+ {
961
+ "name": "id",
962
+ "required": true
963
+ }
964
+ ],
965
+ "queryParams": [],
966
+ "headerParams": []
967
+ },
968
+ {
969
+ "id": "run_intelligence_schedule",
970
+ "method": "POST",
971
+ "path": "/v1/intelligence/schedules/{id}/run",
972
+ "tag": "Intelligence",
973
+ "summary": "Run a schedule now. Does not move the next cron boundary.",
974
+ "security": "bearer",
975
+ "body": false,
976
+ "bodyRequired": false,
977
+ "pathParams": [
978
+ {
979
+ "name": "id",
980
+ "required": true
981
+ }
982
+ ],
983
+ "queryParams": [],
984
+ "headerParams": []
985
+ },
986
+ {
987
+ "id": "get_intelligence_schedule_report",
988
+ "method": "GET",
989
+ "path": "/v1/intelligence/schedules/{id}/report",
990
+ "tag": "Intelligence",
991
+ "summary": "Latest report for a schedule, unredacted, for the owning organization",
992
+ "security": "bearer",
993
+ "body": false,
994
+ "bodyRequired": false,
995
+ "pathParams": [
996
+ {
997
+ "name": "id",
998
+ "required": true
999
+ }
1000
+ ],
1001
+ "queryParams": [],
1002
+ "headerParams": []
1003
+ },
1004
+ {
1005
+ "id": "get_intelligence_share",
1006
+ "method": "GET",
1007
+ "path": "/v1/intelligence/share/{token}",
1008
+ "tag": "Intelligence",
1009
+ "summary": "Public branded report. Subscriber identifiers are redacted. ?format=html returns a page.",
1010
+ "security": "public",
1011
+ "body": false,
1012
+ "bodyRequired": false,
1013
+ "pathParams": [
1014
+ {
1015
+ "name": "token",
1016
+ "required": true
1017
+ }
1018
+ ],
1019
+ "queryParams": [
1020
+ {
1021
+ "name": "format",
1022
+ "required": false
1023
+ }
1024
+ ],
1025
+ "headerParams": []
1026
+ },
1027
+ {
1028
+ "id": "operator_billing_connect_begin",
1029
+ "method": "POST",
1030
+ "path": "/v1/operator-billing/connect/begin",
1031
+ "tag": "Operator Billing",
1032
+ "summary": "Initiate Stripe Connect onboarding (free-tier; Clerk auth only)",
1033
+ "security": "bearer",
1034
+ "body": true,
1035
+ "bodyRequired": true,
1036
+ "pathParams": [],
1037
+ "queryParams": [],
1038
+ "headerParams": []
1039
+ },
1040
+ {
1041
+ "id": "operator_billing_connect_oauth_begin",
1042
+ "method": "POST",
1043
+ "path": "/v1/operator-billing/connect/oauth/begin",
1044
+ "tag": "Operator Billing",
1045
+ "summary": "Start Standard Connect OAuth (existing verified Stripe, no second KYC)",
1046
+ "security": "bearer",
1047
+ "body": true,
1048
+ "bodyRequired": false,
1049
+ "pathParams": [],
1050
+ "queryParams": [],
1051
+ "headerParams": []
1052
+ },
1053
+ {
1054
+ "id": "operator_billing_connect_oauth_complete",
1055
+ "method": "POST",
1056
+ "path": "/v1/operator-billing/connect/oauth/complete",
1057
+ "tag": "Operator Billing",
1058
+ "summary": "Finish Standard Connect OAuth and attach stripe_user_id",
1059
+ "security": "bearer",
1060
+ "body": true,
1061
+ "bodyRequired": true,
1062
+ "pathParams": [],
1063
+ "queryParams": [],
1064
+ "headerParams": []
1065
+ },
1066
+ {
1067
+ "id": "operator_billing_connect_status",
1068
+ "method": "GET",
1069
+ "path": "/v1/operator-billing/connect/status",
1070
+ "tag": "Operator Billing",
1071
+ "summary": "Get Stripe Connect account status and requirements",
1072
+ "security": "bearer",
1073
+ "body": false,
1074
+ "bodyRequired": false,
1075
+ "pathParams": [],
1076
+ "queryParams": [],
1077
+ "headerParams": []
1078
+ },
1079
+ {
1080
+ "id": "operator_billing_connect_dashboard_link",
1081
+ "method": "POST",
1082
+ "path": "/v1/operator-billing/connect/dashboard-link",
1083
+ "tag": "Operator Billing",
1084
+ "summary": "Generate Stripe Express Dashboard login link",
1085
+ "security": "bearer",
1086
+ "body": false,
1087
+ "bodyRequired": false,
1088
+ "pathParams": [],
1089
+ "queryParams": [],
1090
+ "headerParams": []
1091
+ },
1092
+ {
1093
+ "id": "operator_billing_list_payouts",
1094
+ "method": "GET",
1095
+ "path": "/v1/operator-billing/payouts",
1096
+ "tag": "Operator Billing",
1097
+ "summary": "List payout history (paginated)",
1098
+ "security": "bearer",
1099
+ "body": false,
1100
+ "bodyRequired": false,
1101
+ "pathParams": [],
1102
+ "queryParams": [
1103
+ {
1104
+ "name": "limit",
1105
+ "required": false
1106
+ },
1107
+ {
1108
+ "name": "offset",
1109
+ "required": false
1110
+ },
1111
+ {
1112
+ "name": "status",
1113
+ "required": false
1114
+ }
1115
+ ],
1116
+ "headerParams": []
1117
+ },
1118
+ {
1119
+ "id": "operator_billing_create_manual_payout",
1120
+ "method": "POST",
1121
+ "path": "/v1/operator-billing/payouts/manual",
1122
+ "tag": "Operator Billing",
1123
+ "summary": "Create a manual payout to the connected bank account",
1124
+ "security": "bearer",
1125
+ "body": true,
1126
+ "bodyRequired": true,
1127
+ "pathParams": [],
1128
+ "queryParams": [],
1129
+ "headerParams": []
1130
+ },
1131
+ {
1132
+ "id": "operator_billing_get_payout_schedule",
1133
+ "method": "GET",
1134
+ "path": "/v1/operator-billing/payouts/schedule",
1135
+ "tag": "Operator Billing",
1136
+ "summary": "Get current payout schedule",
1137
+ "security": "bearer",
1138
+ "body": false,
1139
+ "bodyRequired": false,
1140
+ "pathParams": [],
1141
+ "queryParams": [],
1142
+ "headerParams": []
1143
+ },
1144
+ {
1145
+ "id": "operator_billing_update_payout_schedule",
1146
+ "method": "PATCH",
1147
+ "path": "/v1/operator-billing/payouts/schedule",
1148
+ "tag": "Operator Billing",
1149
+ "summary": "Update payout schedule (daily / weekly / monthly)",
1150
+ "security": "bearer",
1151
+ "body": true,
1152
+ "bodyRequired": true,
1153
+ "pathParams": [],
1154
+ "queryParams": [],
1155
+ "headerParams": []
1156
+ },
1157
+ {
1158
+ "id": "operator_billing_list_fees",
1159
+ "method": "GET",
1160
+ "path": "/v1/operator-billing/fees",
1161
+ "tag": "Operator Billing",
1162
+ "summary": "List Carrier platform fees earned (admin scope required)",
1163
+ "security": "bearer",
1164
+ "body": false,
1165
+ "bodyRequired": false,
1166
+ "pathParams": [],
1167
+ "queryParams": [
1168
+ {
1169
+ "name": "limit",
1170
+ "required": false
1171
+ },
1172
+ {
1173
+ "name": "offset",
1174
+ "required": false
1175
+ }
1176
+ ],
1177
+ "headerParams": []
1178
+ },
1179
+ {
1180
+ "id": "operator_billing_list_charges",
1181
+ "method": "GET",
1182
+ "path": "/v1/operator-billing/charges",
1183
+ "tag": "Operator Billing",
1184
+ "summary": "List storefront payments (charges) on this operator's connected Stripe account",
1185
+ "security": "bearer",
1186
+ "body": false,
1187
+ "bodyRequired": false,
1188
+ "pathParams": [],
1189
+ "queryParams": [
1190
+ {
1191
+ "name": "limit",
1192
+ "required": false
1193
+ },
1194
+ {
1195
+ "name": "starting_after",
1196
+ "required": false
1197
+ }
1198
+ ],
1199
+ "headerParams": []
1200
+ },
1201
+ {
1202
+ "id": "operator_billing_get_balance",
1203
+ "method": "GET",
1204
+ "path": "/v1/operator-billing/balance",
1205
+ "tag": "Operator Billing",
1206
+ "summary": "Available and pending balance on this operator's connected Stripe account",
1207
+ "security": "bearer",
1208
+ "body": false,
1209
+ "bodyRequired": false,
1210
+ "pathParams": [],
1211
+ "queryParams": [],
1212
+ "headerParams": []
1213
+ },
1214
+ {
1215
+ "id": "operator_billing_list_refunds",
1216
+ "method": "GET",
1217
+ "path": "/v1/operator-billing/refunds",
1218
+ "tag": "Operator Billing",
1219
+ "summary": "List refunds issued by this operator",
1220
+ "security": "bearer",
1221
+ "body": false,
1222
+ "bodyRequired": false,
1223
+ "pathParams": [],
1224
+ "queryParams": [
1225
+ {
1226
+ "name": "limit",
1227
+ "required": false
1228
+ },
1229
+ {
1230
+ "name": "offset",
1231
+ "required": false
1232
+ }
1233
+ ],
1234
+ "headerParams": []
1235
+ },
1236
+ {
1237
+ "id": "operator_billing_create_refund",
1238
+ "method": "POST",
1239
+ "path": "/v1/operator-billing/refunds",
1240
+ "tag": "Operator Billing",
1241
+ "summary": "Issue a refund against a Stripe charge",
1242
+ "security": "bearer",
1243
+ "body": true,
1244
+ "bodyRequired": true,
1245
+ "pathParams": [],
1246
+ "queryParams": [],
1247
+ "headerParams": []
1248
+ },
1249
+ {
1250
+ "id": "operator_billing_list_disputes",
1251
+ "method": "GET",
1252
+ "path": "/v1/operator-billing/disputes",
1253
+ "tag": "Operator Billing",
1254
+ "summary": "List active and historical disputes",
1255
+ "security": "bearer",
1256
+ "body": false,
1257
+ "bodyRequired": false,
1258
+ "pathParams": [],
1259
+ "queryParams": [
1260
+ {
1261
+ "name": "limit",
1262
+ "required": false
1263
+ },
1264
+ {
1265
+ "name": "offset",
1266
+ "required": false
1267
+ },
1268
+ {
1269
+ "name": "status",
1270
+ "required": false
1271
+ }
1272
+ ],
1273
+ "headerParams": []
1274
+ },
1275
+ {
1276
+ "id": "operator_billing_submit_dispute_evidence",
1277
+ "method": "POST",
1278
+ "path": "/v1/operator-billing/disputes/{id}/evidence",
1279
+ "tag": "Operator Billing",
1280
+ "summary": "Submit evidence for a dispute",
1281
+ "security": "bearer",
1282
+ "body": true,
1283
+ "bodyRequired": true,
1284
+ "pathParams": [
1285
+ {
1286
+ "name": "id",
1287
+ "required": true
1288
+ }
1289
+ ],
1290
+ "queryParams": [],
1291
+ "headerParams": []
1292
+ },
1293
+ {
1294
+ "id": "operator_billing_list_fraud_reviews",
1295
+ "method": "GET",
1296
+ "path": "/v1/operator-billing/fraud/reviews",
1297
+ "tag": "Operator Billing",
1298
+ "summary": "List Radar review queue",
1299
+ "security": "bearer",
1300
+ "body": false,
1301
+ "bodyRequired": false,
1302
+ "pathParams": [],
1303
+ "queryParams": [
1304
+ {
1305
+ "name": "limit",
1306
+ "required": false
1307
+ },
1308
+ {
1309
+ "name": "offset",
1310
+ "required": false
1311
+ },
1312
+ {
1313
+ "name": "open",
1314
+ "required": false
1315
+ }
1316
+ ],
1317
+ "headerParams": []
1318
+ },
1319
+ {
1320
+ "id": "operator_billing_approve_fraud_review",
1321
+ "method": "POST",
1322
+ "path": "/v1/operator-billing/fraud/reviews/{id}/approve",
1323
+ "tag": "Operator Billing",
1324
+ "summary": "Approve a Radar review (admin scope required)",
1325
+ "security": "bearer",
1326
+ "body": false,
1327
+ "bodyRequired": false,
1328
+ "pathParams": [
1329
+ {
1330
+ "name": "id",
1331
+ "required": true
1332
+ }
1333
+ ],
1334
+ "queryParams": [],
1335
+ "headerParams": []
1336
+ },
1337
+ {
1338
+ "id": "operator_billing_decline_fraud_review",
1339
+ "method": "POST",
1340
+ "path": "/v1/operator-billing/fraud/reviews/{id}/decline",
1341
+ "tag": "Operator Billing",
1342
+ "summary": "Not supported: Stripe has no Radar review decline (admin scope required)",
1343
+ "security": "bearer",
1344
+ "body": false,
1345
+ "bodyRequired": false,
1346
+ "pathParams": [
1347
+ {
1348
+ "name": "id",
1349
+ "required": true
1350
+ }
1351
+ ],
1352
+ "queryParams": [],
1353
+ "headerParams": []
1354
+ },
1355
+ {
1356
+ "id": "operator_billing_list_value_lists",
1357
+ "method": "GET",
1358
+ "path": "/v1/operator-billing/fraud/value-lists",
1359
+ "tag": "Operator Billing",
1360
+ "summary": "List Radar block/allow value lists",
1361
+ "security": "bearer",
1362
+ "body": false,
1363
+ "bodyRequired": false,
1364
+ "pathParams": [],
1365
+ "queryParams": [],
1366
+ "headerParams": []
1367
+ },
1368
+ {
1369
+ "id": "operator_billing_add_value_list_item",
1370
+ "method": "POST",
1371
+ "path": "/v1/operator-billing/fraud/value-lists/items",
1372
+ "tag": "Operator Billing",
1373
+ "summary": "Add an item to a Radar block/allow list (admin scope required)",
1374
+ "security": "bearer",
1375
+ "body": true,
1376
+ "bodyRequired": true,
1377
+ "pathParams": [],
1378
+ "queryParams": [],
1379
+ "headerParams": []
1380
+ },
1381
+ {
1382
+ "id": "affiliates_me_get",
1383
+ "method": "GET",
1384
+ "path": "/v1/affiliates/me",
1385
+ "tag": "Affiliates",
1386
+ "summary": "Get this org's affiliate link, referral count, earnings and payout status",
1387
+ "security": "bearer",
1388
+ "body": false,
1389
+ "bodyRequired": false,
1390
+ "pathParams": [],
1391
+ "queryParams": [],
1392
+ "headerParams": []
1393
+ },
1394
+ {
1395
+ "id": "affiliates_me_create",
1396
+ "method": "POST",
1397
+ "path": "/v1/affiliates/me",
1398
+ "tag": "Affiliates",
1399
+ "summary": "Join the affiliate programme (idempotent: returns the existing code)",
1400
+ "security": "bearer",
1401
+ "body": false,
1402
+ "bodyRequired": false,
1403
+ "pathParams": [],
1404
+ "queryParams": [],
1405
+ "headerParams": []
1406
+ },
1407
+ {
1408
+ "id": "affiliates_me_commissions_list",
1409
+ "method": "GET",
1410
+ "path": "/v1/affiliates/me/commissions",
1411
+ "tag": "Affiliates",
1412
+ "summary": "List commissions for this org, newest period first",
1413
+ "security": "bearer",
1414
+ "body": false,
1415
+ "bodyRequired": false,
1416
+ "pathParams": [],
1417
+ "queryParams": [
1418
+ {
1419
+ "name": "limit",
1420
+ "required": false
1421
+ }
1422
+ ],
1423
+ "headerParams": []
1424
+ },
1425
+ {
1426
+ "id": "affiliates_link",
1427
+ "method": "POST",
1428
+ "path": "/v1/affiliates/link",
1429
+ "tag": "Affiliates",
1430
+ "summary": "Attach a referral code to an organization created less than 30 minutes ago (browser sign-up only)",
1431
+ "security": "bearer",
1432
+ "body": true,
1433
+ "bodyRequired": true,
1434
+ "pathParams": [],
1435
+ "queryParams": [],
1436
+ "headerParams": []
1437
+ },
1438
+ {
1439
+ "id": "operator_identity_status",
1440
+ "method": "GET",
1441
+ "path": "/v1/operator-billing/identity/status",
1442
+ "tag": "Identity",
1443
+ "summary": "Get Stripe Identity KYC verification status for this operator",
1444
+ "security": "bearer",
1445
+ "body": false,
1446
+ "bodyRequired": false,
1447
+ "pathParams": [],
1448
+ "queryParams": [],
1449
+ "headerParams": []
1450
+ },
1451
+ {
1452
+ "id": "operator_identity_create_session",
1453
+ "method": "POST",
1454
+ "path": "/v1/operator-billing/identity/sessions",
1455
+ "tag": "Identity",
1456
+ "summary": "Record a new Stripe Identity verification session",
1457
+ "security": "bearer",
1458
+ "body": true,
1459
+ "bodyRequired": true,
1460
+ "pathParams": [],
1461
+ "queryParams": [],
1462
+ "headerParams": []
1463
+ },
1464
+ {
1465
+ "id": "operator_identity_update_session",
1466
+ "method": "PATCH",
1467
+ "path": "/v1/operator-billing/identity/sessions/{id}",
1468
+ "tag": "Identity",
1469
+ "summary": "Update a Stripe Identity session status (internal API key only)",
1470
+ "security": "bearer",
1471
+ "body": true,
1472
+ "bodyRequired": true,
1473
+ "pathParams": [
1474
+ {
1475
+ "name": "id",
1476
+ "required": true
1477
+ }
1478
+ ],
1479
+ "queryParams": [],
1480
+ "headerParams": []
1481
+ },
1482
+ {
1483
+ "id": "operator_list_promotions",
1484
+ "method": "GET",
1485
+ "path": "/v1/operator-billing/promotions",
1486
+ "tag": "Promotions",
1487
+ "summary": "List promotions (coupons/promo codes) for this operator",
1488
+ "security": "bearer",
1489
+ "body": false,
1490
+ "bodyRequired": false,
1491
+ "pathParams": [],
1492
+ "queryParams": [],
1493
+ "headerParams": []
1494
+ },
1495
+ {
1496
+ "id": "operator_create_promotion",
1497
+ "method": "POST",
1498
+ "path": "/v1/operator-billing/promotions",
1499
+ "tag": "Promotions",
1500
+ "summary": "Persist a new promotion record (Stripe coupon already created by console)",
1501
+ "security": "bearer",
1502
+ "body": true,
1503
+ "bodyRequired": true,
1504
+ "pathParams": [],
1505
+ "queryParams": [],
1506
+ "headerParams": []
1507
+ },
1508
+ {
1509
+ "id": "signup_start",
1510
+ "method": "POST",
1511
+ "path": "/v1/signup",
1512
+ "tag": "Sign-up",
1513
+ "summary": "Create a Carrier account and send the email verification code",
1514
+ "security": "public",
1515
+ "body": true,
1516
+ "bodyRequired": true,
1517
+ "pathParams": [],
1518
+ "queryParams": [],
1519
+ "headerParams": []
1520
+ },
1521
+ {
1522
+ "id": "signup_verify",
1523
+ "method": "POST",
1524
+ "path": "/v1/signup/verify",
1525
+ "tag": "Sign-up",
1526
+ "summary": "Submit the emailed code and create the organization",
1527
+ "security": "public",
1528
+ "body": true,
1529
+ "bodyRequired": true,
1530
+ "pathParams": [],
1531
+ "queryParams": [],
1532
+ "headerParams": []
1533
+ },
1534
+ {
1535
+ "id": "create_api_key",
1536
+ "method": "POST",
1537
+ "path": "/v1/api-keys",
1538
+ "tag": "API Keys",
1539
+ "summary": "Mint an ak_ API key for this organization (secret returned once)",
1540
+ "security": "bearer",
1541
+ "body": true,
1542
+ "bodyRequired": true,
1543
+ "pathParams": [],
1544
+ "queryParams": [],
1545
+ "headerParams": []
1546
+ },
1547
+ {
1548
+ "id": "get_onboarding_state",
1549
+ "method": "GET",
1550
+ "path": "/v1/onboarding",
1551
+ "tag": "Onboarding",
1552
+ "summary": "Read this org's onboarding progress",
1553
+ "security": "bearer",
1554
+ "body": false,
1555
+ "bodyRequired": false,
1556
+ "pathParams": [],
1557
+ "queryParams": [],
1558
+ "headerParams": []
1559
+ },
1560
+ {
1561
+ "id": "onboarding_save_org",
1562
+ "method": "POST",
1563
+ "path": "/v1/onboarding/org",
1564
+ "tag": "Onboarding",
1565
+ "summary": "Save operator details (step 1)",
1566
+ "security": "bearer",
1567
+ "body": true,
1568
+ "bodyRequired": true,
1569
+ "pathParams": [],
1570
+ "queryParams": [],
1571
+ "headerParams": []
1572
+ },
1573
+ {
1574
+ "id": "onboarding_connect_ocs_token",
1575
+ "method": "POST",
1576
+ "path": "/v1/onboarding/ocs-connect",
1577
+ "tag": "Onboarding",
1578
+ "summary": "Connect a BYO eSIMVault token (step 2)",
1579
+ "security": "bearer",
1580
+ "body": true,
1581
+ "bodyRequired": true,
1582
+ "pathParams": [],
1583
+ "queryParams": [],
1584
+ "headerParams": []
1585
+ },
1586
+ {
1587
+ "id": "onboarding_start_managed_account",
1588
+ "method": "POST",
1589
+ "path": "/v1/onboarding/managed-account",
1590
+ "tag": "Onboarding",
1591
+ "summary": "Provision a managed OCS sub-account (step 2, primary path)",
1592
+ "security": "bearer",
1593
+ "body": false,
1594
+ "bodyRequired": false,
1595
+ "pathParams": [],
1596
+ "queryParams": [],
1597
+ "headerParams": []
1598
+ },
1599
+ {
1600
+ "id": "onboarding_save_plan",
1601
+ "method": "POST",
1602
+ "path": "/v1/onboarding/plan",
1603
+ "tag": "Onboarding",
1604
+ "summary": "Record the starting plan template (step 3)",
1605
+ "security": "bearer",
1606
+ "body": true,
1607
+ "bodyRequired": true,
1608
+ "pathParams": [],
1609
+ "queryParams": [],
1610
+ "headerParams": []
1611
+ },
1612
+ {
1613
+ "id": "onboarding_skip_plan",
1614
+ "method": "POST",
1615
+ "path": "/v1/onboarding/plan/skip",
1616
+ "tag": "Onboarding",
1617
+ "summary": "Skip the plan step (step 3)",
1618
+ "security": "bearer",
1619
+ "body": false,
1620
+ "bodyRequired": false,
1621
+ "pathParams": [],
1622
+ "queryParams": [],
1623
+ "headerParams": []
1624
+ },
1625
+ {
1626
+ "id": "onboarding_test_esim",
1627
+ "method": "POST",
1628
+ "path": "/v1/onboarding/test-esim",
1629
+ "tag": "Onboarding",
1630
+ "summary": "Preview one eSIM from the connected fleet (step 4)",
1631
+ "security": "bearer",
1632
+ "body": false,
1633
+ "bodyRequired": false,
1634
+ "pathParams": [],
1635
+ "queryParams": [],
1636
+ "headerParams": []
1637
+ },
1638
+ {
1639
+ "id": "onboarding_complete",
1640
+ "method": "POST",
1641
+ "path": "/v1/onboarding/complete",
1642
+ "tag": "Onboarding",
1643
+ "summary": "Mark onboarding complete (step 5)",
1644
+ "security": "bearer",
1645
+ "body": false,
1646
+ "bodyRequired": false,
1647
+ "pathParams": [],
1648
+ "queryParams": [],
1649
+ "headerParams": []
1650
+ },
1651
+ {
1652
+ "id": "operator_billing_stripe_webhook",
1653
+ "method": "POST",
1654
+ "path": "/v1/operator-billing/stripe-webhook",
1655
+ "tag": "Webhooks",
1656
+ "summary": "Stripe Connect lifecycle webhook (no bearer auth — Stripe-Signature header required)",
1657
+ "security": "public",
1658
+ "body": true,
1659
+ "bodyRequired": true,
1660
+ "pathParams": [],
1661
+ "queryParams": [],
1662
+ "headerParams": [
1663
+ {
1664
+ "name": "stripe-signature",
1665
+ "required": false
1666
+ }
1667
+ ]
1668
+ },
1669
+ {
1670
+ "id": "receive_bridge4ip_webhook",
1671
+ "method": "POST",
1672
+ "path": "/v1/webhooks/bridge4ip",
1673
+ "tag": "Webhooks",
1674
+ "summary": "Receive Bridge4IP push event (usage, eSIM status, location)",
1675
+ "security": "bearer",
1676
+ "body": true,
1677
+ "bodyRequired": true,
1678
+ "pathParams": [],
1679
+ "queryParams": [],
1680
+ "headerParams": []
1681
+ },
1682
+ {
1683
+ "id": "affect_subscriber_phone_number",
1684
+ "method": "PUT",
1685
+ "path": "/v1/subscribers/{iccid}/phone-number",
1686
+ "tag": "Subscribers",
1687
+ "summary": "Assign a fake or real MSISDN to a subscriber",
1688
+ "security": "bearer",
1689
+ "body": true,
1690
+ "bodyRequired": true,
1691
+ "pathParams": [
1692
+ {
1693
+ "name": "iccid",
1694
+ "required": true
1695
+ }
1696
+ ],
1697
+ "queryParams": [],
1698
+ "headerParams": []
1699
+ },
1700
+ {
1701
+ "id": "modify_subscriber_mobile_plan",
1702
+ "method": "PUT",
1703
+ "path": "/v1/subscribers/{iccid}/mobile-plan",
1704
+ "tag": "Subscribers",
1705
+ "summary": "Change the mobile plan assigned to a subscriber",
1706
+ "security": "bearer",
1707
+ "body": true,
1708
+ "bodyRequired": true,
1709
+ "pathParams": [
1710
+ {
1711
+ "name": "iccid",
1712
+ "required": true
1713
+ }
1714
+ ],
1715
+ "queryParams": [],
1716
+ "headerParams": []
1717
+ },
1718
+ {
1719
+ "id": "modify_subscriber_voip_plan",
1720
+ "method": "PUT",
1721
+ "path": "/v1/subscribers/{iccid}/voip-plan",
1722
+ "tag": "Subscribers",
1723
+ "summary": "Change the VoIP plan assigned to a subscriber",
1724
+ "security": "bearer",
1725
+ "body": true,
1726
+ "bodyRequired": true,
1727
+ "pathParams": [
1728
+ {
1729
+ "name": "iccid",
1730
+ "required": true
1731
+ }
1732
+ ],
1733
+ "queryParams": [],
1734
+ "headerParams": []
1735
+ },
1736
+ {
1737
+ "id": "push_steering_to_subscriber",
1738
+ "method": "POST",
1739
+ "path": "/v1/subscribers/{iccid}/steering-list/push",
1740
+ "tag": "Subscribers",
1741
+ "summary": "Push the assigned steering list down to the subscriber's SIM",
1742
+ "security": "bearer",
1743
+ "body": false,
1744
+ "bodyRequired": false,
1745
+ "pathParams": [
1746
+ {
1747
+ "name": "iccid",
1748
+ "required": true
1749
+ }
1750
+ ],
1751
+ "queryParams": [],
1752
+ "headerParams": []
1753
+ },
1754
+ {
1755
+ "id": "modify_subscriber_package_active_period",
1756
+ "method": "PUT",
1757
+ "path": "/v1/subscribers/{iccid}/packages/{packageId}/active-period",
1758
+ "tag": "Subscribers",
1759
+ "summary": "Change the active period of a prepaid package on a subscriber",
1760
+ "security": "bearer",
1761
+ "body": true,
1762
+ "bodyRequired": true,
1763
+ "pathParams": [
1764
+ {
1765
+ "name": "iccid",
1766
+ "required": true
1767
+ },
1768
+ {
1769
+ "name": "packageId",
1770
+ "required": true
1771
+ }
1772
+ ],
1773
+ "queryParams": [],
1774
+ "headerParams": []
1775
+ },
1776
+ {
1777
+ "id": "get_subscriber_location_by_cell_id",
1778
+ "method": "GET",
1779
+ "path": "/v1/subscribers/{iccid}/cell-location",
1780
+ "tag": "Subscribers",
1781
+ "summary": "Resolve the subscriber's last radio cell tuple to lat/lon via Bridge4IP GeoSense. Returns 404 when that radio has no cell tower tuple.",
1782
+ "security": "bearer",
1783
+ "body": false,
1784
+ "bodyRequired": false,
1785
+ "pathParams": [
1786
+ {
1787
+ "name": "iccid",
1788
+ "required": true
1789
+ }
1790
+ ],
1791
+ "queryParams": [],
1792
+ "headerParams": []
1793
+ },
1794
+ {
1795
+ "id": "reset_subscriber_gz_counter",
1796
+ "method": "POST",
1797
+ "path": "/v1/subscribers/{iccid}/gz-counter/reset",
1798
+ "tag": "Subscribers",
1799
+ "summary": "Reset the Green Zone volume counter for a subscriber (admin only, irreversible)",
1800
+ "security": "bearer",
1801
+ "body": false,
1802
+ "bodyRequired": false,
1803
+ "pathParams": [
1804
+ {
1805
+ "name": "iccid",
1806
+ "required": true
1807
+ }
1808
+ ],
1809
+ "queryParams": [],
1810
+ "headerParams": [
1811
+ {
1812
+ "name": "X-Confirm-Token",
1813
+ "required": false
1814
+ }
1815
+ ]
1816
+ },
1817
+ {
1818
+ "id": "list_destination_lists",
1819
+ "method": "GET",
1820
+ "path": "/v1/destination-lists",
1821
+ "tag": "Network",
1822
+ "summary": "List destination lists with full prefix detail",
1823
+ "security": "bearer",
1824
+ "body": false,
1825
+ "bodyRequired": false,
1826
+ "pathParams": [],
1827
+ "queryParams": [
1828
+ {
1829
+ "name": "resellerId",
1830
+ "required": false
1831
+ }
1832
+ ],
1833
+ "headerParams": []
1834
+ },
1835
+ {
1836
+ "id": "list_subscriber_voip_tariff",
1837
+ "method": "GET",
1838
+ "path": "/v1/voip-tariffs",
1839
+ "tag": "Network",
1840
+ "summary": "List the VoIP tariff catalog available to a reseller",
1841
+ "security": "bearer",
1842
+ "body": false,
1843
+ "bodyRequired": false,
1844
+ "pathParams": [],
1845
+ "queryParams": [
1846
+ {
1847
+ "name": "resellerId",
1848
+ "required": false
1849
+ }
1850
+ ],
1851
+ "headerParams": []
1852
+ },
1853
+ {
1854
+ "id": "list_voip_tariff_rule",
1855
+ "method": "GET",
1856
+ "path": "/v1/voip-tariffs/{voipPlanId}/rules",
1857
+ "tag": "Network",
1858
+ "summary": "List the rate rules for one VoIP plan",
1859
+ "security": "bearer",
1860
+ "body": false,
1861
+ "bodyRequired": false,
1862
+ "pathParams": [
1863
+ {
1864
+ "name": "voipPlanId",
1865
+ "required": true
1866
+ }
1867
+ ],
1868
+ "queryParams": [],
1869
+ "headerParams": []
1870
+ },
1871
+ {
1872
+ "id": "change_network_profile_of_location_zone",
1873
+ "method": "PUT",
1874
+ "path": "/v1/location-zones/{locationZoneId}/network-profile",
1875
+ "tag": "Network",
1876
+ "summary": "Attach or change the network profile on an existing location zone. Admin scope and a confirm token, because this addresses a zone by id and other tenants may route through it.",
1877
+ "security": "bearer",
1878
+ "body": true,
1879
+ "bodyRequired": true,
1880
+ "pathParams": [
1881
+ {
1882
+ "name": "locationZoneId",
1883
+ "required": true
1884
+ }
1885
+ ],
1886
+ "queryParams": [],
1887
+ "headerParams": [
1888
+ {
1889
+ "name": "X-Confirm-Token",
1890
+ "required": false
1891
+ }
1892
+ ]
1893
+ },
1894
+ {
1895
+ "id": "get_network_default",
1896
+ "method": "GET",
1897
+ "path": "/v1/network-default",
1898
+ "tag": "Network",
1899
+ "summary": "Read the org network default (cheapest_available, all or custom) and what applies today. New assignments only.",
1900
+ "security": "bearer",
1901
+ "body": false,
1902
+ "bodyRequired": false,
1903
+ "pathParams": [],
1904
+ "queryParams": [],
1905
+ "headerParams": []
1906
+ },
1907
+ {
1908
+ "id": "set_network_default",
1909
+ "method": "PUT",
1910
+ "path": "/v1/network-default",
1911
+ "tag": "Network",
1912
+ "summary": "Set the org network default. Stored only; touches no SIM and writes nothing to OCS. Applies to new assignments.",
1913
+ "security": "bearer",
1914
+ "body": true,
1915
+ "bodyRequired": true,
1916
+ "pathParams": [],
1917
+ "queryParams": [],
1918
+ "headerParams": []
1919
+ },
1920
+ {
1921
+ "id": "plan_network_default",
1922
+ "method": "POST",
1923
+ "path": "/v1/network-default/plan",
1924
+ "tag": "Network",
1925
+ "summary": "Plan which networks a SIM gets in given countries: the cheapest available by default, unless the org or this call overrides it. Read only; falls back to all networks with an explicit warning when the tariff is missing.",
1926
+ "security": "bearer",
1927
+ "body": true,
1928
+ "bodyRequired": true,
1929
+ "pathParams": [],
1930
+ "queryParams": [],
1931
+ "headerParams": []
1932
+ },
1933
+ {
1934
+ "id": "carrier_webhook_config",
1935
+ "method": "GET",
1936
+ "path": "/v1/reseller/webhook-config",
1937
+ "tag": "Reseller",
1938
+ "summary": "Read the Bridge4IP relay flags and notification webhooks for this reseller",
1939
+ "security": "bearer",
1940
+ "body": false,
1941
+ "bodyRequired": false,
1942
+ "pathParams": [],
1943
+ "queryParams": [
1944
+ {
1945
+ "name": "resellerId",
1946
+ "required": false
1947
+ }
1948
+ ],
1949
+ "headerParams": []
1950
+ },
1951
+ {
1952
+ "id": "ai_chat",
1953
+ "method": "POST",
1954
+ "path": "/v1/ai/chat",
1955
+ "tag": "AI",
1956
+ "summary": "Ask the assistant about your fleet. Streams the answer.",
1957
+ "security": "bearer",
1958
+ "body": true,
1959
+ "bodyRequired": true,
1960
+ "pathParams": [],
1961
+ "queryParams": [],
1962
+ "headerParams": []
1963
+ },
1964
+ {
1965
+ "id": "ai_insights",
1966
+ "method": "POST",
1967
+ "path": "/v1/ai/insights",
1968
+ "tag": "AI",
1969
+ "summary": "Generated insight cards for the caller's fleet",
1970
+ "security": "bearer",
1971
+ "body": false,
1972
+ "bodyRequired": false,
1973
+ "pathParams": [],
1974
+ "queryParams": [],
1975
+ "headerParams": []
1976
+ },
1977
+ {
1978
+ "id": "ai_quota",
1979
+ "method": "GET",
1980
+ "path": "/v1/ai/quota",
1981
+ "tag": "AI",
1982
+ "summary": "AI allowance remaining. Reads without consuming.",
1983
+ "security": "bearer",
1984
+ "body": false,
1985
+ "bodyRequired": false,
1986
+ "pathParams": [],
1987
+ "queryParams": [],
1988
+ "headerParams": []
1989
+ },
1990
+ {
1991
+ "id": "list_invoice_periods",
1992
+ "method": "GET",
1993
+ "path": "/v1/invoices/periods",
1994
+ "tag": "Billing",
1995
+ "summary": "Billing periods for the caller's org, newest first",
1996
+ "security": "bearer",
1997
+ "body": false,
1998
+ "bodyRequired": false,
1999
+ "pathParams": [],
2000
+ "queryParams": [],
2001
+ "headerParams": []
2002
+ },
2003
+ {
2004
+ "id": "get_billing_config",
2005
+ "method": "GET",
2006
+ "path": "/v1/invoices/config",
2007
+ "tag": "Billing",
2008
+ "summary": "Billing config for the caller's org",
2009
+ "security": "bearer",
2010
+ "body": false,
2011
+ "bodyRequired": false,
2012
+ "pathParams": [],
2013
+ "queryParams": [],
2014
+ "headerParams": []
2015
+ },
2016
+ {
2017
+ "id": "update_billing_config",
2018
+ "method": "PUT",
2019
+ "path": "/v1/invoices/config",
2020
+ "tag": "Billing",
2021
+ "summary": "Update billing config. Requires the 'write' scope.",
2022
+ "security": "bearer",
2023
+ "body": true,
2024
+ "bodyRequired": true,
2025
+ "pathParams": [],
2026
+ "queryParams": [],
2027
+ "headerParams": []
2028
+ },
2029
+ {
2030
+ "id": "stripe_connect_begin",
2031
+ "method": "POST",
2032
+ "path": "/v1/invoices/stripe/connect/begin",
2033
+ "tag": "Billing",
2034
+ "summary": "Start Stripe Connect onboarding (free-tier; Clerk auth only).",
2035
+ "security": "bearer",
2036
+ "body": true,
2037
+ "bodyRequired": true,
2038
+ "pathParams": [],
2039
+ "queryParams": [],
2040
+ "headerParams": []
2041
+ },
2042
+ {
2043
+ "id": "stripe_connect_status",
2044
+ "method": "GET",
2045
+ "path": "/v1/invoices/stripe/connect/status",
2046
+ "tag": "Billing",
2047
+ "summary": "Stripe Connect account status for the caller's org",
2048
+ "security": "bearer",
2049
+ "body": false,
2050
+ "bodyRequired": false,
2051
+ "pathParams": [],
2052
+ "queryParams": [],
2053
+ "headerParams": []
2054
+ },
2055
+ {
2056
+ "id": "list_invoices",
2057
+ "method": "GET",
2058
+ "path": "/v1/invoices",
2059
+ "tag": "Billing",
2060
+ "summary": "List invoices for the caller's org, newest first",
2061
+ "security": "bearer",
2062
+ "body": false,
2063
+ "bodyRequired": false,
2064
+ "pathParams": [],
2065
+ "queryParams": [
2066
+ {
2067
+ "name": "status",
2068
+ "required": false
2069
+ },
2070
+ {
2071
+ "name": "year",
2072
+ "required": false
2073
+ },
2074
+ {
2075
+ "name": "month",
2076
+ "required": false
2077
+ },
2078
+ {
2079
+ "name": "limit",
2080
+ "required": false
2081
+ },
2082
+ {
2083
+ "name": "offset",
2084
+ "required": false
2085
+ }
2086
+ ],
2087
+ "headerParams": []
2088
+ },
2089
+ {
2090
+ "id": "create_invoice",
2091
+ "method": "POST",
2092
+ "path": "/v1/invoices",
2093
+ "tag": "Billing",
2094
+ "summary": "Bill a period from its call records. Requires the 'write' scope.",
2095
+ "security": "bearer",
2096
+ "body": true,
2097
+ "bodyRequired": true,
2098
+ "pathParams": [],
2099
+ "queryParams": [],
2100
+ "headerParams": []
2101
+ },
2102
+ {
2103
+ "id": "get_invoice",
2104
+ "method": "GET",
2105
+ "path": "/v1/invoices/{id}",
2106
+ "tag": "Billing",
2107
+ "summary": "One invoice with its line items and period",
2108
+ "security": "bearer",
2109
+ "body": false,
2110
+ "bodyRequired": false,
2111
+ "pathParams": [
2112
+ {
2113
+ "name": "id",
2114
+ "required": true
2115
+ }
2116
+ ],
2117
+ "queryParams": [],
2118
+ "headerParams": []
2119
+ },
2120
+ {
2121
+ "id": "update_invoice",
2122
+ "method": "PATCH",
2123
+ "path": "/v1/invoices/{id}",
2124
+ "tag": "Billing",
2125
+ "summary": "Update invoice status or recipient. Requires the 'write' scope.",
2126
+ "security": "bearer",
2127
+ "body": true,
2128
+ "bodyRequired": true,
2129
+ "pathParams": [
2130
+ {
2131
+ "name": "id",
2132
+ "required": true
2133
+ }
2134
+ ],
2135
+ "queryParams": [],
2136
+ "headerParams": []
2137
+ },
2138
+ {
2139
+ "id": "void_invoice",
2140
+ "method": "DELETE",
2141
+ "path": "/v1/invoices/{id}",
2142
+ "tag": "Billing",
2143
+ "summary": "Void an invoice. Requires the 'write' scope.",
2144
+ "security": "bearer",
2145
+ "body": false,
2146
+ "bodyRequired": false,
2147
+ "pathParams": [
2148
+ {
2149
+ "name": "id",
2150
+ "required": true
2151
+ }
2152
+ ],
2153
+ "queryParams": [],
2154
+ "headerParams": []
2155
+ },
2156
+ {
2157
+ "id": "get_invoice_document",
2158
+ "method": "GET",
2159
+ "path": "/v1/invoices/{id}/pdf",
2160
+ "tag": "Billing",
2161
+ "summary": "Download the invoice document. Not JSON.",
2162
+ "security": "bearer",
2163
+ "body": false,
2164
+ "bodyRequired": false,
2165
+ "pathParams": [
2166
+ {
2167
+ "name": "id",
2168
+ "required": true
2169
+ }
2170
+ ],
2171
+ "queryParams": [],
2172
+ "headerParams": []
2173
+ },
2174
+ {
2175
+ "id": "list_connectivity_plans",
2176
+ "method": "GET",
2177
+ "path": "/v1/connectivity/plans",
2178
+ "tag": "Connectivity",
2179
+ "summary": "List test plans and live plans available to this account",
2180
+ "security": "bearer",
2181
+ "body": false,
2182
+ "bodyRequired": false,
2183
+ "pathParams": [],
2184
+ "queryParams": [],
2185
+ "headerParams": []
2186
+ },
2187
+ {
2188
+ "id": "list_connectivity_products",
2189
+ "method": "GET",
2190
+ "path": "/v1/connectivity/products",
2191
+ "tag": "Connectivity",
2192
+ "summary": "List connectivity products this account defined",
2193
+ "security": "bearer",
2194
+ "body": false,
2195
+ "bodyRequired": false,
2196
+ "pathParams": [],
2197
+ "queryParams": [],
2198
+ "headerParams": []
2199
+ },
2200
+ {
2201
+ "id": "create_connectivity_product",
2202
+ "method": "POST",
2203
+ "path": "/v1/connectivity/products",
2204
+ "tag": "Connectivity",
2205
+ "summary": "Define a connectivity plan for this account",
2206
+ "security": "bearer",
2207
+ "body": true,
2208
+ "bodyRequired": true,
2209
+ "pathParams": [],
2210
+ "queryParams": [],
2211
+ "headerParams": [
2212
+ {
2213
+ "name": "Idempotency-Key",
2214
+ "required": true
2215
+ }
2216
+ ]
2217
+ },
2218
+ {
2219
+ "id": "get_connectivity_product",
2220
+ "method": "GET",
2221
+ "path": "/v1/connectivity/products/{id}",
2222
+ "tag": "Connectivity",
2223
+ "summary": "Retrieve one connectivity product",
2224
+ "security": "bearer",
2225
+ "body": false,
2226
+ "bodyRequired": false,
2227
+ "pathParams": [
2228
+ {
2229
+ "name": "id",
2230
+ "required": true
2231
+ }
2232
+ ],
2233
+ "queryParams": [],
2234
+ "headerParams": []
2235
+ },
2236
+ {
2237
+ "id": "list_connectivity_intents",
2238
+ "method": "GET",
2239
+ "path": "/v1/connectivity/intents",
2240
+ "tag": "Connectivity",
2241
+ "summary": "List connectivity intents for this account",
2242
+ "security": "bearer",
2243
+ "body": false,
2244
+ "bodyRequired": false,
2245
+ "pathParams": [],
2246
+ "queryParams": [
2247
+ {
2248
+ "name": "limit",
2249
+ "required": false
2250
+ }
2251
+ ],
2252
+ "headerParams": []
2253
+ },
2254
+ {
2255
+ "id": "create_connectivity_intent",
2256
+ "method": "POST",
2257
+ "path": "/v1/connectivity/intents",
2258
+ "tag": "Connectivity",
2259
+ "summary": "Issue one eSIM, or leave the intent waiting for a plan",
2260
+ "security": "bearer",
2261
+ "body": true,
2262
+ "bodyRequired": true,
2263
+ "pathParams": [],
2264
+ "queryParams": [],
2265
+ "headerParams": [
2266
+ {
2267
+ "name": "Idempotency-Key",
2268
+ "required": true
2269
+ }
2270
+ ]
2271
+ },
2272
+ {
2273
+ "id": "get_connectivity_intent",
2274
+ "method": "GET",
2275
+ "path": "/v1/connectivity/intents/{id}",
2276
+ "tag": "Connectivity",
2277
+ "summary": "Retrieve one connectivity intent",
2278
+ "security": "bearer",
2279
+ "body": false,
2280
+ "bodyRequired": false,
2281
+ "pathParams": [
2282
+ {
2283
+ "name": "id",
2284
+ "required": true
2285
+ }
2286
+ ],
2287
+ "queryParams": [],
2288
+ "headerParams": []
2289
+ },
2290
+ {
2291
+ "id": "confirm_connectivity_intent",
2292
+ "method": "POST",
2293
+ "path": "/v1/connectivity/intents/{id}/confirm",
2294
+ "tag": "Connectivity",
2295
+ "summary": "Attach a plan and issue the eSIM",
2296
+ "security": "bearer",
2297
+ "body": true,
2298
+ "bodyRequired": true,
2299
+ "pathParams": [
2300
+ {
2301
+ "name": "id",
2302
+ "required": true
2303
+ }
2304
+ ],
2305
+ "queryParams": [],
2306
+ "headerParams": []
2307
+ },
2308
+ {
2309
+ "id": "create_connectivity_webhook_endpoint",
2310
+ "method": "POST",
2311
+ "path": "/v1/connectivity/webhook_endpoints",
2312
+ "tag": "Connectivity",
2313
+ "summary": "Register an HTTPS endpoint. The signing secret is returned once.",
2314
+ "security": "bearer",
2315
+ "body": true,
2316
+ "bodyRequired": true,
2317
+ "pathParams": [],
2318
+ "queryParams": [],
2319
+ "headerParams": []
2320
+ },
2321
+ {
2322
+ "id": "list_connectivity_webhook_endpoints",
2323
+ "method": "GET",
2324
+ "path": "/v1/connectivity/webhook_endpoints",
2325
+ "tag": "Connectivity",
2326
+ "summary": "List webhook endpoints. Secrets are omitted.",
2327
+ "security": "bearer",
2328
+ "body": false,
2329
+ "bodyRequired": false,
2330
+ "pathParams": [],
2331
+ "queryParams": [],
2332
+ "headerParams": []
2333
+ },
2334
+ {
2335
+ "id": "delete_connectivity_webhook_endpoint",
2336
+ "method": "DELETE",
2337
+ "path": "/v1/connectivity/webhook_endpoints/{id}",
2338
+ "tag": "Connectivity",
2339
+ "summary": "Remove a webhook endpoint",
2340
+ "security": "bearer",
2341
+ "body": false,
2342
+ "bodyRequired": false,
2343
+ "pathParams": [
2344
+ {
2345
+ "name": "id",
2346
+ "required": true
2347
+ }
2348
+ ],
2349
+ "queryParams": [],
2350
+ "headerParams": []
2351
+ },
2352
+ {
2353
+ "id": "list_connectivity_events",
2354
+ "method": "GET",
2355
+ "path": "/v1/connectivity/events",
2356
+ "tag": "Connectivity",
2357
+ "summary": "List recent connectivity events for this account",
2358
+ "security": "bearer",
2359
+ "body": false,
2360
+ "bodyRequired": false,
2361
+ "pathParams": [],
2362
+ "queryParams": [
2363
+ {
2364
+ "name": "intent",
2365
+ "required": false
2366
+ }
2367
+ ],
2368
+ "headerParams": []
2369
+ },
2370
+ {
2371
+ "id": "get_connectivity_event",
2372
+ "method": "GET",
2373
+ "path": "/v1/connectivity/events/{id}",
2374
+ "tag": "Connectivity",
2375
+ "summary": "Retrieve one connectivity event",
2376
+ "security": "bearer",
2377
+ "body": false,
2378
+ "bodyRequired": false,
2379
+ "pathParams": [
2380
+ {
2381
+ "name": "id",
2382
+ "required": true
2383
+ }
2384
+ ],
2385
+ "queryParams": [],
2386
+ "headerParams": []
2387
+ },
2388
+ {
2389
+ "id": "create_connectivity_usage_record",
2390
+ "method": "POST",
2391
+ "path": "/v1/connectivity/usage_records",
2392
+ "tag": "Connectivity",
2393
+ "summary": "Record usage on a test intent. Live intents are metered by the network.",
2394
+ "security": "bearer",
2395
+ "body": true,
2396
+ "bodyRequired": true,
2397
+ "pathParams": [],
2398
+ "queryParams": [],
2399
+ "headerParams": [
2400
+ {
2401
+ "name": "Idempotency-Key",
2402
+ "required": true
2403
+ }
2404
+ ]
2405
+ },
2406
+ {
2407
+ "id": "list_connectivity_usage_records",
2408
+ "method": "GET",
2409
+ "path": "/v1/connectivity/usage_records",
2410
+ "tag": "Connectivity",
2411
+ "summary": "List usage records for one intent",
2412
+ "security": "bearer",
2413
+ "body": false,
2414
+ "bodyRequired": false,
2415
+ "pathParams": [],
2416
+ "queryParams": [
2417
+ {
2418
+ "name": "intent",
2419
+ "required": true
2420
+ }
2421
+ ],
2422
+ "headerParams": []
2423
+ },
2424
+ {
2425
+ "id": "retry_connectivity_event",
2426
+ "method": "POST",
2427
+ "path": "/v1/connectivity/events/{id}/retry",
2428
+ "tag": "Connectivity",
2429
+ "summary": "Re-sign and POST an existing event. Does not create a second event.",
2430
+ "security": "bearer",
2431
+ "body": false,
2432
+ "bodyRequired": false,
2433
+ "pathParams": [
2434
+ {
2435
+ "name": "id",
2436
+ "required": true
2437
+ }
2438
+ ],
2439
+ "queryParams": [],
2440
+ "headerParams": []
2441
+ },
2442
+ {
2443
+ "id": "issue_esim_from_inventory",
2444
+ "method": "POST",
2445
+ "path": "/v1/subscribers/issue-from-inventory",
2446
+ "tag": "Subscribers",
2447
+ "summary": "Issue a free eSIM from an account's inventory and assign a package",
2448
+ "security": "bearer",
2449
+ "body": true,
2450
+ "bodyRequired": true,
2451
+ "pathParams": [],
2452
+ "queryParams": [],
2453
+ "headerParams": [
2454
+ {
2455
+ "name": "X-Idempotency-Key",
2456
+ "required": true
2457
+ }
2458
+ ]
2459
+ },
2460
+ {
2461
+ "id": "rollback_esim_issuance",
2462
+ "method": "DELETE",
2463
+ "path": "/v1/subscribers/issue-from-inventory/{idempotencyKey}",
2464
+ "tag": "Subscribers",
2465
+ "summary": "Roll back one operator issuance by its idempotency key",
2466
+ "security": "bearer",
2467
+ "body": false,
2468
+ "bodyRequired": false,
2469
+ "pathParams": [
2470
+ {
2471
+ "name": "idempotencyKey",
2472
+ "required": true
2473
+ }
2474
+ ],
2475
+ "queryParams": [],
2476
+ "headerParams": [
2477
+ {
2478
+ "name": "X-Confirm-Token",
2479
+ "required": false
2480
+ }
2481
+ ]
2482
+ },
2483
+ {
2484
+ "id": "subscriber_country_history",
2485
+ "method": "GET",
2486
+ "path": "/v1/subscribers/{iccid}/country-history",
2487
+ "tag": "Subscribers",
2488
+ "summary": "Recent country.entered events for one subscriber",
2489
+ "security": "bearer",
2490
+ "body": false,
2491
+ "bodyRequired": false,
2492
+ "pathParams": [
2493
+ {
2494
+ "name": "iccid",
2495
+ "required": true
2496
+ }
2497
+ ],
2498
+ "queryParams": [
2499
+ {
2500
+ "name": "limit",
2501
+ "required": false
2502
+ }
2503
+ ],
2504
+ "headerParams": []
2505
+ },
2506
+ {
2507
+ "id": "get_subscriber_notes",
2508
+ "method": "GET",
2509
+ "path": "/v1/subscribers/{iccid}/notes",
2510
+ "tag": "Subscribers",
2511
+ "summary": "Operator notes for one subscriber",
2512
+ "security": "bearer",
2513
+ "body": false,
2514
+ "bodyRequired": false,
2515
+ "pathParams": [
2516
+ {
2517
+ "name": "iccid",
2518
+ "required": true
2519
+ }
2520
+ ],
2521
+ "queryParams": [],
2522
+ "headerParams": []
2523
+ },
2524
+ {
2525
+ "id": "add_subscriber_note",
2526
+ "method": "POST",
2527
+ "path": "/v1/subscribers/{iccid}/notes",
2528
+ "tag": "Subscribers",
2529
+ "summary": "Append one support note",
2530
+ "security": "bearer",
2531
+ "body": true,
2532
+ "bodyRequired": true,
2533
+ "pathParams": [
2534
+ {
2535
+ "name": "iccid",
2536
+ "required": true
2537
+ }
2538
+ ],
2539
+ "queryParams": [],
2540
+ "headerParams": []
2541
+ },
2542
+ {
2543
+ "id": "put_subscriber_notes",
2544
+ "method": "PUT",
2545
+ "path": "/v1/subscribers/{iccid}/notes",
2546
+ "tag": "Subscribers",
2547
+ "summary": "Replace the fleet note blob",
2548
+ "security": "bearer",
2549
+ "body": true,
2550
+ "bodyRequired": true,
2551
+ "pathParams": [
2552
+ {
2553
+ "name": "iccid",
2554
+ "required": true
2555
+ }
2556
+ ],
2557
+ "queryParams": [],
2558
+ "headerParams": []
2559
+ },
2560
+ {
2561
+ "id": "observe_connectivity_event",
2562
+ "method": "POST",
2563
+ "path": "/v1/connectivity/events/observe",
2564
+ "tag": "Connectivity",
2565
+ "summary": "Record a bridge network event against the intent that owns the ICCID",
2566
+ "security": "internal",
2567
+ "body": true,
2568
+ "bodyRequired": true,
2569
+ "pathParams": [],
2570
+ "queryParams": [],
2571
+ "headerParams": []
2572
+ },
2573
+ {
2574
+ "id": "ingest_connectivity_usage",
2575
+ "method": "POST",
2576
+ "path": "/v1/connectivity/usage_records/ingest",
2577
+ "tag": "Connectivity",
2578
+ "summary": "Ingest one metered usage line from the bridge",
2579
+ "security": "internal",
2580
+ "body": true,
2581
+ "bodyRequired": true,
2582
+ "pathParams": [],
2583
+ "queryParams": [],
2584
+ "headerParams": []
2585
+ },
2586
+ {
2587
+ "id": "ingest_cdr_events",
2588
+ "method": "POST",
2589
+ "path": "/v1/cdr/ingest",
2590
+ "tag": "Billing",
2591
+ "summary": "Store a batch of CDR events for the caller's org",
2592
+ "security": "bearer",
2593
+ "body": true,
2594
+ "bodyRequired": true,
2595
+ "pathParams": [],
2596
+ "queryParams": [],
2597
+ "headerParams": []
2598
+ },
2599
+ {
2600
+ "id": "aggregate_cdr",
2601
+ "method": "GET",
2602
+ "path": "/v1/cdr/aggregate",
2603
+ "tag": "Billing",
2604
+ "summary": "Sum CDR bytes for one month, grouped by ICCID",
2605
+ "security": "bearer",
2606
+ "body": false,
2607
+ "bodyRequired": false,
2608
+ "pathParams": [],
2609
+ "queryParams": [
2610
+ {
2611
+ "name": "year",
2612
+ "required": true
2613
+ },
2614
+ {
2615
+ "name": "month",
2616
+ "required": true
2617
+ },
2618
+ {
2619
+ "name": "iccid",
2620
+ "required": false
2621
+ }
2622
+ ],
2623
+ "headerParams": []
2624
+ },
2625
+ {
2626
+ "id": "list_storefront_templates",
2627
+ "method": "GET",
2628
+ "path": "/api/templates",
2629
+ "tag": "Storefront",
2630
+ "summary": "Sellable storefront plans, as a bare array",
2631
+ "security": "public",
2632
+ "body": false,
2633
+ "bodyRequired": false,
2634
+ "pathParams": [],
2635
+ "queryParams": [],
2636
+ "headerParams": []
2637
+ },
2638
+ {
2639
+ "id": "list_storefront_buyer_orders",
2640
+ "method": "GET",
2641
+ "path": "/api/orders",
2642
+ "tag": "Storefront",
2643
+ "summary": "List eSIMs one buyer paid for on one shop",
2644
+ "security": "storefront",
2645
+ "body": false,
2646
+ "bodyRequired": false,
2647
+ "pathParams": [],
2648
+ "queryParams": [
2649
+ {
2650
+ "name": "storefront",
2651
+ "required": true
2652
+ },
2653
+ {
2654
+ "name": "email",
2655
+ "required": true
2656
+ }
2657
+ ],
2658
+ "headerParams": []
2659
+ },
2660
+ {
2661
+ "id": "get_storefront_order_usage",
2662
+ "method": "GET",
2663
+ "path": "/api/orders/{orderId}/usage",
2664
+ "tag": "Storefront",
2665
+ "summary": "Data used by the order's own eSIM",
2666
+ "security": "storefront",
2667
+ "body": false,
2668
+ "bodyRequired": false,
2669
+ "pathParams": [
2670
+ {
2671
+ "name": "orderId",
2672
+ "required": true
2673
+ }
2674
+ ],
2675
+ "queryParams": [
2676
+ {
2677
+ "name": "storefront",
2678
+ "required": false
2679
+ }
2680
+ ],
2681
+ "headerParams": []
2682
+ },
2683
+ {
2684
+ "id": "get_storefront_order_top_up_options",
2685
+ "method": "GET",
2686
+ "path": "/api/orders/{orderId}/top-up-options",
2687
+ "tag": "Storefront",
2688
+ "summary": "Plans the buyer can add to this order's eSIM",
2689
+ "security": "storefront",
2690
+ "body": false,
2691
+ "bodyRequired": false,
2692
+ "pathParams": [
2693
+ {
2694
+ "name": "orderId",
2695
+ "required": true
2696
+ }
2697
+ ],
2698
+ "queryParams": [
2699
+ {
2700
+ "name": "storefront",
2701
+ "required": false
2702
+ }
2703
+ ],
2704
+ "headerParams": []
2705
+ },
2706
+ {
2707
+ "id": "cancel_storefront_top_up_checkout",
2708
+ "method": "POST",
2709
+ "path": "/api/orders/{orderId}/top-up-checkouts/{sessionId}/cancel",
2710
+ "tag": "Storefront",
2711
+ "summary": "Cancel an outstanding top-up checkout for this order",
2712
+ "security": "storefront",
2713
+ "body": false,
2714
+ "bodyRequired": false,
2715
+ "pathParams": [
2716
+ {
2717
+ "name": "orderId",
2718
+ "required": true
2719
+ },
2720
+ {
2721
+ "name": "sessionId",
2722
+ "required": true
2723
+ }
2724
+ ],
2725
+ "queryParams": [
2726
+ {
2727
+ "name": "storefront",
2728
+ "required": false
2729
+ }
2730
+ ],
2731
+ "headerParams": []
2732
+ },
2733
+ {
2734
+ "id": "cancel_storefront_order",
2735
+ "method": "POST",
2736
+ "path": "/api/orders/{orderId}/cancel",
2737
+ "tag": "Storefront",
2738
+ "summary": "Record the buyer's cancel",
2739
+ "security": "storefront",
2740
+ "body": false,
2741
+ "bodyRequired": false,
2742
+ "pathParams": [
2743
+ {
2744
+ "name": "orderId",
2745
+ "required": true
2746
+ }
2747
+ ],
2748
+ "queryParams": [
2749
+ {
2750
+ "name": "storefront",
2751
+ "required": false
2752
+ }
2753
+ ],
2754
+ "headerParams": []
2755
+ },
2756
+ {
2757
+ "id": "get_storefront_order",
2758
+ "method": "GET",
2759
+ "path": "/api/orders/{orderId}",
2760
+ "tag": "Storefront",
2761
+ "summary": "Read one storefront order",
2762
+ "security": "storefront",
2763
+ "body": false,
2764
+ "bodyRequired": false,
2765
+ "pathParams": [
2766
+ {
2767
+ "name": "orderId",
2768
+ "required": true
2769
+ }
2770
+ ],
2771
+ "queryParams": [
2772
+ {
2773
+ "name": "storefront",
2774
+ "required": false
2775
+ }
2776
+ ],
2777
+ "headerParams": []
2778
+ },
2779
+ {
2780
+ "id": "rollback_storefront_order",
2781
+ "method": "DELETE",
2782
+ "path": "/api/orders/{orderId}",
2783
+ "tag": "Storefront",
2784
+ "summary": "Cancel one storefront order and release its eSIM (CAR-264 rollback)",
2785
+ "security": "storefront",
2786
+ "body": false,
2787
+ "bodyRequired": false,
2788
+ "pathParams": [
2789
+ {
2790
+ "name": "orderId",
2791
+ "required": true
2792
+ }
2793
+ ],
2794
+ "queryParams": [],
2795
+ "headerParams": []
2796
+ },
2797
+ {
2798
+ "id": "get_hosted_storefront",
2799
+ "method": "GET",
2800
+ "path": "/api/hosted/{slug}",
2801
+ "tag": "Storefront",
2802
+ "summary": "Published hosted storefront, including its sellable plans",
2803
+ "security": "public",
2804
+ "body": false,
2805
+ "bodyRequired": false,
2806
+ "pathParams": [
2807
+ {
2808
+ "name": "slug",
2809
+ "required": true
2810
+ }
2811
+ ],
2812
+ "queryParams": [],
2813
+ "headerParams": []
2814
+ },
2815
+ {
2816
+ "id": "get_hosted_storefront_plan_readiness",
2817
+ "method": "GET",
2818
+ "path": "/api/hosted/{slug}/plans/{planId}/readiness",
2819
+ "tag": "Storefront",
2820
+ "summary": "Read-only readiness check using the fulfilment owner's account rules",
2821
+ "security": "public",
2822
+ "body": false,
2823
+ "bodyRequired": false,
2824
+ "pathParams": [
2825
+ {
2826
+ "name": "slug",
2827
+ "required": true
2828
+ },
2829
+ {
2830
+ "name": "planId",
2831
+ "required": true
2832
+ }
2833
+ ],
2834
+ "queryParams": [],
2835
+ "headerParams": []
2836
+ },
2837
+ {
2838
+ "id": "list_storefronts",
2839
+ "method": "GET",
2840
+ "path": "/v1/storefronts",
2841
+ "tag": "Storefront",
2842
+ "summary": "List hosted storefronts for the caller's organization",
2843
+ "security": "bearer",
2844
+ "body": false,
2845
+ "bodyRequired": false,
2846
+ "pathParams": [],
2847
+ "queryParams": [],
2848
+ "headerParams": []
2849
+ },
2850
+ {
2851
+ "id": "create_storefront",
2852
+ "method": "POST",
2853
+ "path": "/v1/storefronts",
2854
+ "tag": "Storefront",
2855
+ "summary": "Create a hosted storefront",
2856
+ "security": "bearer",
2857
+ "body": true,
2858
+ "bodyRequired": true,
2859
+ "pathParams": [],
2860
+ "queryParams": [],
2861
+ "headerParams": [
2862
+ {
2863
+ "name": "Idempotency-Key",
2864
+ "required": true
2865
+ }
2866
+ ]
2867
+ },
2868
+ {
2869
+ "id": "list_storefront_orders",
2870
+ "method": "GET",
2871
+ "path": "/v1/storefronts/orders",
2872
+ "tag": "Storefront",
2873
+ "summary": "List orders across the caller's storefronts, newest first. Metadata only — no ICCID, QR, or activation codes.",
2874
+ "security": "bearer",
2875
+ "body": false,
2876
+ "bodyRequired": false,
2877
+ "pathParams": [],
2878
+ "queryParams": [
2879
+ {
2880
+ "name": "storefront_id",
2881
+ "required": false
2882
+ },
2883
+ {
2884
+ "name": "status",
2885
+ "required": false
2886
+ },
2887
+ {
2888
+ "name": "limit",
2889
+ "required": false
2890
+ }
2891
+ ],
2892
+ "headerParams": []
2893
+ },
2894
+ {
2895
+ "id": "get_storefront",
2896
+ "method": "GET",
2897
+ "path": "/v1/storefronts/{id}",
2898
+ "tag": "Storefront",
2899
+ "summary": "Read one hosted storefront owned by the caller",
2900
+ "security": "bearer",
2901
+ "body": false,
2902
+ "bodyRequired": false,
2903
+ "pathParams": [
2904
+ {
2905
+ "name": "id",
2906
+ "required": true
2907
+ }
2908
+ ],
2909
+ "queryParams": [],
2910
+ "headerParams": []
2911
+ },
2912
+ {
2913
+ "id": "update_storefront",
2914
+ "method": "PATCH",
2915
+ "path": "/v1/storefronts/{id}",
2916
+ "tag": "Storefront",
2917
+ "summary": "Update a hosted storefront. Omitted fields are left as they are.",
2918
+ "security": "bearer",
2919
+ "body": true,
2920
+ "bodyRequired": true,
2921
+ "pathParams": [
2922
+ {
2923
+ "name": "id",
2924
+ "required": true
2925
+ }
2926
+ ],
2927
+ "queryParams": [],
2928
+ "headerParams": []
2929
+ },
2930
+ {
2931
+ "id": "upsert_storefront_plan",
2932
+ "method": "POST",
2933
+ "path": "/v1/storefronts/{id}/plans",
2934
+ "tag": "Storefront",
2935
+ "summary": "Create or replace a plan on a hosted storefront. product_id copies a connectivity plan owned by the caller.",
2936
+ "security": "bearer",
2937
+ "body": true,
2938
+ "bodyRequired": true,
2939
+ "pathParams": [
2940
+ {
2941
+ "name": "id",
2942
+ "required": true
2943
+ }
2944
+ ],
2945
+ "queryParams": [],
2946
+ "headerParams": []
2947
+ },
2948
+ {
2949
+ "id": "update_storefront_plan",
2950
+ "method": "PATCH",
2951
+ "path": "/v1/storefronts/{id}/plans/{slug}",
2952
+ "tag": "Storefront",
2953
+ "summary": "Change the price, sale state, display order, or stored Stripe Price of an existing plan. The Price id and its mode are set together; null clears both. The Price is stored, not yet charged. Omitted fields stay as stored. A plan on another storefront is not found.",
2954
+ "security": "bearer",
2955
+ "body": true,
2956
+ "bodyRequired": true,
2957
+ "pathParams": [
2958
+ {
2959
+ "name": "id",
2960
+ "required": true
2961
+ },
2962
+ {
2963
+ "name": "slug",
2964
+ "required": true
2965
+ }
2966
+ ],
2967
+ "queryParams": [],
2968
+ "headerParams": []
2969
+ },
2970
+ {
2971
+ "id": "publish_storefront",
2972
+ "method": "POST",
2973
+ "path": "/v1/storefronts/{id}/publish",
2974
+ "tag": "Storefront",
2975
+ "summary": "Publish a hosted storefront. The catalogue and published status commit in one write. Readiness is computed on the server.",
2976
+ "security": "bearer",
2977
+ "body": true,
2978
+ "bodyRequired": true,
2979
+ "pathParams": [
2980
+ {
2981
+ "name": "id",
2982
+ "required": true
2983
+ }
2984
+ ],
2985
+ "queryParams": [],
2986
+ "headerParams": [
2987
+ {
2988
+ "name": "Idempotency-Key",
2989
+ "required": true
2990
+ }
2991
+ ]
2992
+ },
2993
+ {
2994
+ "id": "plan_storefront_publish",
2995
+ "method": "POST",
2996
+ "path": "/v1/storefronts/{id}/publish-plan",
2997
+ "tag": "Storefront",
2998
+ "summary": "Preview a publish. Reads the shop and returns readiness. Does not write the catalogue or call a probe.",
2999
+ "security": "bearer",
3000
+ "body": true,
3001
+ "bodyRequired": true,
3002
+ "pathParams": [
3003
+ {
3004
+ "name": "id",
3005
+ "required": true
3006
+ }
3007
+ ],
3008
+ "queryParams": [],
3009
+ "headerParams": []
3010
+ },
3011
+ {
3012
+ "id": "unpublish_storefront",
3013
+ "method": "POST",
3014
+ "path": "/v1/storefronts/{id}/unpublish",
3015
+ "tag": "Storefront",
3016
+ "summary": "Return a hosted storefront to draft. Orders, plans, the custom domain, and notification settings stay.",
3017
+ "security": "bearer",
3018
+ "body": true,
3019
+ "bodyRequired": true,
3020
+ "pathParams": [
3021
+ {
3022
+ "name": "id",
3023
+ "required": true
3024
+ }
3025
+ ],
3026
+ "queryParams": [],
3027
+ "headerParams": []
3028
+ },
3029
+ {
3030
+ "id": "health_check",
3031
+ "method": "GET",
3032
+ "path": "/health",
3033
+ "tag": "System",
3034
+ "summary": "Health check — returns build metadata",
3035
+ "security": "public",
3036
+ "body": false,
3037
+ "bodyRequired": false,
3038
+ "pathParams": [],
3039
+ "queryParams": [],
3040
+ "headerParams": []
3041
+ }
3042
+ ]