@setluca/mcp 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +110 -42
  2. package/dist/annotations.js +45 -0
  3. package/dist/completions.js +90 -0
  4. package/dist/config.js +55 -29
  5. package/dist/errors.js +59 -14
  6. package/dist/generated/openapi-inputs.js +4324 -1429
  7. package/dist/generated/openapi-outputs.js +21992 -8516
  8. package/dist/generated/route-catalog.js +1480 -0
  9. package/dist/http.js +95 -103
  10. package/dist/index.js +16 -10
  11. package/dist/oauth-resolver.js +58 -36
  12. package/dist/observability.js +11 -3
  13. package/dist/openapi-zod.js +129 -65
  14. package/dist/operations/catalog.js +50 -0
  15. package/dist/operations/groups/analytics.js +122 -0
  16. package/dist/operations/groups/bookings.js +189 -0
  17. package/dist/operations/groups/broadcasts.js +106 -0
  18. package/dist/operations/groups/cadences.js +14 -0
  19. package/dist/operations/groups/callEvents.js +131 -0
  20. package/dist/operations/groups/campaigns.js +132 -0
  21. package/dist/operations/groups/capabilities.js +8 -0
  22. package/dist/operations/groups/coach.js +43 -0
  23. package/dist/operations/groups/conversations.js +48 -0
  24. package/dist/operations/groups/insights.js +33 -0
  25. package/dist/operations/groups/integrations.js +80 -0
  26. package/dist/operations/groups/knowledge.js +34 -0
  27. package/dist/operations/groups/leads.js +101 -0
  28. package/dist/operations/groups/learning.js +24 -0
  29. package/dist/operations/groups/memory.js +27 -0
  30. package/dist/operations/groups/reports.js +14 -0
  31. package/dist/operations/groups/reviewQueue.js +57 -0
  32. package/dist/operations/groups/safety.js +8 -0
  33. package/dist/operations/groups/usage.js +13 -0
  34. package/dist/operations/groups/voice.js +14 -0
  35. package/dist/operations/groups/webhooks.js +76 -0
  36. package/dist/operations/manifest.js +40 -0
  37. package/dist/operations/registry.js +331 -0
  38. package/dist/operations.js +11 -780
  39. package/dist/optional-field.js +12 -0
  40. package/dist/page-shape.js +47 -0
  41. package/dist/pagination.js +164 -0
  42. package/dist/prompts.js +63 -8
  43. package/dist/provenance.js +18 -2
  44. package/dist/remote.js +80 -49
  45. package/dist/resilience.js +117 -0
  46. package/dist/serialization.js +36 -0
  47. package/dist/server.js +256 -281
  48. package/dist/task-tools/analytics.js +168 -0
  49. package/dist/task-tools/bookings.js +154 -0
  50. package/dist/task-tools/cadences.js +65 -0
  51. package/dist/task-tools/calls.js +202 -0
  52. package/dist/task-tools/inbox.js +74 -0
  53. package/dist/task-tools/leads.js +123 -0
  54. package/dist/task-tools/runtime.js +92 -0
  55. package/dist/task-tools.js +21 -0
  56. package/dist/tool-cache.js +39 -0
  57. package/dist/tool.js +228 -0
  58. package/dist/tsconfig.tsbuildinfo +1 -1
  59. package/dist/version.js +14 -0
  60. package/package.json +36 -33
