{"openapi":"3.0.0","info":{"title":"Ours Privacy REST API","version":"1.0.0","description":"REST API for programmatic configuration management. Authenticated with Ours Privacy API keys."},"servers":[{"url":"https://app.oursprivacy.com"}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Ours Privacy API key"}},"schemas":{},"parameters":{}},"paths":{"/rest/v1/destinations":{"get":{"operationId":"listDestinations","tags":["Destinations"],"security":[{"apiKey":[]}],"description":"List all destinations. Requires scope: destination:list","responses":{"200":{"description":"List of destinations","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AWSEventBridge","AWSKinesis","AWSLambda","AWSS3","AWSSNS","ActiveCampaignApi","AmazonDSP","Amplitude","AppLovin","ArtsAI","Audiohook","AzureBlob","BasisPostback","BingAds","BingAdsWeb","Braze","ConvertABTestingEvent","Customerio","DomoWarehouse","Facebook","FloodlightSGTM","FullContact","G4Analytics","GA4MeasurementProtocol","GA4ServerProxy","Google","GoogleAds360","GoogleAdsServerContainer","GoogleBigQuery","GoogleBigQueryWarehouse","GoogleDataManagerEventIngest","GooglePubSub","GoogleStorage","HTTPCustomRequest","HTTPDestination","Hubspot","IHeartMediaMagellan","Impact","Iterable","Klaviyo","LinkedInAdsCAPI","LiveIntent","LiveRampWarehouse","Mailchimp","Mixpanel","NextdoorAds","OursSyntheticData","Partnerize","Pinterest","Podscribe","QuantcastCAPI","QuoraAds","Reddit","SnapchatAdsCapi","Spotify","StackAdaptAPI","Taboola","Tatari","TheTradeDesk","TikTok","VWO","Viant","Vibe","Woopra","XAds","Zendesk","ZoomInfo"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","type","status","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createDestinations","tags":["Destinations"],"security":[{"apiKey":[]}],"description":"Create a new destination. Requires scope: destination:create","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AWSEventBridge","AWSKinesis","AWSLambda","AWSS3","AWSSNS","ActiveCampaignApi","AmazonDSP","Amplitude","AppLovin","ArtsAI","Audiohook","AzureBlob","BasisPostback","BingAds","BingAdsWeb","Braze","ConvertABTestingEvent","Customerio","DomoWarehouse","Facebook","FloodlightSGTM","FullContact","G4Analytics","GA4MeasurementProtocol","GA4ServerProxy","Google","GoogleAds360","GoogleAdsServerContainer","GoogleBigQuery","GoogleBigQueryWarehouse","GoogleDataManagerEventIngest","GooglePubSub","GoogleStorage","HTTPCustomRequest","HTTPDestination","Hubspot","IHeartMediaMagellan","Impact","Iterable","Klaviyo","LinkedInAdsCAPI","LiveIntent","LiveRampWarehouse","Mailchimp","Mixpanel","NextdoorAds","OursSyntheticData","Partnerize","Pinterest","Podscribe","QuantcastCAPI","QuoraAds","Reddit","SnapchatAdsCapi","Spotify","StackAdaptAPI","Taboola","Tatari","TheTradeDesk","TikTok","VWO","Viant","Vibe","Woopra","XAds","Zendesk","ZoomInfo"]}},"required":["type"]}}}},"responses":{"200":{"description":"Created destination","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AWSEventBridge","AWSKinesis","AWSLambda","AWSS3","AWSSNS","ActiveCampaignApi","AmazonDSP","Amplitude","AppLovin","ArtsAI","Audiohook","AzureBlob","BasisPostback","BingAds","BingAdsWeb","Braze","ConvertABTestingEvent","Customerio","DomoWarehouse","Facebook","FloodlightSGTM","FullContact","G4Analytics","GA4MeasurementProtocol","GA4ServerProxy","Google","GoogleAds360","GoogleAdsServerContainer","GoogleBigQuery","GoogleBigQueryWarehouse","GoogleDataManagerEventIngest","GooglePubSub","GoogleStorage","HTTPCustomRequest","HTTPDestination","Hubspot","IHeartMediaMagellan","Impact","Iterable","Klaviyo","LinkedInAdsCAPI","LiveIntent","LiveRampWarehouse","Mailchimp","Mixpanel","NextdoorAds","OursSyntheticData","Partnerize","Pinterest","Podscribe","QuantcastCAPI","QuoraAds","Reddit","SnapchatAdsCapi","Spotify","StackAdaptAPI","Taboola","Tatari","TheTradeDesk","TikTok","VWO","Viant","Vibe","Woopra","XAds","Zendesk","ZoomInfo"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/destinations/{id}":{"get":{"operationId":"findDestinations","tags":["Destinations"],"security":[{"apiKey":[]}],"description":"Find a single destination by ID. Requires scope: destination:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Destinations details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AWSEventBridge","AWSKinesis","AWSLambda","AWSS3","AWSSNS","ActiveCampaignApi","AmazonDSP","Amplitude","AppLovin","ArtsAI","Audiohook","AzureBlob","BasisPostback","BingAds","BingAdsWeb","Braze","ConvertABTestingEvent","Customerio","DomoWarehouse","Facebook","FloodlightSGTM","FullContact","G4Analytics","GA4MeasurementProtocol","GA4ServerProxy","Google","GoogleAds360","GoogleAdsServerContainer","GoogleBigQuery","GoogleBigQueryWarehouse","GoogleDataManagerEventIngest","GooglePubSub","GoogleStorage","HTTPCustomRequest","HTTPDestination","Hubspot","IHeartMediaMagellan","Impact","Iterable","Klaviyo","LinkedInAdsCAPI","LiveIntent","LiveRampWarehouse","Mailchimp","Mixpanel","NextdoorAds","OursSyntheticData","Partnerize","Pinterest","Podscribe","QuantcastCAPI","QuoraAds","Reddit","SnapchatAdsCapi","Spotify","StackAdaptAPI","Taboola","Tatari","TheTradeDesk","TikTok","VWO","Viant","Vibe","Woopra","XAds","Zendesk","ZoomInfo"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchDestinations","tags":["Destinations"],"security":[{"apiKey":[]}],"description":"Update a destination. Requires scope: destination:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["Disabled","Enabled"]},"name":{"type":"string","nullable":true},"facebookConversionAPIKey":{"type":"string","nullable":true},"facebookPixelId":{"type":"string","nullable":true},"g4AnalyticsApiKey":{"type":"string","nullable":true},"g4AnalyticsMeasurementId":{"type":"string","nullable":true},"g4AnalyticsTrackOnPage":{"type":"boolean","nullable":true},"hashingSalt":{"type":"string","nullable":true},"httpDestinationUrl":{"type":"string","nullable":true},"limitedToSourceIds":{"type":"array","nullable":true},"managerGoogleCustomerId":{"type":"string","nullable":true},"projectAPIKey":{"type":"string","nullable":true},"projectToken":{"type":"string","nullable":true},"selectedAccountId":{"type":"string","nullable":true},"settings":{"type":"object","nullable":true}},"required":["status"]}}}},"responses":{"200":{"description":"Updated destination","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AWSEventBridge","AWSKinesis","AWSLambda","AWSS3","AWSSNS","ActiveCampaignApi","AmazonDSP","Amplitude","AppLovin","ArtsAI","Audiohook","AzureBlob","BasisPostback","BingAds","BingAdsWeb","Braze","ConvertABTestingEvent","Customerio","DomoWarehouse","Facebook","FloodlightSGTM","FullContact","G4Analytics","GA4MeasurementProtocol","GA4ServerProxy","Google","GoogleAds360","GoogleAdsServerContainer","GoogleBigQuery","GoogleBigQueryWarehouse","GoogleDataManagerEventIngest","GooglePubSub","GoogleStorage","HTTPCustomRequest","HTTPDestination","Hubspot","IHeartMediaMagellan","Impact","Iterable","Klaviyo","LinkedInAdsCAPI","LiveIntent","LiveRampWarehouse","Mailchimp","Mixpanel","NextdoorAds","OursSyntheticData","Partnerize","Pinterest","Podscribe","QuantcastCAPI","QuoraAds","Reddit","SnapchatAdsCapi","Spotify","StackAdaptAPI","Taboola","Tatari","TheTradeDesk","TikTok","VWO","Viant","Vibe","Woopra","XAds","Zendesk","ZoomInfo"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteDestinations","tags":["Destinations"],"security":[{"apiKey":[]}],"description":"Delete a destination. Requires scope: destination:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/sources":{"get":{"operationId":"listSources","tags":["Sources"],"security":[{"apiKey":[]}],"description":"List all sources. Requires scope: source:list","responses":{"200":{"description":"List of sources","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AlchemerWebhook","AndroidNativeApi","CSharpApi","CalComWebhooks","CalendlyWebhook","CallRail","CallTrackingMetrics","DotNetApi","FacebookLeadAds","FormsortWebhooks","Formstack","GoLangApi","HTTPApiSource","Healthie","HubspotAppActions","HubspotFormWebhook","JotFormWebhooks","KotlinApi","NodejsApi","PHPApi","PixelImage","PythonApi","ReactNativeApi","RedirectSource","RubyApi","SegmentWebPlugin","TypeformWebhooks","WebSource","Webhook","WhatConverts","iOSNativeApi"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"}},"required":["id","type","status","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createSources","tags":["Sources"],"security":[{"apiKey":[]}],"description":"Create a new source. Requires scope: source:create","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AlchemerWebhook","AndroidNativeApi","CSharpApi","CalComWebhooks","CalendlyWebhook","CallRail","CallTrackingMetrics","DotNetApi","FacebookLeadAds","FormsortWebhooks","Formstack","GoLangApi","HTTPApiSource","Healthie","HubspotAppActions","HubspotFormWebhook","JotFormWebhooks","KotlinApi","NodejsApi","PHPApi","PixelImage","PythonApi","ReactNativeApi","RedirectSource","RubyApi","SegmentWebPlugin","TypeformWebhooks","WebSource","Webhook","WhatConverts","iOSNativeApi"]}},"required":["type"]}}}},"responses":{"200":{"description":"Created source","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AlchemerWebhook","AndroidNativeApi","CSharpApi","CalComWebhooks","CalendlyWebhook","CallRail","CallTrackingMetrics","DotNetApi","FacebookLeadAds","FormsortWebhooks","Formstack","GoLangApi","HTTPApiSource","Healthie","HubspotAppActions","HubspotFormWebhook","JotFormWebhooks","KotlinApi","NodejsApi","PHPApi","PixelImage","PythonApi","ReactNativeApi","RedirectSource","RubyApi","SegmentWebPlugin","TypeformWebhooks","WebSource","Webhook","WhatConverts","iOSNativeApi"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/sources/{id}":{"get":{"operationId":"findSources","tags":["Sources"],"security":[{"apiKey":[]}],"description":"Find a single source by ID. Requires scope: source:view","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Sources details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AlchemerWebhook","AndroidNativeApi","CSharpApi","CalComWebhooks","CalendlyWebhook","CallRail","CallTrackingMetrics","DotNetApi","FacebookLeadAds","FormsortWebhooks","Formstack","GoLangApi","HTTPApiSource","Healthie","HubspotAppActions","HubspotFormWebhook","JotFormWebhooks","KotlinApi","NodejsApi","PHPApi","PixelImage","PythonApi","ReactNativeApi","RedirectSource","RubyApi","SegmentWebPlugin","TypeformWebhooks","WebSource","Webhook","WhatConverts","iOSNativeApi"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchSources","tags":["Sources"],"security":[{"apiKey":[]}],"description":"Update a source. Requires scope: source:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["Disabled","Enabled"]},"botControlMode":{"type":"string","nullable":true},"botScoreThreshold":{"type":"number","nullable":true},"excludeRequestContext":{"type":"boolean","nullable":true},"name":{"type":"string","nullable":true},"probabilisticIdentity":{"type":"object","nullable":true},"projectAPIKey":{"type":"string","nullable":true},"redirectUrl":{"type":"string","nullable":true},"selectedAccountId":{"type":"string","nullable":true},"whitelistDomains":{"type":"array","nullable":true},"whitelistIps":{"type":"array","nullable":true}},"required":["status"]}}}},"responses":{"200":{"description":"Updated source","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string","enum":["AlchemerWebhook","AndroidNativeApi","CSharpApi","CalComWebhooks","CalendlyWebhook","CallRail","CallTrackingMetrics","DotNetApi","FacebookLeadAds","FormsortWebhooks","Formstack","GoLangApi","HTTPApiSource","Healthie","HubspotAppActions","HubspotFormWebhook","JotFormWebhooks","KotlinApi","NodejsApi","PHPApi","PixelImage","PythonApi","ReactNativeApi","RedirectSource","RubyApi","SegmentWebPlugin","TypeformWebhooks","WebSource","Webhook","WhatConverts","iOSNativeApi"]},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"}},"required":["id","type","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteSources","tags":["Sources"],"security":[{"apiKey":[]}],"description":"Delete a source. Requires scope: source:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/allowed-events":{"get":{"operationId":"listAllowedEvents","tags":["Allowed Events"],"security":[{"apiKey":[]}],"description":"List all allowed events. Requires scope: allowedEvent:list","responses":{"200":{"description":"List of allowed events","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"destinationIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","destinationIds","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createAllowedEvents","tags":["Allowed Events"],"security":[{"apiKey":[]}],"description":"Create a new allowed event. Requires scope: allowedEvent:create","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"destinationIds":{"type":"array","nullable":true}},"required":["name"]}}}},"responses":{"200":{"description":"Created allowed event","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"destinationIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","destinationIds","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/allowed-events/{id}":{"get":{"operationId":"findAllowedEvents","tags":["Allowed Events"],"security":[{"apiKey":[]}],"description":"Find a single allowed event by ID. Requires scope: allowedEvent:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Allowed Events details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"destinationIds":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","destinationIds","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteAllowedEvents","tags":["Allowed Events"],"security":[{"apiKey":[]}],"description":"Delete a allowed event. Requires scope: allowedEvent:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/consent-settings":{"get":{"operationId":"listConsentSettings","tags":["Consent Settings"],"security":[{"apiKey":[]}],"description":"List all consent settings. Requires scope: consentSettings:list","responses":{"200":{"description":"List of consent settings","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","kind","status","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createConsentSettings","tags":["Consent Settings"],"security":[{"apiKey":[]}],"description":"Create a new consent setting. Requires scope: consentSettings:create","responses":{"200":{"description":"Created consent setting","content":{"application/json":{"schema":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"cause":{"type":"string","nullable":true},"consentSettings":{"type":"object","nullable":true}},"required":["isSuccess"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/consent-settings/{id}":{"get":{"operationId":"findConsentSettings","tags":["Consent Settings"],"security":[{"apiKey":[]}],"description":"Find a single consent setting by ID. Requires scope: consentSettings:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Consent Settings details","content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchConsentSettings","tags":["Consent Settings"],"security":[{"apiKey":[]}],"description":"Update a consent setting. Requires scope: consentSettings:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"priority":{"type":"integer"},"value":{"type":"string"}},"required":["label","priority","value"]}},"consentCookieName":{"type":"string","nullable":true},"customDomain":{"type":"string","nullable":true},"default":{"type":"object","properties":{"autoShow":{"type":"boolean","nullable":true},"autoShowDismissConfig":{"type":"object","nullable":true},"autoShowDismissMode":{"type":"string","nullable":true},"autoblockUnknown":{"type":"boolean","nullable":true},"categories":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"object","properties":{"autoDisableOnGPC":{"type":"boolean","nullable":true},"enabled":{"type":"boolean"},"readOnly":{"type":"boolean","nullable":true},"reloadPage":{"type":"boolean","nullable":true}},"required":["enabled"]}},"required":["key","value"]}},"disablePageInteraction":{"type":"boolean","nullable":true},"guiOptions":{"type":"object","nullable":true},"hideFromBots":{"type":"boolean","nullable":true},"language":{"type":"string"},"mode":{"type":"string","enum":["opt_in","opt_out"]},"showVendorsInPreferences":{"type":"boolean","nullable":true},"translations":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"object","properties":{"consentModal":{"type":"object","nullable":true},"preferencesModal":{"type":"object","nullable":true}}}},"required":["language","value"]}}},"required":["categories","language","mode","translations"]},"name":{"type":"string"},"regions":{"type":"array","items":{"type":"object","properties":{"additionalRegions":{"type":"array","nullable":true},"regionCode":{"type":"string"},"rule":{"type":"object","properties":{"autoShow":{"type":"boolean","nullable":true},"autoShowDismissConfig":{"type":"object","nullable":true},"autoShowDismissMode":{"type":"string","nullable":true},"autoblockUnknown":{"type":"boolean","nullable":true},"categories":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"object","properties":{"autoDisableOnGPC":{"type":"boolean","nullable":true},"enabled":{"type":"boolean"},"readOnly":{"type":"boolean","nullable":true},"reloadPage":{"type":"boolean","nullable":true}},"required":["enabled"]}},"required":["key","value"]}},"disablePageInteraction":{"type":"boolean","nullable":true},"guiOptions":{"type":"object","nullable":true},"hideFromBots":{"type":"boolean","nullable":true},"language":{"type":"string"},"mode":{"type":"string","enum":["opt_in","opt_out"]},"showVendorsInPreferences":{"type":"boolean","nullable":true},"translations":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"object","properties":{"consentModal":{"type":"object","nullable":true},"preferencesModal":{"type":"object","nullable":true}}}},"required":["language","value"]}}},"required":["categories","language","mode","translations"]}},"required":["regionCode","rule"]}},"revision":{"type":"number","nullable":true},"services":{"type":"array","items":{"type":"object","properties":{"additionalCategories":{"type":"array","nullable":true},"category":{"type":"string","nullable":true},"domainPatterns":{"type":"array","nullable":true},"internalNotes":{"type":"string"},"label":{"type":"string"}},"required":["internalNotes","label"]}},"skipBlockingClassNames":{"type":"array","nullable":true},"status":{"type":"string","enum":["Disabled","Enabled"]},"webSDKToken":{"type":"string","nullable":true},"whitelistDomains":{"type":"array","nullable":true}},"required":["categories","default","name","regions","services","status"]}}}},"responses":{"200":{"description":"Updated consent setting","content":{"application/json":{"schema":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"cause":{"type":"string","nullable":true},"consentSettings":{"type":"object","nullable":true}},"required":["isSuccess"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteConsentSettings","tags":["Consent Settings"],"security":[{"apiKey":[]}],"description":"Delete a consent setting. Requires scope: consentSettings:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","kind","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/global-dispatch-centers":{"get":{"operationId":"listGlobalDispatchCenters","tags":["Global Dispatch Centers"],"security":[{"apiKey":[]}],"description":"List all global dispatch centers. Requires scope: globalDispatch:list","responses":{"200":{"description":"List of global dispatch centers","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"kind":{"type":"string"},"isEnabled":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","kind","isEnabled","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createGlobalDispatchCenters","tags":["Global Dispatch Centers"],"security":[{"apiKey":[]}],"description":"Create a new global dispatch center. Requires scope: globalDispatch:create","responses":{"200":{"description":"Created global dispatch center","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"kind":{"type":"string"},"isEnabled":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","kind","isEnabled","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/global-dispatch-centers/{id}":{"get":{"operationId":"findGlobalDispatchCenters","tags":["Global Dispatch Centers"],"security":[{"apiKey":[]}],"description":"Find a single global dispatch center by ID. Requires scope: globalDispatch:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Global Dispatch Centers details","content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchGlobalDispatchCenters","tags":["Global Dispatch Centers"],"security":[{"apiKey":[]}],"description":"Update a global dispatch center. Requires scope: globalDispatch:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","nullable":true},"isEnabled":{"type":"boolean","nullable":true},"name":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Updated global dispatch center","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"kind":{"type":"string"},"isEnabled":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","kind","isEnabled","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteGlobalDispatchCenters","tags":["Global Dispatch Centers"],"security":[{"apiKey":[]}],"description":"Delete a global dispatch center. Requires scope: globalDispatch:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/replay-settings":{"get":{"operationId":"listReplaySettings","tags":["Replay Settings"],"security":[{"apiKey":[]}],"description":"List all replay settings. Requires scope: replaySettings:list","responses":{"200":{"description":"List of replay settings","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["Disabled","Enabled"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createReplaySettings","tags":["Replay Settings"],"security":[{"apiKey":[]}],"description":"Create a new replay setting. Requires scope: replaySettings:create","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"customDomain":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"whitelistDomains":{"type":"array","nullable":true}}}}}},"responses":{"200":{"description":"Created replay setting","content":{"application/json":{"schema":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"cause":{"type":"string","nullable":true},"replaySettings":{"type":"object","nullable":true}},"required":["isSuccess"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/replay-settings/{id}":{"get":{"operationId":"findReplaySettings","tags":["Replay Settings"],"security":[{"apiKey":[]}],"description":"Find a single replay setting by ID. Requires scope: replaySettings:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Replay Settings details","content":{"application/json":{"schema":{"type":"object","nullable":true}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchReplaySettings","tags":["Replay Settings"],"security":[{"apiKey":[]}],"description":"Update a replay setting. Requires scope: replaySettings:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"customDomain":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"whitelistDomains":{"type":"array","nullable":true}}}}}},"responses":{"200":{"description":"Updated replay setting","content":{"application/json":{"schema":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"cause":{"type":"string","nullable":true},"replaySettings":{"type":"object","nullable":true}},"required":["isSuccess"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteReplaySettings","tags":["Replay Settings"],"security":[{"apiKey":[]}],"description":"Delete a replay setting. Requires scope: replaySettings:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"isSuccess":{"type":"boolean"},"cause":{"type":"string","nullable":true},"replaySettings":{"type":"object","nullable":true}},"required":["isSuccess"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/versions":{"get":{"operationId":"listVersions","tags":["Versions"],"security":[{"apiKey":[]}],"description":"List all versions. Requires scope: version:list","responses":{"200":{"description":"List of versions","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"versionNumber":{"type":"number"},"isPublished":{"type":"boolean"},"createdAt":{"type":"string"},"publishedAt":{"type":"string","nullable":true}},"required":["id","versionNumber","isPublished","createdAt"]}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createVersions","tags":["Versions"],"security":[{"apiKey":[]}],"description":"Create a new version. Requires scope: version:publish","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"includeAllowedEvents":{"type":"array","nullable":true},"includeConsentSettings":{"type":"array","nullable":true},"includeDestinations":{"type":"array","nullable":true},"includeExternalAllowedEventData":{"type":"array","nullable":true},"includeGlobalDispatchCenters":{"type":"array","nullable":true},"includeMappings":{"type":"array","nullable":true},"includeReplaySettings":{"type":"array","nullable":true},"includeSources":{"type":"array","nullable":true},"includeTagManagerTags":{"type":"array","nullable":true},"includeTagManagerTriggers":{"type":"array","nullable":true},"includeTagManagerVariables":{"type":"array","nullable":true},"name":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Created version","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string","nullable":true}},"required":["success"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/versions/{id}":{"get":{"operationId":"findVersions","tags":["Versions"],"security":[{"apiKey":[]}],"description":"Find a single version by ID. Requires scope: version:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Versions details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"versionNumber":{"type":"number"},"isPublished":{"type":"boolean"},"notes":{"type":"string","nullable":true},"createdAt":{"type":"string"},"publishedAt":{"type":"string","nullable":true}},"required":["id","versionNumber","isPublished","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchVersions","tags":["Versions"],"security":[{"apiKey":[]}],"description":"Update a version. Requires scope: version:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Updated version","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"versionNumber":{"type":"number"},"isPublished":{"type":"boolean"},"notes":{"type":"string","nullable":true},"createdAt":{"type":"string"},"publishedAt":{"type":"string","nullable":true}},"required":["id","versionNumber","isPublished","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/experiments":{"get":{"operationId":"listExperiments","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"List all experiments. Requires scope: experiment:list","responses":{"200":{"description":"List of experiments","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}},"required":["entities"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"post":{"operationId":"createExperiments","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Create a new experiment. Requires scope: experiment:create","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"experimentSettingsId":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["experimentSettingsId","name"]}}}},"responses":{"200":{"description":"Created experiment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/experiments/{id}":{"get":{"operationId":"findExperiments","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Find a single experiment by ID. Requires scope: experiment:find","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Experiments details","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"patch":{"operationId":"patchExperiments","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Update a experiment. Requires scope: experiment:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Updated experiment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}},"delete":{"operationId":"deleteExperiments","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Delete a experiment. Requires scope: experiment:delete","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Deleted successfully","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/experiments/{id}/start":{"post":{"operationId":"startExperiment","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Start an experiment. Requires scope: experiment:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Started experiment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}},"/rest/v1/experiments/{id}/stop":{"post":{"operationId":"stopExperiment","tags":["Experiments"],"security":[{"apiKey":[]}],"description":"Stop an experiment. Requires scope: experiment:update","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Stopped experiment","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"status":{"type":"string","enum":["completed","draft","paused","running"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"startedAt":{"type":"string","nullable":true},"stoppedAt":{"type":"string","nullable":true}},"required":["id","name","status","createdAt"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"401":{"description":"Unauthorized — missing, invalid, or expired API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"403":{"description":"Forbidden — API key does not have the required scope","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error"]}}}}}}}}}