@@ -0,0 +1,1480 @@
1
+ // Generated by scripts/generate-route-catalog.ts. Do not edit by hand.
2
+ /**
3
+ * Every route an API key can reach, keyed by operation id, as
4
+ * `apps/api/api-key-policies.json` declares it. `op()` in
5
+ * `../operations/registry.ts` reads a route's method, path, scopes, and
6
+ * idempotency rule from here, so a tool declares which route it is and nothing
7
+ * about what that route grants.
8
+ */
9
+ export const ROUTE_CATALOG = {
10
+ "capabilities.get": {
11
+ "method": "GET",
12
+ "path": "/api/capabilities",
13
+ "scopes": [
14
+ "leads:read",
15
+ "conversations:read",
16
+ "bookings:read",
17
+ "campaigns:read",
18
+ "broadcasts:read",
19
+ "webhooks:read",
20
+ "integrations:read"
21
+ ],
22
+ "idempotencyRequired": false
23
+ },
24
+ "leads.list": {
25
+ "method": "GET",
26
+ "path": "/api/leads",
27
+ "scopes": [
28
+ "leads:read"
29
+ ],
30
+ "idempotencyRequired": false
31
+ },
32
+ "leads.fieldDefinitions.list": {
33
+ "method": "GET",
34
+ "path": "/api/leads/field-definitions",
35
+ "scopes": [
36
+ "leads:read"
37
+ ],
38
+ "idempotencyRequired": false
39
+ },
40
+ "leads.fieldDefinitions.upsert": {
41
+ "method": "POST",
42
+ "path": "/api/leads/field-definitions",
43
+ "scopes": [
44
+ "leads:write"
45
+ ],
46
+ "idempotencyRequired": true
47
+ },
48
+ "leads.importPreview": {
49
+ "method": "POST",
50
+ "path": "/api/leads/imports/preview",
51
+ "scopes": [
52
+ "leads:read"
53
+ ],
54
+ "idempotencyRequired": false
55
+ },
56
+ "leads.importApply": {
57
+ "method": "POST",
58
+ "path": "/api/leads/imports/apply",
59
+ "scopes": [
60
+ "leads:write"
61
+ ],
62
+ "idempotencyRequired": true
63
+ },
64
+ "leads.get": {
65
+ "method": "GET",
66
+ "path": "/api/leads/{id}",
67
+ "scopes": [
68
+ "leads:read"
69
+ ],
70
+ "idempotencyRequired": false
71
+ },
72
+ "leads.explain": {
73
+ "method": "GET",
74
+ "path": "/api/leads/{id}/explain",
75
+ "scopes": [
76
+ "leads:read"
77
+ ],
78
+ "idempotencyRequired": false
79
+ },
80
+ "leads.create": {
81
+ "method": "POST",
82
+ "path": "/api/leads",
83
+ "scopes": [
84
+ "leads:write"
85
+ ],
86
+ "idempotencyRequired": true
87
+ },
88
+ "leads.update": {
89
+ "method": "PATCH",
90
+ "path": "/api/leads/{id}",
91
+ "scopes": [
92
+ "leads:write"
93
+ ],
94
+ "idempotencyRequired": true
95
+ },
96
+ "leads.identities.attach": {
97
+ "method": "POST",
98
+ "path": "/api/leads/{id}/identities",
99
+ "scopes": [
100
+ "leads:write"
101
+ ],
102
+ "idempotencyRequired": true
103
+ },
104
+ "leads.consents.grant": {
105
+ "method": "POST",
106
+ "path": "/api/leads/{id}/consents",
107
+ "scopes": [
108
+ "leads:write"
109
+ ],
110
+ "idempotencyRequired": true
111
+ },
112
+ "leads.consents.revoke": {
113
+ "method": "POST",
114
+ "path": "/api/leads/{id}/consents/revoke",
115
+ "scopes": [
116
+ "leads:write"
117
+ ],
118
+ "idempotencyRequired": true
119
+ },
120
+ "leads.notes.add": {
121
+ "method": "POST",
122
+ "path": "/api/leads/{id}/notes",
123
+ "scopes": [
124
+ "leads:write"
125
+ ],
126
+ "idempotencyRequired": true
127
+ },
128
+ "leads.draft": {
129
+ "method": "POST",
130
+ "path": "/api/leads/{id}/draft",
131
+ "scopes": [
132
+ "leads:write"
133
+ ],
134
+ "idempotencyRequired": true
135
+ },
136
+ "leads.notes.delete": {
137
+ "method": "DELETE",
138
+ "path": "/api/leads/{id}/notes/{noteId}",
139
+ "scopes": [
140
+ "leads:write"
141
+ ],
142
+ "idempotencyRequired": true
143
+ },
144
+ "conversations.list": {
145
+ "method": "GET",
146
+ "path": "/api/conversations",
147
+ "scopes": [
148
+ "conversations:read"
149
+ ],
150
+ "idempotencyRequired": false
151
+ },
152
+ "conversations.get": {
153
+ "method": "GET",
154
+ "path": "/api/conversations/{id}",
155
+ "scopes": [
156
+ "conversations:read"
157
+ ],
158
+ "idempotencyRequired": false
159
+ },
160
+ "conversations.messages": {
161
+ "method": "GET",
162
+ "path": "/api/conversations/{id}/messages",
163
+ "scopes": [
164
+ "conversations:read"
165
+ ],
166
+ "idempotencyRequired": false
167
+ },
168
+ "conversations.send": {
169
+ "method": "POST",
170
+ "path": "/api/conversations/{id}/send",
171
+ "scopes": [
172
+ "conversations:write"
173
+ ],
174
+ "idempotencyRequired": true
175
+ },
176
+ "reviewQueue.list": {
177
+ "method": "GET",
178
+ "path": "/api/review-queue",
179
+ "scopes": [
180
+ "review_queue:read"
181
+ ],
182
+ "idempotencyRequired": false
183
+ },
184
+ "reviewQueue.explain": {
185
+ "method": "GET",
186
+ "path": "/api/review-queue/{id}/explain",
187
+ "scopes": [
188
+ "review_queue:read"
189
+ ],
190
+ "idempotencyRequired": false
191
+ },
192
+ "reviewQueue.approve": {
193
+ "method": "POST",
194
+ "path": "/api/review-queue/{id}/approve",
195
+ "scopes": [
196
+ "review_queue:write"
197
+ ],
198
+ "idempotencyRequired": true
199
+ },
200
+ "reviewQueue.media.retry": {
201
+ "method": "POST",
202
+ "path": "/api/review-queue/{id}/media/{mediaId}/retry",
203
+ "scopes": [
204
+ "review_queue:write"
205
+ ],
206
+ "idempotencyRequired": true
207
+ },
208
+ "reviewQueue.reject": {
209
+ "method": "POST",
210
+ "path": "/api/review-queue/{id}/reject",
211
+ "scopes": [
212
+ "review_queue:write"
213
+ ],
214
+ "idempotencyRequired": true
215
+ },
216
+ "reviewQueue.restore": {
217
+ "method": "POST",
218
+ "path": "/api/review-queue/{id}/restore",
219
+ "scopes": [
220
+ "review_queue:write"
221
+ ],
222
+ "idempotencyRequired": true
223
+ },
224
+ "reviewQueue.sla": {
225
+ "method": "GET",
226
+ "path": "/api/review-queue/sla",
227
+ "scopes": [
228
+ "review_queue:read"
229
+ ],
230
+ "idempotencyRequired": false
231
+ },
232
+ "reviewQueue.objectionVariant": {
233
+ "method": "POST",
234
+ "path": "/api/review-queue/{id}/objection-variant",
235
+ "scopes": [
236
+ "review_queue:write"
237
+ ],
238
+ "idempotencyRequired": true
239
+ },
240
+ "bookings.list": {
241
+ "method": "GET",
242
+ "path": "/api/bookings",
243
+ "scopes": [
244
+ "bookings:read"
245
+ ],
246
+ "idempotencyRequired": false
247
+ },
248
+ "bookings.availability": {
249
+ "method": "GET",
250
+ "path": "/api/bookings/availability",
251
+ "scopes": [
252
+ "bookings:read"
253
+ ],
254
+ "idempotencyRequired": false
255
+ },
256
+ "bookings.managedAvailability": {
257
+ "method": "GET",
258
+ "path": "/api/bookings/managed-availability",
259
+ "scopes": [
260
+ "bookings:read"
261
+ ],
262
+ "idempotencyRequired": false
263
+ },
264
+ "bookings.types.list": {
265
+ "method": "GET",
266
+ "path": "/api/bookings/types",
267
+ "scopes": [
268
+ "bookings:read"
269
+ ],
270
+ "idempotencyRequired": false
271
+ },
272
+ "bookings.types.schedule": {
273
+ "method": "GET",
274
+ "path": "/api/bookings/types/{id}/schedule",
275
+ "scopes": [
276
+ "bookings:read"
277
+ ],
278
+ "idempotencyRequired": false
279
+ },
280
+ "bookings.types.attendees": {
281
+ "method": "GET",
282
+ "path": "/api/bookings/types/{id}/attendees",
283
+ "scopes": [
284
+ "bookings:read"
285
+ ],
286
+ "idempotencyRequired": false
287
+ },
288
+ "bookings.providers.list": {
289
+ "method": "GET",
290
+ "path": "/api/bookings/providers",
291
+ "scopes": [
292
+ "bookings:read"
293
+ ],
294
+ "idempotencyRequired": false
295
+ },
296
+ "bookings.providers.get": {
297
+ "method": "GET",
298
+ "path": "/api/bookings/providers/{provider}",
299
+ "scopes": [
300
+ "bookings:read"
301
+ ],
302
+ "idempotencyRequired": false
303
+ },
304
+ "bookings.calendars.list": {
305
+ "method": "GET",
306
+ "path": "/api/bookings/calendars",
307
+ "scopes": [
308
+ "bookings:read"
309
+ ],
310
+ "idempotencyRequired": false
311
+ },
312
+ "bookings.needsOutcome": {
313
+ "method": "GET",
314
+ "path": "/api/bookings/needs-outcome",
315
+ "scopes": [
316
+ "bookings:read"
317
+ ],
318
+ "idempotencyRequired": false
319
+ },
320
+ "bookings.lifecycleAttention": {
321
+ "method": "GET",
322
+ "path": "/api/bookings/lifecycle-attention",
323
+ "scopes": [
324
+ "bookings:read"
325
+ ],
326
+ "idempotencyRequired": false
327
+ },
328
+ "bookings.outcomeReasons.list": {
329
+ "method": "GET",
330
+ "path": "/api/bookings/outcome-reasons",
331
+ "scopes": [
332
+ "bookings:read"
333
+ ],
334
+ "idempotencyRequired": false
335
+ },
336
+ "bookings.get": {
337
+ "method": "GET",
338
+ "path": "/api/bookings/{id}",
339
+ "scopes": [
340
+ "bookings:read"
341
+ ],
342
+ "idempotencyRequired": false
343
+ },
344
+ "bookings.brief": {
345
+ "method": "GET",
346
+ "path": "/api/bookings/{id}/brief",
347
+ "scopes": [
348
+ "bookings:read"
349
+ ],
350
+ "idempotencyRequired": false
351
+ },
352
+ "bookings.outcome.get": {
353
+ "method": "GET",
354
+ "path": "/api/bookings/{id}/outcome",
355
+ "scopes": [
356
+ "bookings:read"
357
+ ],
358
+ "idempotencyRequired": false
359
+ },
360
+ "bookings.outcome.history": {
361
+ "method": "GET",
362
+ "path": "/api/bookings/{id}/outcome/history",
363
+ "scopes": [
364
+ "bookings:read"
365
+ ],
366
+ "idempotencyRequired": false
367
+ },
368
+ "bookings.create": {
369
+ "method": "POST",
370
+ "path": "/api/bookings",
371
+ "scopes": [
372
+ "bookings:write"
373
+ ],
374
+ "idempotencyRequired": true
375
+ },
376
+ "bookings.update": {
377
+ "method": "PATCH",
378
+ "path": "/api/bookings/{id}",
379
+ "scopes": [
380
+ "bookings:write"
381
+ ],
382
+ "idempotencyRequired": true
383
+ },
384
+ "bookings.cancel": {
385
+ "method": "DELETE",
386
+ "path": "/api/bookings/{id}",
387
+ "scopes": [
388
+ "bookings:write"
389
+ ],
390
+ "idempotencyRequired": true
391
+ },
392
+ "bookings.outcome.record": {
393
+ "method": "POST",
394
+ "path": "/api/bookings/{id}/outcome",
395
+ "scopes": [
396
+ "bookings:write"
397
+ ],
398
+ "idempotencyRequired": true
399
+ },
400
+ "bookings.outcomeReasons.create": {
401
+ "method": "POST",
402
+ "path": "/api/bookings/outcome-reasons",
403
+ "scopes": [
404
+ "bookings:write"
405
+ ],
406
+ "idempotencyRequired": true
407
+ },
408
+ "bookings.outcomeReasons.update": {
409
+ "method": "PATCH",
410
+ "path": "/api/bookings/outcome-reasons/{id}",
411
+ "scopes": [
412
+ "bookings:write"
413
+ ],
414
+ "idempotencyRequired": true
415
+ },
416
+ "bookings.lifecycleResolution": {
417
+ "method": "POST",
418
+ "path": "/api/bookings/{id}/lifecycle-resolution",
419
+ "scopes": [
420
+ "bookings:write"
421
+ ],
422
+ "idempotencyRequired": true
423
+ },
424
+ "bookings.providerSync.retry": {
425
+ "method": "POST",
426
+ "path": "/api/bookings/{id}/provider-sync/retry",
427
+ "scopes": [
428
+ "bookings:write"
429
+ ],
430
+ "idempotencyRequired": true
431
+ },
432
+ "bookings.guestLinks.create": {
433
+ "method": "POST",
434
+ "path": "/api/bookings/{id}/guest-links",
435
+ "scopes": [
436
+ "bookings:write"
437
+ ],
438
+ "idempotencyRequired": true
439
+ },
440
+ "bookings.guestLinks.revoke": {
441
+ "method": "DELETE",
442
+ "path": "/api/bookings/{id}/guest-links",
443
+ "scopes": [
444
+ "bookings:write"
445
+ ],
446
+ "idempotencyRequired": true
447
+ },
448
+ "bookings.types.create": {
449
+ "method": "POST",
450
+ "path": "/api/bookings/types",
451
+ "scopes": [
452
+ "bookings:write"
453
+ ],
454
+ "idempotencyRequired": true
455
+ },
456
+ "bookings.types.update": {
457
+ "method": "PATCH",
458
+ "path": "/api/bookings/types/{id}",
459
+ "scopes": [
460
+ "bookings:write"
461
+ ],
462
+ "idempotencyRequired": true
463
+ },
464
+ "bookings.types.delete": {
465
+ "method": "DELETE",
466
+ "path": "/api/bookings/types/{id}",
467
+ "scopes": [
468
+ "bookings:write"
469
+ ],
470
+ "idempotencyRequired": true
471
+ },
472
+ "bookings.types.schedule.replace": {
473
+ "method": "PUT",
474
+ "path": "/api/bookings/types/{id}/schedule",
475
+ "scopes": [
476
+ "bookings:write"
477
+ ],
478
+ "idempotencyRequired": true
479
+ },
480
+ "bookings.types.attendees.add": {
481
+ "method": "POST",
482
+ "path": "/api/bookings/types/{id}/attendees",
483
+ "scopes": [
484
+ "bookings:write"
485
+ ],
486
+ "idempotencyRequired": true
487
+ },
488
+ "bookings.types.attendees.remove": {
489
+ "method": "DELETE",
490
+ "path": "/api/bookings/types/{id}/attendees/{attendeeId}",
491
+ "scopes": [
492
+ "bookings:write"
493
+ ],
494
+ "idempotencyRequired": true
495
+ },
496
+ "bookings.calendars.select": {
497
+ "method": "PUT",
498
+ "path": "/api/bookings/calendars",
499
+ "scopes": [
500
+ "bookings:write"
501
+ ],
502
+ "idempotencyRequired": true
503
+ },
504
+ "bookings.calendars.remove": {
505
+ "method": "DELETE",
506
+ "path": "/api/bookings/calendars",
507
+ "scopes": [
508
+ "bookings:write"
509
+ ],
510
+ "idempotencyRequired": true
511
+ },
512
+ "callEvents.needingFeedback": {
513
+ "method": "GET",
514
+ "path": "/api/call-events",
515
+ "scopes": [
516
+ "call_events:read"
517
+ ],
518
+ "idempotencyRequired": false
519
+ },
520
+ "callEvents.byBooking": {
521
+ "method": "GET",
522
+ "path": "/api/call-events/by-booking/{bookingId}",
523
+ "scopes": [
524
+ "call_events:read"
525
+ ],
526
+ "idempotencyRequired": false
527
+ },
528
+ "callEvents.byLead": {
529
+ "method": "GET",
530
+ "path": "/api/call-events/by-lead/{leadId}",
531
+ "scopes": [
532
+ "call_events:read"
533
+ ],
534
+ "idempotencyRequired": false
535
+ },
536
+ "callEvents.get": {
537
+ "method": "GET",
538
+ "path": "/api/call-events/{id}",
539
+ "scopes": [
540
+ "call_events:read"
541
+ ],
542
+ "idempotencyRequired": false
543
+ },
544
+ "callEvents.backfill": {
545
+ "method": "POST",
546
+ "path": "/api/call-events/backfill/{bookingId}",
547
+ "scopes": [
548
+ "call_events:write"
549
+ ],
550
+ "idempotencyRequired": true
551
+ },
552
+ "callEvents.feedback": {
553
+ "method": "POST",
554
+ "path": "/api/call-events/{id}/feedback",
555
+ "scopes": [
556
+ "call_events:write"
557
+ ],
558
+ "idempotencyRequired": true
559
+ },
560
+ "callEvents.summary.generate": {
561
+ "method": "POST",
562
+ "path": "/api/call-events/{id}/summary",
563
+ "scopes": [
564
+ "call_events:write"
565
+ ],
566
+ "idempotencyRequired": true
567
+ },
568
+ "callEvents.pushToCrm": {
569
+ "method": "POST",
570
+ "path": "/api/call-events/{id}/push-to-crm",
571
+ "scopes": [
572
+ "call_events:write"
573
+ ],
574
+ "idempotencyRequired": true
575
+ },
576
+ "callEvents.undoOutcome": {
577
+ "method": "POST",
578
+ "path": "/api/call-events/{id}/undo-outcome",
579
+ "scopes": [
580
+ "call_events:write"
581
+ ],
582
+ "idempotencyRequired": true
583
+ },
584
+ "callEvents.summary.replace": {
585
+ "method": "PUT",
586
+ "path": "/api/call-events/{id}/summary",
587
+ "scopes": [
588
+ "call_events:write"
589
+ ],
590
+ "idempotencyRequired": true
591
+ },
592
+ "campaigns.list": {
593
+ "method": "GET",
594
+ "path": "/api/campaigns",
595
+ "scopes": [
596
+ "campaigns:read"
597
+ ],
598
+ "idempotencyRequired": false
599
+ },
600
+ "campaigns.commentEvents.list": {
601
+ "method": "GET",
602
+ "path": "/api/campaigns/comment-events",
603
+ "scopes": [
604
+ "campaigns:read"
605
+ ],
606
+ "idempotencyRequired": false
607
+ },
608
+ "campaigns.providerCapabilities": {
609
+ "method": "GET",
610
+ "path": "/api/campaigns/{id}/provider-capabilities",
611
+ "scopes": [
612
+ "campaigns:read"
613
+ ],
614
+ "idempotencyRequired": false
615
+ },
616
+ "campaigns.get": {
617
+ "method": "GET",
618
+ "path": "/api/campaigns/{id}",
619
+ "scopes": [
620
+ "campaigns:read"
621
+ ],
622
+ "idempotencyRequired": false
623
+ },
624
+ "campaigns.analytics": {
625
+ "method": "GET",
626
+ "path": "/api/campaigns/{id}/analytics",
627
+ "scopes": [
628
+ "analytics:read"
629
+ ],
630
+ "idempotencyRequired": false
631
+ },
632
+ "campaigns.simulations.list": {
633
+ "method": "GET",
634
+ "path": "/api/campaigns/{id}/simulations",
635
+ "scopes": [
636
+ "campaigns:read"
637
+ ],
638
+ "idempotencyRequired": false
639
+ },
640
+ "campaigns.simulations.get": {
641
+ "method": "GET",
642
+ "path": "/api/campaigns/{id}/simulations/{simulationId}",
643
+ "scopes": [
644
+ "campaigns:read"
645
+ ],
646
+ "idempotencyRequired": false
647
+ },
648
+ "campaigns.create": {
649
+ "method": "POST",
650
+ "path": "/api/campaigns",
651
+ "scopes": [
652
+ "campaigns:write"
653
+ ],
654
+ "idempotencyRequired": true
655
+ },
656
+ "campaigns.generate": {
657
+ "method": "POST",
658
+ "path": "/api/campaigns/generate",
659
+ "scopes": [
660
+ "campaigns:write"
661
+ ],
662
+ "idempotencyRequired": true
663
+ },
664
+ "campaigns.draft.update": {
665
+ "method": "PATCH",
666
+ "path": "/api/campaigns/{id}/draft",
667
+ "scopes": [
668
+ "campaigns:write"
669
+ ],
670
+ "idempotencyRequired": true
671
+ },
672
+ "campaigns.simulations.create": {
673
+ "method": "POST",
674
+ "path": "/api/campaigns/{id}/simulations",
675
+ "scopes": [
676
+ "campaigns:write"
677
+ ],
678
+ "idempotencyRequired": true
679
+ },
680
+ "campaigns.enroll": {
681
+ "method": "POST",
682
+ "path": "/api/campaigns/{id}/enrollments",
683
+ "scopes": [
684
+ "campaigns:write"
685
+ ],
686
+ "idempotencyRequired": true
687
+ },
688
+ "campaigns.enrollments.list": {
689
+ "method": "GET",
690
+ "path": "/api/campaigns/{id}/enrollments",
691
+ "scopes": [
692
+ "campaigns:read"
693
+ ],
694
+ "idempotencyRequired": false
695
+ },
696
+ "campaigns.commentSimulationSuite.run": {
697
+ "method": "POST",
698
+ "path": "/api/campaigns/{id}/comment-simulation-suite",
699
+ "scopes": [
700
+ "campaigns:write"
701
+ ],
702
+ "idempotencyRequired": true
703
+ },
704
+ "campaigns.publish": {
705
+ "method": "POST",
706
+ "path": "/api/campaigns/{id}/publish",
707
+ "scopes": [
708
+ "campaigns:write"
709
+ ],
710
+ "idempotencyRequired": true
711
+ },
712
+ "campaigns.setStatus": {
713
+ "method": "POST",
714
+ "path": "/api/campaigns/{id}/status",
715
+ "scopes": [
716
+ "campaigns:write"
717
+ ],
718
+ "idempotencyRequired": true
719
+ },
720
+ "campaigns.duplicate": {
721
+ "method": "POST",
722
+ "path": "/api/campaigns/{id}/duplicate",
723
+ "scopes": [
724
+ "campaigns:write"
725
+ ],
726
+ "idempotencyRequired": true
727
+ },
728
+ "campaigns.versions.list": {
729
+ "method": "GET",
730
+ "path": "/api/campaigns/{id}/versions",
731
+ "scopes": [
732
+ "campaigns:read"
733
+ ],
734
+ "idempotencyRequired": false
735
+ },
736
+ "campaigns.enrollments.timeline": {
737
+ "method": "GET",
738
+ "path": "/api/campaigns/{id}/enrollments/{enrollmentId}/timeline",
739
+ "scopes": [
740
+ "campaigns:read"
741
+ ],
742
+ "idempotencyRequired": false
743
+ },
744
+ "broadcasts.list": {
745
+ "method": "GET",
746
+ "path": "/api/broadcasts",
747
+ "scopes": [
748
+ "broadcasts:read"
749
+ ],
750
+ "idempotencyRequired": false
751
+ },
752
+ "broadcasts.get": {
753
+ "method": "GET",
754
+ "path": "/api/broadcasts/{id}",
755
+ "scopes": [
756
+ "broadcasts:read"
757
+ ],
758
+ "idempotencyRequired": false
759
+ },
760
+ "broadcasts.create": {
761
+ "method": "POST",
762
+ "path": "/api/broadcasts",
763
+ "scopes": [
764
+ "broadcasts:write"
765
+ ],
766
+ "idempotencyRequired": true
767
+ },
768
+ "broadcasts.preview": {
769
+ "method": "POST",
770
+ "path": "/api/broadcasts/{id}/preview",
771
+ "scopes": [
772
+ "broadcasts:write"
773
+ ],
774
+ "idempotencyRequired": true
775
+ },
776
+ "broadcasts.approve": {
777
+ "method": "POST",
778
+ "path": "/api/broadcasts/{id}/approve",
779
+ "scopes": [
780
+ "broadcasts:write"
781
+ ],
782
+ "idempotencyRequired": true
783
+ },
784
+ "broadcasts.launch": {
785
+ "method": "POST",
786
+ "path": "/api/broadcasts/{id}/launch",
787
+ "scopes": [
788
+ "broadcasts:write"
789
+ ],
790
+ "idempotencyRequired": true
791
+ },
792
+ "broadcasts.pause": {
793
+ "method": "POST",
794
+ "path": "/api/broadcasts/{id}/pause",
795
+ "scopes": [
796
+ "broadcasts:write"
797
+ ],
798
+ "idempotencyRequired": true
799
+ },
800
+ "broadcasts.retry": {
801
+ "method": "POST",
802
+ "path": "/api/broadcasts/{id}/retry",
803
+ "scopes": [
804
+ "broadcasts:write"
805
+ ],
806
+ "idempotencyRequired": true
807
+ },
808
+ "broadcasts.cancel": {
809
+ "method": "POST",
810
+ "path": "/api/broadcasts/{id}/cancel",
811
+ "scopes": [
812
+ "broadcasts:write"
813
+ ],
814
+ "idempotencyRequired": true
815
+ },
816
+ "webhooks.events.list": {
817
+ "method": "GET",
818
+ "path": "/api/webhook-events",
819
+ "scopes": [
820
+ "webhooks:read"
821
+ ],
822
+ "idempotencyRequired": false
823
+ },
824
+ "webhooks.subscriptions.list": {
825
+ "method": "GET",
826
+ "path": "/api/webhook-subscriptions",
827
+ "scopes": [
828
+ "webhooks:read"
829
+ ],
830
+ "idempotencyRequired": false
831
+ },
832
+ "webhooks.subscriptions.create": {
833
+ "method": "POST",
834
+ "path": "/api/webhook-subscriptions",
835
+ "scopes": [
836
+ "webhooks:write"
837
+ ],
838
+ "idempotencyRequired": false
839
+ },
840
+ "webhooks.subscriptions.update": {
841
+ "method": "PATCH",
842
+ "path": "/api/webhook-subscriptions/{id}",
843
+ "scopes": [
844
+ "webhooks:write"
845
+ ],
846
+ "idempotencyRequired": true
847
+ },
848
+ "webhooks.subscriptions.delete": {
849
+ "method": "DELETE",
850
+ "path": "/api/webhook-subscriptions/{id}",
851
+ "scopes": [
852
+ "webhooks:write"
853
+ ],
854
+ "idempotencyRequired": false
855
+ },
856
+ "webhooks.testDelivery": {
857
+ "method": "POST",
858
+ "path": "/api/webhook-subscriptions/test-delivery",
859
+ "scopes": [
860
+ "webhooks:write"
861
+ ],
862
+ "idempotencyRequired": true
863
+ },
864
+ "webhooks.deliveries.list": {
865
+ "method": "GET",
866
+ "path": "/api/webhook-subscriptions/deliveries",
867
+ "scopes": [
868
+ "webhooks:read"
869
+ ],
870
+ "idempotencyRequired": false
871
+ },
872
+ "webhooks.signatureGuide": {
873
+ "method": "GET",
874
+ "path": "/api/webhook-subscriptions/signature-guide",
875
+ "scopes": [
876
+ "webhooks:read"
877
+ ],
878
+ "idempotencyRequired": false
879
+ },
880
+ "webhooks.deliveries.replay": {
881
+ "method": "POST",
882
+ "path": "/api/webhook-subscriptions/deliveries/{deliveryId}/replay",
883
+ "scopes": [
884
+ "webhooks:write"
885
+ ],
886
+ "idempotencyRequired": true
887
+ },
888
+ "webhooks.events.replay": {
889
+ "method": "POST",
890
+ "path": "/api/webhook-subscriptions/events/{eventId}/replay",
891
+ "scopes": [
892
+ "webhooks:write"
893
+ ],
894
+ "idempotencyRequired": true
895
+ },
896
+ "webhooks.events.bulkReplay": {
897
+ "method": "POST",
898
+ "path": "/api/webhook-subscriptions/events/replay",
899
+ "scopes": [
900
+ "webhooks:write"
901
+ ],
902
+ "idempotencyRequired": true
903
+ },
904
+ "integrations.connectors.list": {
905
+ "method": "GET",
906
+ "path": "/api/integrations/connectors",
907
+ "scopes": [
908
+ "integrations:read"
909
+ ],
910
+ "idempotencyRequired": false
911
+ },
912
+ "integrations.crm.connections.list": {
913
+ "method": "GET",
914
+ "path": "/api/integrations/crm/connections",
915
+ "scopes": [
916
+ "integrations:read"
917
+ ],
918
+ "idempotencyRequired": false
919
+ },
920
+ "integrations.crm.oauthUrl": {
921
+ "method": "GET",
922
+ "path": "/api/integrations/crm/providers/{provider}/oauth-url",
923
+ "scopes": [
924
+ "integrations:write"
925
+ ],
926
+ "idempotencyRequired": false
927
+ },
928
+ "integrations.crm.oauthCallback": {
929
+ "method": "POST",
930
+ "path": "/api/integrations/crm/oauth/callback",
931
+ "scopes": [
932
+ "integrations:write"
933
+ ],
934
+ "idempotencyRequired": true
935
+ },
936
+ "integrations.crm.connections.create": {
937
+ "method": "POST",
938
+ "path": "/api/integrations/crm/connections",
939
+ "scopes": [
940
+ "integrations:write"
941
+ ],
942
+ "idempotencyRequired": true
943
+ },
944
+ "integrations.crm.connections.schema": {
945
+ "method": "GET",
946
+ "path": "/api/integrations/crm/connections/{id}/schema",
947
+ "scopes": [
948
+ "integrations:read"
949
+ ],
950
+ "idempotencyRequired": false
951
+ },
952
+ "integrations.crm.connections.health": {
953
+ "method": "POST",
954
+ "path": "/api/integrations/crm/connections/{id}/health",
955
+ "scopes": [
956
+ "integrations:write"
957
+ ],
958
+ "idempotencyRequired": true
959
+ },
960
+ "integrations.crm.connections.webhooksSetup": {
961
+ "method": "POST",
962
+ "path": "/api/integrations/crm/connections/{id}/webhooks/setup",
963
+ "scopes": [
964
+ "integrations:write"
965
+ ],
966
+ "idempotencyRequired": true
967
+ },
968
+ "integrations.crm.mappings.suggest": {
969
+ "method": "POST",
970
+ "path": "/api/integrations/crm/connections/{id}/mappings/suggest",
971
+ "scopes": [
972
+ "integrations:write"
973
+ ],
974
+ "idempotencyRequired": true
975
+ },
976
+ "integrations.crm.mappings.confirm": {
977
+ "method": "PUT",
978
+ "path": "/api/integrations/crm/connections/{id}/mappings",
979
+ "scopes": [
980
+ "integrations:write"
981
+ ],
982
+ "idempotencyRequired": true
983
+ },
984
+ "integrations.crm.syncRuns.create": {
985
+ "method": "POST",
986
+ "path": "/api/integrations/crm/connections/{id}/sync-runs",
987
+ "scopes": [
988
+ "integrations:write"
989
+ ],
990
+ "idempotencyRequired": true
991
+ },
992
+ "integrations.crm.syncRuns.list": {
993
+ "method": "GET",
994
+ "path": "/api/integrations/crm/connections/{id}/sync-runs",
995
+ "scopes": [
996
+ "integrations:read"
997
+ ],
998
+ "idempotencyRequired": false
999
+ },
1000
+ "integrations.crm.webhooks.record": {
1001
+ "method": "POST",
1002
+ "path": "/api/integrations/crm/webhooks/{provider}",
1003
+ "scopes": [
1004
+ "integrations:write"
1005
+ ],
1006
+ "idempotencyRequired": true
1007
+ },
1008
+ "integrations.events.list": {
1009
+ "method": "GET",
1010
+ "path": "/api/integrations/events",
1011
+ "scopes": [
1012
+ "integrations:read"
1013
+ ],
1014
+ "idempotencyRequired": false
1015
+ },
1016
+ "voice.profile": {
1017
+ "method": "GET",
1018
+ "path": "/api/voice/profile",
1019
+ "scopes": [
1020
+ "voice:read"
1021
+ ],
1022
+ "idempotencyRequired": false
1023
+ },
1024
+ "voice.corpus": {
1025
+ "method": "GET",
1026
+ "path": "/api/voice",
1027
+ "scopes": [
1028
+ "voice:read"
1029
+ ],
1030
+ "idempotencyRequired": false
1031
+ },
1032
+ "coach.profile": {
1033
+ "method": "GET",
1034
+ "path": "/api/coaches/me",
1035
+ "scopes": [
1036
+ "coach:read"
1037
+ ],
1038
+ "idempotencyRequired": false
1039
+ },
1040
+ "coach.niche": {
1041
+ "method": "GET",
1042
+ "path": "/api/coaches/niche",
1043
+ "scopes": [
1044
+ "coach:read"
1045
+ ],
1046
+ "idempotencyRequired": false
1047
+ },
1048
+ "coach.nicheProfile": {
1049
+ "method": "GET",
1050
+ "path": "/api/coaches/niche-profile",
1051
+ "scopes": [
1052
+ "coach:read"
1053
+ ],
1054
+ "idempotencyRequired": false
1055
+ },
1056
+ "coach.objectionPlaybook": {
1057
+ "method": "GET",
1058
+ "path": "/api/coaches/objection-playbook",
1059
+ "scopes": [
1060
+ "coach:read"
1061
+ ],
1062
+ "idempotencyRequired": false
1063
+ },
1064
+ "coach.postCallSettings": {
1065
+ "method": "GET",
1066
+ "path": "/api/coaches/post-call-settings",
1067
+ "scopes": [
1068
+ "coach:read"
1069
+ ],
1070
+ "idempotencyRequired": false
1071
+ },
1072
+ "coach.postCallCrmMapping": {
1073
+ "method": "GET",
1074
+ "path": "/api/coaches/post-call-crm-mapping",
1075
+ "scopes": [
1076
+ "coach:read"
1077
+ ],
1078
+ "idempotencyRequired": false
1079
+ },
1080
+ "coach.postCallDealSync": {
1081
+ "method": "GET",
1082
+ "path": "/api/coaches/post-call-deal-sync",
1083
+ "scopes": [
1084
+ "coach:read"
1085
+ ],
1086
+ "idempotencyRequired": false
1087
+ },
1088
+ "coach.auditLog": {
1089
+ "method": "GET",
1090
+ "path": "/api/audit-log",
1091
+ "scopes": [
1092
+ "coach:read"
1093
+ ],
1094
+ "idempotencyRequired": false
1095
+ },
1096
+ "usage.spend": {
1097
+ "method": "GET",
1098
+ "path": "/api/usage",
1099
+ "scopes": [
1100
+ "usage:read"
1101
+ ],
1102
+ "idempotencyRequired": false
1103
+ },
1104
+ "usage.messages": {
1105
+ "method": "GET",
1106
+ "path": "/api/usage/messages",
1107
+ "scopes": [
1108
+ "usage:read"
1109
+ ],
1110
+ "idempotencyRequired": false
1111
+ },
1112
+ "safety.accounts": {
1113
+ "method": "GET",
1114
+ "path": "/api/account-safety",
1115
+ "scopes": [
1116
+ "safety:read"
1117
+ ],
1118
+ "idempotencyRequired": false
1119
+ },
1120
+ "reports.morning": {
1121
+ "method": "GET",
1122
+ "path": "/api/reports/morning",
1123
+ "scopes": [
1124
+ "reports:read"
1125
+ ],
1126
+ "idempotencyRequired": false
1127
+ },
1128
+ "reports.scorecard": {
1129
+ "method": "GET",
1130
+ "path": "/api/reports/scorecard",
1131
+ "scopes": [
1132
+ "reports:read"
1133
+ ],
1134
+ "idempotencyRequired": false
1135
+ },
1136
+ "insights.unreadCount": {
1137
+ "method": "GET",
1138
+ "path": "/api/insights/unread-count",
1139
+ "scopes": [
1140
+ "analytics:read"
1141
+ ],
1142
+ "idempotencyRequired": false
1143
+ },
1144
+ "insights.markRead": {
1145
+ "method": "POST",
1146
+ "path": "/api/insights/{id}/read",
1147
+ "scopes": [
1148
+ "insights:write"
1149
+ ],
1150
+ "idempotencyRequired": true
1151
+ },
1152
+ "insights.dismiss": {
1153
+ "method": "POST",
1154
+ "path": "/api/insights/{id}/dismiss",
1155
+ "scopes": [
1156
+ "insights:write"
1157
+ ],
1158
+ "idempotencyRequired": true
1159
+ },
1160
+ "insights.markActioned": {
1161
+ "method": "POST",
1162
+ "path": "/api/insights/{id}/action",
1163
+ "scopes": [
1164
+ "insights:write"
1165
+ ],
1166
+ "idempotencyRequired": true
1167
+ },
1168
+ "insights.settings.get": {
1169
+ "method": "GET",
1170
+ "path": "/api/insights/settings",
1171
+ "scopes": [
1172
+ "analytics:read"
1173
+ ],
1174
+ "idempotencyRequired": false
1175
+ },
1176
+ "insights.settings.update": {
1177
+ "method": "PUT",
1178
+ "path": "/api/insights/settings",
1179
+ "scopes": [
1180
+ "insights:write"
1181
+ ],
1182
+ "idempotencyRequired": true
1183
+ },
1184
+ "learning.panel": {
1185
+ "method": "GET",
1186
+ "path": "/api/teach-luca",
1187
+ "scopes": [
1188
+ "learning:read"
1189
+ ],
1190
+ "idempotencyRequired": false
1191
+ },
1192
+ "learning.frameworkPerformance": {
1193
+ "method": "GET",
1194
+ "path": "/api/framework-performance",
1195
+ "scopes": [
1196
+ "learning:read"
1197
+ ],
1198
+ "idempotencyRequired": false
1199
+ },
1200
+ "learning.proposals.list": {
1201
+ "method": "GET",
1202
+ "path": "/api/learning-proposals",
1203
+ "scopes": [
1204
+ "learning:read"
1205
+ ],
1206
+ "idempotencyRequired": false
1207
+ },
1208
+ "learning.proposals.dismiss": {
1209
+ "method": "POST",
1210
+ "path": "/api/learning-proposals/{id}/dismiss",
1211
+ "scopes": [
1212
+ "learning:write"
1213
+ ],
1214
+ "idempotencyRequired": true
1215
+ },
1216
+ "knowledge.suggestions": {
1217
+ "method": "GET",
1218
+ "path": "/api/knowledge/suggestions",
1219
+ "scopes": [
1220
+ "knowledge:read"
1221
+ ],
1222
+ "idempotencyRequired": false
1223
+ },
1224
+ "knowledge.approveSuggestion": {
1225
+ "method": "POST",
1226
+ "path": "/api/knowledge/suggestions/{id}/approve",
1227
+ "scopes": [
1228
+ "knowledge:write"
1229
+ ],
1230
+ "idempotencyRequired": true
1231
+ },
1232
+ "knowledge.rejectSuggestion": {
1233
+ "method": "POST",
1234
+ "path": "/api/knowledge/suggestions/{id}/reject",
1235
+ "scopes": [
1236
+ "knowledge:write"
1237
+ ],
1238
+ "idempotencyRequired": true
1239
+ },
1240
+ "knowledge.sources.list": {
1241
+ "method": "GET",
1242
+ "path": "/api/knowledge/sources",
1243
+ "scopes": [
1244
+ "knowledge:read"
1245
+ ],
1246
+ "idempotencyRequired": false
1247
+ },
1248
+ "knowledge.sources.sync": {
1249
+ "method": "POST",
1250
+ "path": "/api/knowledge/sources/{id}/sync",
1251
+ "scopes": [
1252
+ "knowledge:write"
1253
+ ],
1254
+ "idempotencyRequired": true
1255
+ },
1256
+ "knowledge.sources.disconnect": {
1257
+ "method": "DELETE",
1258
+ "path": "/api/knowledge/sources/{id}",
1259
+ "scopes": [
1260
+ "knowledge:write"
1261
+ ],
1262
+ "idempotencyRequired": true
1263
+ },
1264
+ "memory.list": {
1265
+ "method": "GET",
1266
+ "path": "/api/memory",
1267
+ "scopes": [
1268
+ "memory:read"
1269
+ ],
1270
+ "idempotencyRequired": false
1271
+ },
1272
+ "memory.update": {
1273
+ "method": "PATCH",
1274
+ "path": "/api/memory/{id}",
1275
+ "scopes": [
1276
+ "memory:write"
1277
+ ],
1278
+ "idempotencyRequired": true
1279
+ },
1280
+ "memory.setArchived": {
1281
+ "method": "POST",
1282
+ "path": "/api/memory/bulk",
1283
+ "scopes": [
1284
+ "memory:write"
1285
+ ],
1286
+ "idempotencyRequired": true
1287
+ },
1288
+ "cadences.rescueStart": {
1289
+ "method": "POST",
1290
+ "path": "/api/cadences/rescue",
1291
+ "scopes": [
1292
+ "cadences:write"
1293
+ ],
1294
+ "idempotencyRequired": true
1295
+ },
1296
+ "cadences.pause": {
1297
+ "method": "POST",
1298
+ "path": "/api/leads/{id}/cadence/pause",
1299
+ "scopes": [
1300
+ "cadences:write"
1301
+ ],
1302
+ "idempotencyRequired": true
1303
+ },
1304
+ "analytics.leadScore": {
1305
+ "method": "GET",
1306
+ "path": "/api/analytics/lead-score/{leadId}",
1307
+ "scopes": [
1308
+ "analytics:read"
1309
+ ],
1310
+ "idempotencyRequired": false
1311
+ },
1312
+ "analytics.funnel": {
1313
+ "method": "GET",
1314
+ "path": "/api/analytics/funnel",
1315
+ "scopes": [
1316
+ "analytics:read"
1317
+ ],
1318
+ "idempotencyRequired": false
1319
+ },
1320
+ "analytics.revenue": {
1321
+ "method": "GET",
1322
+ "path": "/api/analytics/revenue",
1323
+ "scopes": [
1324
+ "analytics:read"
1325
+ ],
1326
+ "idempotencyRequired": false
1327
+ },
1328
+ "analytics.speedImpact": {
1329
+ "method": "GET",
1330
+ "path": "/api/analytics/speed-impact",
1331
+ "scopes": [
1332
+ "analytics:read"
1333
+ ],
1334
+ "idempotencyRequired": false
1335
+ },
1336
+ "analytics.forecast": {
1337
+ "method": "GET",
1338
+ "path": "/api/analytics/forecast",
1339
+ "scopes": [
1340
+ "analytics:read"
1341
+ ],
1342
+ "idempotencyRequired": false
1343
+ },
1344
+ "analytics.callIntelligence": {
1345
+ "method": "GET",
1346
+ "path": "/api/analytics/call-intelligence",
1347
+ "scopes": [
1348
+ "analytics:read"
1349
+ ],
1350
+ "idempotencyRequired": false
1351
+ },
1352
+ "analytics.callIntelligenceCalls": {
1353
+ "method": "GET",
1354
+ "path": "/api/analytics/call-intelligence/calls",
1355
+ "scopes": [
1356
+ "analytics:read"
1357
+ ],
1358
+ "idempotencyRequired": false
1359
+ },
1360
+ "analytics.learningInsights": {
1361
+ "method": "GET",
1362
+ "path": "/api/analytics/learning-insights",
1363
+ "scopes": [
1364
+ "analytics:read"
1365
+ ],
1366
+ "idempotencyRequired": false
1367
+ },
1368
+ "analytics.crmSyncHealth": {
1369
+ "method": "GET",
1370
+ "path": "/api/analytics/crm-sync-health",
1371
+ "scopes": [
1372
+ "analytics:read"
1373
+ ],
1374
+ "idempotencyRequired": false
1375
+ },
1376
+ "analytics.objections": {
1377
+ "method": "GET",
1378
+ "path": "/api/analytics/objections",
1379
+ "scopes": [
1380
+ "analytics:read"
1381
+ ],
1382
+ "idempotencyRequired": false
1383
+ },
1384
+ "analytics.objectionDrilldown": {
1385
+ "method": "GET",
1386
+ "path": "/api/analytics/objections/{type}",
1387
+ "scopes": [
1388
+ "analytics:read"
1389
+ ],
1390
+ "idempotencyRequired": false
1391
+ },
1392
+ "analytics.ghostedLeads": {
1393
+ "method": "GET",
1394
+ "path": "/api/analytics/ghosted-leads",
1395
+ "scopes": [
1396
+ "analytics:read"
1397
+ ],
1398
+ "idempotencyRequired": false
1399
+ },
1400
+ "analytics.trustScore": {
1401
+ "method": "GET",
1402
+ "path": "/api/analytics/trust-score",
1403
+ "scopes": [
1404
+ "analytics:read"
1405
+ ],
1406
+ "idempotencyRequired": false
1407
+ },
1408
+ "analytics.trends": {
1409
+ "method": "GET",
1410
+ "path": "/api/analytics/trends",
1411
+ "scopes": [
1412
+ "analytics:read"
1413
+ ],
1414
+ "idempotencyRequired": false
1415
+ },
1416
+ "analytics.lossReasons": {
1417
+ "method": "GET",
1418
+ "path": "/api/analytics/loss-reasons",
1419
+ "scopes": [
1420
+ "analytics:read"
1421
+ ],
1422
+ "idempotencyRequired": false
1423
+ },
1424
+ "analytics.recommendations": {
1425
+ "method": "GET",
1426
+ "path": "/api/analytics/recommendations",
1427
+ "scopes": [
1428
+ "analytics:read"
1429
+ ],
1430
+ "idempotencyRequired": false
1431
+ },
1432
+ "analytics.contentAttribution": {
1433
+ "method": "GET",
1434
+ "path": "/api/analytics/content-attribution",
1435
+ "scopes": [
1436
+ "analytics:read"
1437
+ ],
1438
+ "idempotencyRequired": false
1439
+ },
1440
+ "analytics.contentPerformance": {
1441
+ "method": "GET",
1442
+ "path": "/api/analytics/content-performance",
1443
+ "scopes": [
1444
+ "analytics:read"
1445
+ ],
1446
+ "idempotencyRequired": false
1447
+ },
1448
+ "analytics.topicPerformance": {
1449
+ "method": "GET",
1450
+ "path": "/api/analytics/topic-performance",
1451
+ "scopes": [
1452
+ "analytics:read"
1453
+ ],
1454
+ "idempotencyRequired": false
1455
+ },
1456
+ "analytics.benchmarks": {
1457
+ "method": "GET",
1458
+ "path": "/api/analytics/benchmarks",
1459
+ "scopes": [
1460
+ "analytics:read"
1461
+ ],
1462
+ "idempotencyRequired": false
1463
+ },
1464
+ "analytics.benchmarkConsent": {
1465
+ "method": "GET",
1466
+ "path": "/api/analytics/benchmark-consent",
1467
+ "scopes": [
1468
+ "analytics:read"
1469
+ ],
1470
+ "idempotencyRequired": false
1471
+ },
1472
+ "analytics.insights": {
1473
+ "method": "GET",
1474
+ "path": "/api/insights",
1475
+ "scopes": [
1476
+ "analytics:read"
1477
+ ],
1478
+ "idempotencyRequired": false
1479
+ }
1480
+ };